ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Wed, 24 Oct 2018 18:09:48 +0200
changeset 18490 f38df56cb637
parent 18429 9b4f1bf498ce
child 18596 48275ca92cf1
permissions -rw-r--r--
#FEATURE by cg class: ChangesBrowser::ChangeFileReader changed: #processNonMethodChunk
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
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
    27
		rightCodeLabelHolder menuPanel toolbarMenu'
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
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   208
'Delete this and all previous changes for the selected method'
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   209
)
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   210
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   211
    "Modified: / 25-07-2017 / 10:55:55 / cg"
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   212
! !
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   213
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   214
!ChangesBrowser class methodsFor:'menu specs'!
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   215
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   216
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   217
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   218
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   219
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   220
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   221
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   222
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   223
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   224
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   225
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   226
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   227
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   228
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   229
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   230
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   231
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   232
     #(Menu
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   233
        (
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   234
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   235
            label: 'File'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   236
            submenuChannel: menuSpecFile
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   237
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   238
         (MenuItem
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   239
            label: 'Change_subst'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   240
            submenuChannel: menuSpecChange
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   241
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   242
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   243
            label: 'Search'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   244
            submenuChannel: menuSpecSearch
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   245
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   246
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   247
            label: 'Browse'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   248
            submenuChannel: menuSpecBrowse
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   249
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   250
         (MenuItem
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   251
            label: 'Settings'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   252
            submenuChannel: menuSpecSettings
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   253
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   254
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   255
            label: 'MENU_Help'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   256
            submenuChannel: menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   257
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   258
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   259
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   260
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   261
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   262
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   263
    "Modified: / 21-11-2016 / 23:46:22 / cg"
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   264
    "Modified: / 01-07-2018 / 09:24:30 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   265
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   266
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   267
menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   268
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   269
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   270
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   271
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   272
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   273
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   274
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   277
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecBrowse)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   278
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   279
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   280
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   283
     #(Menu
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   286
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   287
            label: 'Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   288
            itemValue: doBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   289
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   290
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   291
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   292
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   293
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   294
            label: 'Senders...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   295
            itemValue: doBrowseSenders
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   296
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   297
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   298
            label: 'Implementors...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   299
            itemValue: doBrowseImplementors
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   300
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   301
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   302
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   303
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   304
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   305
!
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
menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   308
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   309
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   310
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   311
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   312
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   313
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   314
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   317
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecChange)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   318
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   319
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   320
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   323
     #(Menu
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   326
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   327
            label: 'Apply'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   328
            itemValue: doApply
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   329
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   330
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   331
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   332
            label: 'Apply to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   333
            itemValue: doApplyRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   334
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   335
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   336
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   337
            label: 'Apply from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   338
            itemValue: doApplyFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   339
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   340
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   341
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   342
            label: 'Apply for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   343
            itemValue: doApplyClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   344
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   345
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   346
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   347
            label: 'Apply for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   348
            itemValue: doApplyClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   349
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   350
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   351
            enabled: hasNoSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   352
            label: 'Apply All'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   353
            itemValue: doApplyAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   354
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   355
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   356
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   357
            label: 'Apply to Conflict or End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   358
            itemValue: doApplyToConflictOrEnd
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   359
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   360
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   361
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   362
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   363
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   364
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   365
            label: 'Delete'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   366
            itemValue: doDelete
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   367
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   368
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   369
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   370
            label: 'Delete to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   371
            itemValue: doDeleteRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   372
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   373
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   374
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   375
            label: 'Delete from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   376
            itemValue: doDeleteFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   377
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   378
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   379
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   380
            label: 'Delete for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   381
            itemValue: doDeleteClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   382
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   383
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   384
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   385
            label: 'Delete for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   386
            itemValue: doDeleteClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   387
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   388
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   389
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   390
            label: 'Delete all for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   391
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   392
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   393
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   394
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   395
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   396
            label: 'Delete all for Class && its Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   397
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   398
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   399
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   400
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   401
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   402
            label: 'Delete all for Namespace'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   403
            itemValue: doDeleteAllForNamespace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   404
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   405
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   406
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   407
            label: 'Delete all for Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   408
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   409
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   410
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   411
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   412
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   413
            label: 'Delete all for Classes && their Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   414
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   415
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   416
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   417
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   418
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   419
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   420
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   421
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   422
            label: 'Delete older Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   423
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   424
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   425
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   426
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   427
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   428
            label: 'Delete older Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   429
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   430
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   431
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   432
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   433
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   434
            label: 'Delete all Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   435
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   436
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   437
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   438
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   439
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   440
            label: 'Delete all Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   441
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   442
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   443
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   444
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   445
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   446
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   447
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   448
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   449
            label: 'Compare with Current'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   450
            itemValue: doCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   451
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   452
         (MenuItem
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   453
            enabled: hasSingleSelection
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   454
            label: 'Copy to Clipboard'
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   455
            itemValue: doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   456
          )
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   457
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   458
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   459
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   460
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   461
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   462
            label: 'Make Change a Patch'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   463
            itemValue: doMakePatch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   464
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   465
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   466
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   467
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   468
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   469
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   470
    "Modified: / 21-11-2016 / 23:46:42 / cg"
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   471
    "Modified: / 21-06-2018 / 09:11:40 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   472
!
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   473
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   474
menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   475
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   476
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   477
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   478
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   479
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   480
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   481
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   484
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecFile)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   485
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   486
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   487
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   490
     #(Menu
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   493
            label: 'Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   494
            itemValue: doCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   495
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   496
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   497
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   498
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   499
            label: 'Compress for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   500
            itemValue: doCompressClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   501
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   502
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   503
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   504
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   505
            label: 'Compress for Class && Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   506
            itemValue: doCompressSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   507
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   508
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   509
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   510
            label: 'Compare and Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   511
            itemValue: doCompareAndCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   512
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   513
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   514
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   515
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   516
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   517
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   518
         (MenuItem
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   519
            label: 'Cleanup'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   520
            itemValue: doCleanup
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   521
            isVisible: notEditingClassSource
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   522
          )
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   523
         (MenuItem
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   524
            label: '-'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   525
            isVisible: notEditingClassSource
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   526
          )
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   527
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   528
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   529
            label: 'Fileout && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   530
            itemValue: doFileoutAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   531
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   532
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   533
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   534
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   535
            label: 'CheckIn && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   536
            itemValue: doCheckinAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   537
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   538
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   539
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   540
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   541
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   542
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   543
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   544
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   545
            label: 'Save In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   546
            itemValue: doSave
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   547
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   548
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   549
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   550
            label: 'Save to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   551
            itemValue: doSaveRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   552
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   553
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   554
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   555
            label: 'Save for Class to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   556
            itemValue: doSaveClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   557
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   558
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   559
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   560
            label: 'Save all for Class In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   561
            itemValue: doSaveClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   562
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   563
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   564
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   565
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   566
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   567
            label: 'Writeback ClassFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   568
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   569
            isVisible: editingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   570
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   571
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   572
            label: 'Writeback ChangeFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   573
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   574
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   575
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   576
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   577
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   578
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   579
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   580
            label: 'Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   581
            itemValue: doUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   582
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   583
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   584
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   585
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   586
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   587
            label: 'Exit'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   588
            itemValue: menuExit
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   589
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   590
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   591
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   592
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   593
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   594
!
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
menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   597
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   598
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   599
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   600
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   601
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   602
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   603
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   606
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecHelp)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   607
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   608
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   609
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   612
     #(Menu
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   615
            label: 'ChangesBrowser Documentation'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   616
            itemValue: openHTMLDocument:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   617
            argument: 'tools/cbrowser/TOP.html'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   618
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   619
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   620
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   621
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   622
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   623
            label: 'About ChangesBrowser...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   624
            itemValue: openAboutThisApplication
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   625
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   626
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   627
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   628
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   629
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   630
!
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
menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   633
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   634
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   635
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   636
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   637
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   638
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   639
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   642
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSearch)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   643
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   644
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   645
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   648
     #(Menu
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   651
            label: 'Class...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   652
            itemValue: findClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   653
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   654
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   655
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   656
            label: 'First for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   657
            itemValue: findFirstForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   658
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   659
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   660
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   661
            label: 'Previous for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   662
            itemValue: findPreviousForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   663
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   664
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   665
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   666
            label: 'Next for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   667
            itemValue: findNextForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   668
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   669
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   670
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   671
            label: 'Last for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   672
            itemValue: findLastForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   673
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   674
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   675
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   676
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   677
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   678
            label: 'Selector...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   679
            itemValue: findSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   680
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   681
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   682
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   683
            label: 'Previous for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   684
            itemValue: findPreviousForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   685
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   686
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   687
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   688
            label: 'Next for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   689
            itemValue: findNextForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   690
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   691
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   692
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   693
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   694
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   695
            label: 'String...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   696
            itemValue: findString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   697
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   698
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   699
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   700
            label: 'Previous with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   701
            itemValue: findPreviousForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   702
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   703
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   704
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   705
            label: 'Next with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   706
            itemValue: findNextForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   707
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   708
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   709
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   710
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   711
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   712
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   713
            label: 'Previous Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   714
            itemValue: findPreviousDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   715
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   716
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   717
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   718
            label: 'Next Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   719
            itemValue: findNextDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   720
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   721
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   722
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   723
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   724
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   725
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   726
            label: 'Previous Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   727
            itemValue: findPreviousSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   728
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   729
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   730
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   731
            label: 'Next Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   732
            itemValue: findNextSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   733
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   734
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   735
            label: 'Last Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   736
            itemValue: findLastSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   737
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   738
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   739
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   740
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   741
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   742
!
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
menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   745
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   746
     by the MenuEditor of ST/X."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   747
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   748
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   749
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   750
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   751
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   754
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSettings)) startUp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   755
    "
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   756
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   757
    <resource: #menu>
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
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   760
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   761
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   762
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   763
            label: 'Auto Compare'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   764
            indication: autoCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   765
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   766
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   767
            label: 'Autoload As Required'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   768
            indication: autoloadAsRequired
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   769
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   770
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   771
            label: 'Show Diffs'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   772
            indication: showingDiffs
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   773
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   774
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   775
            label: 'Auto Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   776
            indication: autoUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   777
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   778
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   779
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   780
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   781
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   782
            label: 'Add to ChangeSet when Applying'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   783
            indication: updateChangeSet
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   784
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   785
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   786
            label: 'Ignore Public/Private in Categories (Dolphin code)'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   787
            itemValue: ignorePublicPrivateCategories:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   788
            isVisible: false
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   789
            indication: ignorePublicPrivateCategories
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   790
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   791
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   792
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   793
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   794
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   795
            label: 'Apply into Package...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   796
            itemValue: setEnforcedPackage
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   797
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   798
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   799
            label: 'Apply into NameSpace...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   800
            itemValue: setEnforcedNameSpace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   801
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   802
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   803
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   804
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   805
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   806
            label: 'Settings...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   807
            itemValue: openSettingsDialog
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   808
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   809
         )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   810
        nil
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   811
        nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   812
      )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   813
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   814
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   815
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   816
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   817
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   818
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   819
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   820
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   821
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   822
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   823
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   824
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   825
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   826
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   827
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   828
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   829
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   830
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   831
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   832
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   833
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   834
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   835
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   836
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   837
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   838
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   839
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   840
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   841
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   842
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   843
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   844
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   845
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   846
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   847
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   848
            isVisible: canDeleteChanges
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   849
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   850
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   851
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   852
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   853
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   854
          )
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   855
         (MenuItem
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   856
            activeHelpKey: deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   857
            enabled: hasSelectionHolder
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   858
            isVisible: canDeleteChanges
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   859
            label: 'Delete for Class from Beginning'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   860
            itemValue: doDeleteClassFromBeginning
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   861
            translateLabel: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   862
            isButton: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   863
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassFromStart24x24Icon)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   864
          )
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   865
         (MenuItem
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   866
            activeHelpKey: deleteForClassToEnd
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   867
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   868
            isVisible: canDeleteChanges
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   869
            label: 'Delete for Class to End'
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   870
            itemValue: doDeleteClassRest
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   871
            translateLabel: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   872
            isButton: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   873
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassToEnd24x24Icon)
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   874
          )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   875
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   876
            label: '-'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   877
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   878
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   879
            activeHelpKey: deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   880
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   881
            isVisible: canDeleteChanges
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   882
            label: 'Delete all versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   883
            itemValue: doDeleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   884
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   885
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   886
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethod24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   887
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   888
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   889
            activeHelpKey: deleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   890
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   891
            isVisible: canDeleteChanges
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   892
            label: 'Delete older versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   893
            itemValue: doDeleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   894
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   895
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   896
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethodFromStart24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   897
          )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   898
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   899
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   900
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   901
      )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   902
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   903
    "Modified: / 07-07-2017 / 12:52:28 / cg"
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   904
    "Modified: / 21-06-2018 / 09:11:51 / Claus Gittinger"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   905
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   906
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   907
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   908
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   909
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   910
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   911
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   912
    |changeSet|
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
    (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
   915
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   916
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   917
	    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
   918
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   919
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   920
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   921
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   922
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   923
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   924
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   925
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   926
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   927
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   928
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   929
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   930
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   931
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   932
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   933
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   934
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   935
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   936
readXMLChangesFromFile:changeFileName inBackground:inBackground
14011
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   937
    |set|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   938
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   939
    changeFileName asFilename readingFileDo:[:s|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   940
        set := self readXMLChangesFrom:s inBackground:false.
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   941
    ].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   942
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   943
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   944
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   945
!ChangesBrowser class methodsFor:'utilities'!
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
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   948
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   949
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   950
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   951
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   952
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   953
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   954
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   955
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   956
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   957
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   958
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   959
methodDefinitionSelectors
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
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   962
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   963
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   964
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   965
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   966
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   967
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   968
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   969
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   970
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   971
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   972
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   973
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   974
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   975
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   976
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   977
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   978
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   979
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   980
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   981
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   982
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   983
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   984
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   985
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   986
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   987
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   988
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   989
    ^ autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   990
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   991
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   992
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   993
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   994
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   995
    ^ autoUpdate
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
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   998
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   999
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1000
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1001
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1002
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1003
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1004
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1005
canDeleteChanges
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1006
    "makes the delete buttons in the toolbar visible"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1007
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1008
    ^ true.
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
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1011
changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1012
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1013
        changeListSelectionHolder := nil asValue.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1014
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1015
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1016
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1017
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1018
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1019
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1020
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1021
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1022
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1023
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1024
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1025
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1026
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1027
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1028
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1029
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1030
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1031
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1032
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1033
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1034
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1035
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1036
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1037
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1038
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1039
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1040
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1041
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1042
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1043
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1044
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1045
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1046
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1047
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1048
hasSelection
17924
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1049
    "true if a change is selected"
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1050
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1051
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1052
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1053
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1054
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1055
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1056
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1057
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1058
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1059
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1060
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1061
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1062
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1063
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1064
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1065
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1066
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1067
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1068
10719
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
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1071
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1072
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1073
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1074
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1075
leftCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1076
    "change the string shown above the left codeView (defaults to: 'Current')"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1077
    
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1078
    self leftCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1079
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1080
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1081
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1082
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1083
leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1084
    "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
  1085
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1086
    ^ leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1087
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1088
    "Created: / 07-12-2017 / 12:28:31 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1089
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1090
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1091
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1092
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1093
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1094
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1095
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1096
    ^ (self editingClassSource or:[readOnly == true]) not
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
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1099
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1100
    ^ (readOnly ~~ true)
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
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
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1105
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1106
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1107
rightCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1108
    "change the string shown above the right codeView (defaults to: 'Change')"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1109
    
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1110
    self rightCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1111
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1112
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1113
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1114
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1115
rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1116
    "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
  1117
    
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1118
    ^ rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1119
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1120
    "Created: / 07-12-2017 / 12:28:37 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1121
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1122
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1123
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1124
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1125
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1126
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1127
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1128
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1130
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1131
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1132
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1133
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1134
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1135
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1136
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1137
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1138
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1139
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1140
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1141
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1142
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1143
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1144
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1145
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1146
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1147
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1148
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1149
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1150
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1151
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1152
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1153
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1154
    ^ sel.
3319
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
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1157
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1158
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1159
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1160
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1161
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1162
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1163
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1164
    "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
  1165
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1166
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1167
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1168
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1169
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
  1170
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1171
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1172
correctableError:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1173
    "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
  1174
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1175
     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
  1176
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1177
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1178
    ShowWarningDialogs == true ifTrue:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1179
        self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1180
    ] ifFalse:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1181
        Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1182
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1183
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1184
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1185
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1186
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1187
    "compiler notifies us of a warning"
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1188
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1189
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1190
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1191
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1192
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1193
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1194
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1195
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1196
    "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
  1197
     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
  1198
     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
  1199
     no corrections allowed here therefore return false"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1200
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1201
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1202
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1203
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1204
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1205
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1206
error:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1207
    "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
  1208
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1209
     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
  1210
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1211
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1212
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1213
    (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
  1214
        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
  1215
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1216
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  1217
    "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
  1218
     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
  1219
    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
  1220
        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
  1221
            |box|
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
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1224
             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
  1225
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1226
            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
  1227
                          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
  1228
                          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
  1229
                          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
  1230
                          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
  1231
                          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
  1232
                          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
  1233
                          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
  1234
        ].
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1235
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1236
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1237
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1238
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1239
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1240
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1241
        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
  1242
            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
  1243
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1244
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1245
        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
  1246
            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
  1247
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1248
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1249
        ^  false
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1250
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1251
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1252
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1253
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1254
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1255
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1256
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1257
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1258
     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
  1259
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1260
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1261
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1262
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1263
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1264
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1265
warning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1266
    "compiler notifies us of a warning - ignore it"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1267
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1268
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1269
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1270
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1271
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1272
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1273
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1274
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1275
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1276
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1277
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1278
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1279
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1280
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1281
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1282
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1283
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1284
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1285
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1286
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1287
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1288
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1289
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1290
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1291
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1292
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1293
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1294
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1295
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1296
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1297
    (key == #Delete) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1298
        self sensor shiftDown ifTrue:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1299
            self doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1300
        ] ifFalse:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1301
            self doDelete.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1302
        ].
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1303
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1304
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1305
    (key == #BackSpace) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1306
        self doDelete. "/ doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1307
        ^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1308
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1309
    (key == #Accept) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1310
        self doApply.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1311
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1312
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1313
    (key == #Find) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1314
        self findClass.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1315
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1316
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1317
    (key == #FindPrev) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1318
        self findPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1319
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1320
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1321
    (key == #FindNext) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1322
        self findNext.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1323
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1324
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1325
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1326
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1327
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1328
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1329
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1330
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1331
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1332
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1333
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1334
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1335
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1336
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1337
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1338
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1339
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1340
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1341
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1342
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1343
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1344
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1345
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1346
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1347
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1348
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1349
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1350
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1351
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1352
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1353
    self askIfChangesAreToBeWrittenBack.
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1354
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1355
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1356
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1357
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1358
    doCompare ifTrue:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1359
        self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1360
    ] ifFalse:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1361
        changeListView invalidate. "/ clear; redraw.
3202
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
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1364
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1365
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1366
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1367
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1368
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1369
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1370
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1371
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1372
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1373
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1374
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1375
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1376
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1377
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1378
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1379
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1380
                          ('Search Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1381
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1382
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1383
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1384
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1385
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1386
                          ('Next with this String'        findNextForString       #FindNextString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1387
                          ('-'                                                                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1388
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1389
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
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
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1392
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1393
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1394
            replPrev := #FindPrevSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1395
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1396
            lastSearchType == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1397
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1398
                replPrev := #FindPrevSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1399
            ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1400
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1401
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1402
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1403
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1404
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1405
                    replPrev := #FindPrevClass.
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
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1409
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1410
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1411
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1412
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1413
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1414
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1415
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1416
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1417
                             with:nil.
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
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1420
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1421
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1422
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1423
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1424
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1425
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1426
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1427
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1428
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1429
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1430
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1431
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1432
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1433
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1434
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1435
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1436
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1437
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1438
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1439
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1440
                          ('Delete all for Classes'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1441
                          ('Delete all for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1442
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1443
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1444
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1445
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1446
                          ('Delete all for Class'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1447
                          ('Delete all for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1448
                 ).
3227
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
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1451
    items := items ,
7360
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
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1454
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1455
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1456
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1457
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1458
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1459
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1460
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1461
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1462
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1463
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1464
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1465
        items := items , #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1466
                      ('Fileout & Delete all for Class' doFileoutAndDeleteClassAll     )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1467
                      ('CheckIn & Delete all for Class' doCheckinAndDeleteClassAll     )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1468
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1469
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1470
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1471
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1472
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1473
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1474
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1475
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1476
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1477
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1478
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1479
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1480
    editingClassSource ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1481
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1482
                      ('Writeback ClassFile'  doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1483
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1484
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1485
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1486
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1487
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1488
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1489
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1490
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1491
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1492
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1493
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1494
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1495
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1496
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1497
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1498
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1499
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1500
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1501
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1502
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1503
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1504
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1505
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1506
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1507
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1508
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1509
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1510
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1511
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1512
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1513
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1514
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1515
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1516
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1517
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1518
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1519
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1520
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1521
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1522
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1523
        ]
255
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
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1527
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1528
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1529
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1530
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1531
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1532
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1533
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1534
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1535
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1536
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1537
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1538
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1539
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1540
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1541
                       doApplyAll doApplyRest)
3227
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
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1544
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1545
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1546
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1547
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1548
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1549
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1550
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1551
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1552
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1553
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1554
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1555
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1556
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1557
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1558
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1559
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1560
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1561
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1562
initialize
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1563
    |panel infoLabel v upperFrame buttonPanel  mH  tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1564
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1565
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1566
    leftCodeLabelHolder := (self class resources string:'Current') asValue.
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1567
    rightCodeLabelHolder := (self class resources string:'Change_subst') asValue.    
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1568
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1569
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1570
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1571
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1572
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1573
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1574
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1575
    encodingIfKnown := nil.
17968
f29d9da436a7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17953
diff changeset
  1576
    autoCompare := (DefaultAutoCompare ? true) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1577
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1578
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1579
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1580
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1581
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1582
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1583
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1584
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1585
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1586
    ].
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
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1589
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1590
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1591
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1592
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1593
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1594
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1595
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1596
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1597
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1598
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1599
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1600
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1601
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1602
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1603
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1604
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1605
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1606
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1607
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1608
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1609
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1610
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1611
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1612
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1613
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1614
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1615
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1616
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1617
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1618
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1619
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1620
        toolbarMenu menu:(self toolbarMenu).
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  1621
        toolbarMenu helpSpecProvider:self. "/ for helpTexts
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1622
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1623
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1624
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1625
        mH := mH + tmH + 1.
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1626
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1627
        toolbarMenu delegate:self.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1628
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1629
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1630
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1631
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1632
    panel := VariableVerticalPanel in:self. 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1633
    "/ panel origin:(0.0 @ mH) corner:(1.0 @ 1.0)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1634
    panel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1635
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1636
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1637
                    topFraction:0.0 offset:mH
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1638
                    bottomFraction:1.0 offset:-30).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1639
    panel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1640
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1641
    infoLabel := Label in:self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1642
    infoLabel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1643
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1644
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1645
                    topFraction:1.0 offset:-28
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1646
                    bottomFraction:1.0 offset:-2).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1647
    infoLabel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1648
    infoLabel sizeFixed:true.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1649
    infoLabel level:-1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1650
    infoLabel adjust:#left.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1651
    infoLabel labelChannel:(infoHolder := '' asValue).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1652
    
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1653
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1654
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1655
        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
  1656
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1657
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1658
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1659
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1660
        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
  1661
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1662
        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
  1663
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1664
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1665
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1666
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1667
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1668
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1669
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1670
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1671
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1672
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1673
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1674
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1675
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1676
        buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1677
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1678
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1679
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1680
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1681
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1682
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1683
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1684
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1685
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1686
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1687
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1688
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1689
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1690
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1691
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1692
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1693
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1694
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1695
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1696
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1697
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1698
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1699
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1700
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1701
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1702
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1703
    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
  1704
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1705
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1706
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1707
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1708
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1709
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1710
    lbl := Label label:leftCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1711
    lbl labelChannel:leftCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1712
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1713
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1714
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1715
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1716
                        bottomFraction:0.0 offset:20).
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1717
    lbl := Label label:rightCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1718
    lbl labelChannel:rightCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1719
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1720
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1721
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1722
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1723
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1724
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1725
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1726
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1727
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1728
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1729
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1730
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1731
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1732
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1733
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1734
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1735
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1736
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1737
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1738
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1739
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1740
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1741
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1742
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1743
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1744
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1745
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1746
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1747
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1748
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1749
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1750
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1751
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1752
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1753
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1754
    "Modified: / 07-12-2017 / 12:28:09 / cg"
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1755
    "Modified: / 24-09-2018 / 22:50:40 / Claus Gittinger"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1756
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1757
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1758
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1759
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1760
    self readChangesFileInBackground:true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  1761
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1762
    changeListView action:[:lineNrOrCollection | self changeSelection:lineNrOrCollection].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1763
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1764
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1765
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1766
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1767
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1768
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1769
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1770
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1771
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1772
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1773
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1774
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1775
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1776
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1777
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1778
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1779
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1780
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1781
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1782
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1783
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1784
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1785
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1786
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1787
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1788
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1789
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1790
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1791
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1792
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1793
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1794
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1795
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1796
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1797
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1798
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1799
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1800
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1801
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1802
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1803
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1804
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1805
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1806
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1807
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1808
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1809
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1810
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1811
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1812
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1813
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1814
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1815
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1816
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1817
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1818
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1819
            box title:('The modified changelist has not been written back to the change file.\\Write change file before exiting ?') withCRs.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1820
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1821
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1822
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1823
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1824
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1825
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1826
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1827
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1828
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1829
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1830
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1831
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1832
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1833
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1834
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1835
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1836
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1837
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1838
doApply
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1839
    "user wants a change to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1840
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1841
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1842
        (self applyChange:changeNr) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1843
            ^ self "/ cancel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1844
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1845
        self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1846
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1847
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1848
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1849
doApplyAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1850
    "user wants all changes to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1851
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1852
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1853
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1854
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1855
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1856
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1857
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1858
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1859
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1860
        multipleApply := lastNr > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1861
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1862
        1 to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1863
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1864
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1865
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1866
        self autoSelectLast
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1867
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1868
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1869
    "Modified: 21.1.1997 / 22:26:30 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1870
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1871
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1872
doApplyClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1873
    "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
  1874
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1875
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1876
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1877
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1878
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1879
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1880
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1881
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1882
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1883
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1884
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1885
            multipleApply := 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
            1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1888
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1889
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1890
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1891
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1892
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1893
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1894
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1895
            self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1896
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1897
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1898
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1899
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1900
!
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
doApplyClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1903
    "user wants all changes for this class from changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1904
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1905
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1906
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1907
         lastNr "{ Class: SmallInteger }" |
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
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1910
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1911
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1912
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1913
            lastNr := self numberOfChanges.
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
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1916
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1917
            multipleApply := (lastNr - changeNr) > 1.
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
            changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1920
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1921
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1922
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1923
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1924
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1925
                ].
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
            self autoSelect:lastChange.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1928
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1929
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1930
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1931
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1932
!
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
doApplyFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1935
    "user wants all changes from 1 to changeNr to be applied"
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
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1938
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1939
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1940
        self clearCodeView.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1943
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1944
        multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1945
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1946
        1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1947
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1948
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1949
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1950
        self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1951
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1952
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1953
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1954
doApplyRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1955
    "apply all changes from changeNr to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1956
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1957
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1958
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1959
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1960
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1961
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1962
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1963
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1964
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1965
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1966
        multipleApply := (lastNr - changeNr) > 1.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1967
        AbortAllOperationRequest handle:[:ex |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1968
            ex return
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1969
        ] do:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1970
            changeNr to:lastNr do:[:changeNr |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1971
                changeListView setSelection:changeNr.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1972
                self applyChange:changeNr
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1973
            ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1974
            self autoSelect:self numberOfChanges.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  1975
        ]
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1978
    "Modified: 21.1.1997 / 22:25:29 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1981
doApplyToConflictOrEnd
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1982
    "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
  1983
     or the end."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1984
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1985
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1986
        |lastNr "{ Class: SmallInteger }"|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1987
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1988
        self clearCodeView.
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
        lastNr := self numberOfChanges.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1993
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1994
        multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1995
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1996
        changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1997
            | cls sel |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  1998
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1999
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2000
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2001
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2002
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2003
            ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2004
                (cls includesSelector:sel) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2005
                    self autoSelect:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2006
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2007
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2008
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2009
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2010
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2011
        self autoSelect:self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2012
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2013
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2014
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2015
doBrowse
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2016
    "user wants a browser on the class of a change"
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
    self withSingleSelectedChangeDo:[:changeNr |
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2019
        |cls|
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2020
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2021
        cls := self classOfChange:changeNr.
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2022
        cls notNil ifTrue:[
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2023
            SystemBrowser default
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2024
                openInClass:cls
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2025
                selector:(self selectorOfMethodChange:changeNr)
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2026
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2027
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2028
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2029
    "Modified: / 01-09-2017 / 14:20:00 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2030
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2031
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2032
doBrowseImplementors
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2033
    "open an implementors-browser"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2034
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2035
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2036
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2037
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2038
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2039
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2040
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2041
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2042
                    request:'Selector to browse implementors of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2043
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2044
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2045
        SystemBrowser default browseImplementorsMatching:selector.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2046
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2047
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2048
    "Modified (format): / 01-09-2017 / 14:20:06 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2049
!
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
doBrowseSenders
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2052
    "user wants a browser on the class of a change"
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
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2055
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2056
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2057
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2058
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2059
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2060
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2061
                    request:'Selector to browse senders of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2062
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2063
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2064
        SystemBrowser default browseAllCallsOn:selector asSymbol.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2065
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2066
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2067
    "Modified: / 01-09-2017 / 14:20:13 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2068
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2069
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2070
doCheckinAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2071
    "first checkin the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2072
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2073
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2074
    |classes answer logTitle checkinInfo|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2075
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2076
"/    self theSingleSelection isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2077
"/        ^ self information:'Only possible if a single change is selected.'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2078
"/    ].
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
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2081
        classes := IdentitySet new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2082
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2083
        self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2084
            | className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2085
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2086
            className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2087
            className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2088
                class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2089
                class isNil ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2090
                    self proceedableError:'oops - no class: ', className.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2091
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2092
                class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2093
                    class := class theNonMetaclass.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2094
                    (classes includes:class) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2095
                        class isPrivate ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2096
                            (classes includes:class owningClass) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2097
                                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
  2098
                                                                    bindWith:class owningClass name allBold) withCRs.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2099
                                answer isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2100
                                answer ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2101
                                    classes add:class owningClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2102
                                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2103
                            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2104
                        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2105
                            classes add:class
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2106
                        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2107
                    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2108
                ]
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
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2111
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2112
        classes size == 1 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2113
            logTitle := classes first name.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2114
        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2115
            logTitle := '%1 classes' bindWith:classes size.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2116
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2117
        checkinInfo := SourceCodeManagerUtilities default
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2118
                        getCheckinInfoFor:logTitle
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2119
                        initialAnswer:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2120
        checkinInfo isNil ifTrue:[^ self ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2121
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2122
        self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2123
        classes do:[:eachClass |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2124
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2125
                ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2126
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2127
                           from:1 to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2128
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2129
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2130
        self updateChangeList.
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
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2133
    "Modified: / 06-09-1995 / 17:11:16 / claus"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2134
    "Modified: / 17-11-2001 / 14:21:13 / cg"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2135
    "Modified: / 24-05-2018 / 14:55:14 / Claus Gittinger"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2136
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2137
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2138
doCleanup
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2139
    "cleanup the changefile/changeset.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2140
     actions done:
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2141
     - 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
  2142
       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
  2143
       Then delete it incl. previous versions of it."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2144
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2145
    |numChanges nextChangeNr changeNr changeSelector changeClass numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2146
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2147
    numChanges := self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2148
    self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2149
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2150
    self withWaitCursorDo:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2151
        "/ find the last method change which is equal
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2152
        changeNr := numChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2153
        [changeNr > 0] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2154
            nextChangeNr := changeNr - 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2155
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2156
            (changeClass := self classOfChange:changeNr ifAbsent:nil) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2157
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2158
                (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2159
                    (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2160
                        (changeSelector := self selectorOfMethodCategoryChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2161
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2162
                                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
  2163
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2164
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2165
                                   silentDeleteMethodCategoryChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2166
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2167
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2168
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2169
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2170
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2171
                        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2172
                    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2173
                ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2174
                    (changeSelector := self selectorOfMethodChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2175
                        (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2176
                            "/ 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
  2177
                            "/ 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
  2178
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2179
                                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
  2180
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2181
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2182
                                   silentDeleteChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2183
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2184
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2185
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2186
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2187
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2188
                        ].
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
                ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2191
            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2192
            changeNr := nextChangeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2193
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2194
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2195
    self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2196
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2197
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2198
doCompare
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2199
    "compare change with current system version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2200
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2201
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2202
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2203
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2204
        self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2205
            self compareChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2206
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2207
        self newLabel:''
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2208
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2209
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2210
    "Modified: 24.2.1996 / 19:37:19 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2211
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2212
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2213
doCompareAndCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2214
    "remove all changes, which are equivalent to the current image version"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2215
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2216
    |toDelete|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2217
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2218
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2219
    toDelete := OrderedCollection new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2220
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2221
        1 to:self numberOfChanges do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2222
            (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2223
                toDelete add:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2224
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2225
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2226
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2227
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2228
    toDelete reverseDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2229
        self silentDeleteChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2230
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2231
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2232
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2233
     scroll back a bit, if we are left way behind the list
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2234
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2235
    changeListView firstLineShown > self numberOfChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2236
        changeListView makeLineVisible:self numberOfChanges
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2237
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2238
    self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2239
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2240
    self newLabel:''.
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2244
doCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2245
    "compress the change-set; this replaces multiple method-changes by the last
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2246
     (i.e. the most recent) change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2247
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2248
    self compressForClass:nil
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: / 29.10.1997 / 01:03:26 / 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
doCompressClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2254
    "compress changes for the selected class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2255
     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
  2256
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2257
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2258
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2259
    self selectedClassNames do:[:classNameToCompress |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2260
        self compressForClass:classNameToCompress.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2261
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2262
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2263
    "Created: / 29.10.1997 / 01:05:16 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2264
    "Modified: / 19.11.2001 / 21:55:17 / cg"
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
doCompressSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2268
    "compress changes for the selected class & selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2269
     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
  2270
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2271
    |classSelectorPairs|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2272
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2273
    self checkSingleSelectedChange.
11499
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
    classSelectorPairs := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2276
    self withSelectedChangesDo:[:changeNr |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2277
        | classNameToCompress selector |
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2278
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2279
        classNameToCompress := self realClassNameOfChange:changeNr.
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2280
        classNameToCompress notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2281
            selector := self selectorOfMethodChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2282
            selector notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2283
                classSelectorPairs add:(classNameToCompress -> selector).
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2284
            ]
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2285
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2286
    ].
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
    classSelectorPairs do:[:pair |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2289
        self compressForClass:(pair key) selector:(pair value).
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2290
    ]
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
    "Created: / 19.11.2001 / 21:50:59 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2293
    "Modified: / 19.11.2001 / 22:10:08 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2294
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2295
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2296
doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2297
    "user wants a change text to be copied to the clipboard"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2298
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2299
    |text|
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2300
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2301
    self withSingleSelectedChangeDo:[:changeNr |
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2302
        text := self sourceOfMethodChange:changeNr.
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2303
    ].
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2304
    text notEmptyOrNil ifTrue:[
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2305
        self window setClipboardText:text
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2306
    ]
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2307
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2308
    "Created: / 21-11-2016 / 23:38:11 / cg"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2309
!
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2310
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2311
doDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2312
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2313
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2314
    |rangeEnd rangeStart firstDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2315
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2316
    changeListView selection size <= 5 ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2317
        self withSelectedChangesReverseDo:[:changeNr |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2318
            self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2319
            self autoSelectOrEnd:changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2320
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2321
        self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2322
        ^ self
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2323
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2324
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2325
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2326
        rangeEnd isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2327
            rangeEnd := rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2328
        ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2329
            (changeNr = (rangeEnd + 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2330
                rangeEnd := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2331
            ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2332
                (changeNr = (rangeStart - 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2333
                    rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2334
                ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2335
                    self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2336
                    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2337
                    rangeStart := rangeEnd := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2338
                ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2339
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2340
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2341
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2342
    rangeStart notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2343
        self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2344
        firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2345
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2346
    self autoSelectOrEnd:firstDeleted.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2347
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2348
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2349
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2350
doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2351
    "delete all changes for classes with same namespace as currently selected change"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2352
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2353
    |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2354
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2355
    lastChangeNr := -1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2356
    namespacesToDelete := Set new.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2357
    self withSelectedChangesDo:[:changeNr |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2358
        |namespaceToDelete|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2359
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2360
        namespaceToDelete := self namespaceOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2361
        namespaceToDelete notNil ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2362
            namespacesToDelete add:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2363
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2364
        lastChangeNr := lastChangeNr max:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2365
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2366
    namespacesToDelete isEmpty ifTrue:[^ self].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2367
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2368
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2369
    self unselect.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2370
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2371
    self withExecuteCursorDo:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2372
        namespacesToDelete do:[:namespaceToDelete |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2373
            |numDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2374
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2375
            self 
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2376
                silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2377
                from:lastChangeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2378
                to:(self numberOfChanges).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2379
            numDeletedBefore := self
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2380
                                   silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2381
                                   from:1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2382
                                   to:(lastChangeNr-1).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2383
            lastChangeNr := lastChangeNr - numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2384
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2385
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2386
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2387
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2388
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2389
    self autoSelectOrEnd:lastChangeNr.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2390
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2391
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2392
doDeleteAndSelectPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2393
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2394
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2395
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2396
        self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2397
        self autoSelectOrEnd:changeNr-1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2398
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2399
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2400
    "/mh - don't we need a 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2401
    "/  self setChangeList
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2402
    "/ here?
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2403
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2404
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2405
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2406
doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2407
    "delete all changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2408
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2409
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2410
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2411
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2412
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2413
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2414
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2415
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2416
        classNameToDelete := self classNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2417
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2418
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2419
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2420
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2421
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2422
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2423
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2424
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2425
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2426
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2427
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2428
            |numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2429
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2430
            self silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2431
                                   from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2432
                                     to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2433
            numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2434
                                   silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2435
                                   from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2436
                                   to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2437
            lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2438
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2439
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2440
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2441
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2442
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2443
    self autoSelectOrEnd:lastChangeNr.
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
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2446
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2447
!
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
doDeleteClassAndPrivateClassesAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2450
    "delete all changes with same class and private classes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2451
     as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2452
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2453
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2454
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2455
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2456
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2457
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2458
        |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
        classNameToDelete := self ownerClassNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2461
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2462
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2463
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2464
        lastChangeNr := lastChangeNr max:changeNr.
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2467
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2468
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2469
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2470
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2471
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2472
            | changeNr numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2473
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2474
            classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2475
                changeListView setSelection:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2476
                self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2477
                                       from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2478
                                         to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2479
                numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2480
                                       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2481
                                       from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2482
                                       to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2483
                lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2484
                overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2485
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2486
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2487
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2488
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2489
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2490
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2491
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2492
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2493
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2494
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2495
doDeleteClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2496
    "delete changes with same class as currently selected change from the beginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2497
     up to the selected change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2498
     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
  2499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2500
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2501
        |classNameToDelete prevSelection numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2502
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2503
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2504
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2505
            prevSelection := changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2506
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2507
            numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2508
                                silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2509
                                from:1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2510
                                to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2511
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2512
            self autoSelectOrEnd:(changeNr + 1 - numDeleted)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2513
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2514
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2515
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2516
    "Created: 13.12.1995 / 15:41:58 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2517
    "Modified: 25.5.1996 / 12:26:34 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2518
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2519
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2520
doDeleteClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2521
    "delete rest of changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2522
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2523
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2524
        | classNameToDelete |
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2525
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2526
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2527
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2528
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2529
            self silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2530
                                   from:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2531
                                     to:(self numberOfChanges).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2532
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2533
            self autoSelectOrEnd:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2534
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2535
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2536
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2537
    "Modified: / 18.5.1998 / 14:25:07 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2538
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2539
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2540
doDeleteClassSelectorAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2541
    "delete all changes with same class and selector as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2542
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2543
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2544
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2545
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2546
    classNameSelectorPairsToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2547
    self withSelectedChangesDo:[:changeNr |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2548
        |className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2549
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2550
        className := self realClassNameOfChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2551
        selector := self selectorOfMethodChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2552
        selector notNil ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2553
            (className notNil and:[selector notNil]) ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2554
                classNameSelectorPairsToDelete add:(className -> selector).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2555
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2556
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2557
        lastChangeNr := lastChangeNr max:changeNr.
11499
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
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2561
    self unselect.
11499
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 withExecuteCursorDo:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2564
        classNameSelectorPairsToDelete do:[:pair |
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2565
            |numDeletedBefore className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2566
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2567
            className := pair key.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2568
            selector  := pair value.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2569
            self silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2570
                                   from:lastChangeNr
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2571
                                     to:(self numberOfChanges).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2572
            numDeletedBefore := self
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2573
                                   silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2574
                                   from:1
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2575
                                   to:(lastChangeNr-1).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2576
            lastChangeNr := lastChangeNr - numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2577
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2578
        ].
11499
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
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2581
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2582
    self autoSelectOrEnd:lastChangeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2583
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2584
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2585
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2586
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2587
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2588
doDeleteClassSelectorOlder
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2589
    "delete this and older changes with same class and selector as currently selected change(s)"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2590
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2591
    |classNameSelectorTypeTuplesToDelete 
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2592
     lastChangeNr overAllNumDeletedBefore|
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2593
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2594
    lastChangeNr := -1.
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2595
    classNameSelectorTypeTuplesToDelete := OrderedCollection new.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2596
    
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2597
    "/ collect info on what is to be deleted
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2598
    self withSelectedChangesInOrder:#reverse do:[:changeNr |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2599
        |className selector changeType|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2600
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2601
        changeType := #methodChange.
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2602
        className := self realClassNameOfChange:changeNr.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2603
        selector := self selectorOfMethodChange:changeNr.
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2604
        selector isNil ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2605
            (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2606
                selector := self selectorOfMethodCategoryChange:changeNr.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2607
                selector notNil ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2608
                    changeType := #methodCategoryChange.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2609
                ]
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2610
            ]
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2611
        ].
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2612
        (className notNil and:[selector notNil]) ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2613
            classNameSelectorTypeTuplesToDelete add:{ className . selector . changeType . changeNr}.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2614
        ].    
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2615
        lastChangeNr := lastChangeNr max:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2616
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2617
        
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2618
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2619
    self unselect.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2620
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2621
    self withExecuteCursorDo:[
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2622
        classNameSelectorTypeTuplesToDelete do:[:tuple |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2623
            |numDeletedBefore className selector changeType lastToDelete|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2624
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2625
            className := tuple at:1.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2626
            selector  := tuple at:2.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2627
            changeType  := tuple at:3.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2628
            lastToDelete := (tuple at:4) - overAllNumDeletedBefore.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2629
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2630
            changeType == #methodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2631
                numDeletedBefore := self
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2632
                                       silentDeleteMethodCategoryChangesFor:className selector:selector
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2633
                                       from:1 to:lastToDelete.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2634
            ] ifFalse:[    
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2635
                numDeletedBefore := self
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2636
                                       silentDeleteChangesFor:className selector:selector
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2637
                                       from:1 to:lastToDelete.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2638
            ].
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2639
            lastChangeNr := lastChangeNr - numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2640
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2641
        ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2642
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2643
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2644
    self updateChangeList.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2645
    self autoSelectOrEnd:lastChangeNr
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2646
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2647
    "Modified: / 25-07-2017 / 10:57:31 / cg"
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2648
    "Modified: / 20-06-2018 / 15:33:40 / Claus Gittinger"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2649
!
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2650
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2651
doDeleteFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2652
    "delete all changes from 1 to the current"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2653
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2654
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2655
	self deleteChangesFrom:1 to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2656
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2657
	self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2658
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2659
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2660
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2661
doDeleteRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2662
    "delete all changes from current to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2663
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2664
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2665
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2666
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2667
	self autoSelectOrEnd:changeNr-1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2668
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2669
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2670
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2671
doFileoutAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2672
    "first fileOut the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2673
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2674
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2675
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2676
	| className class |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2677
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2678
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2679
	className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2680
	    class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2681
	    class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2682
		Class fileOutErrorSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2683
		    self warn:('fileout failed: ' , ex description).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2684
		] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2685
		    class fileOut.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2686
		    self doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2687
		].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2688
	    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2689
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2690
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2691
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2692
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2693
    "Modified: 6.9.1995 / 17:11:16 / claus"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2694
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2695
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2696
doMakePatch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2697
    "user wants a change to be made a patch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2698
     - copy it over to the patches file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2699
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2700
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2701
	self makeChangeAPatch:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2702
	self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2703
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2704
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2705
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2706
doMakePermanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2707
    "user wants a change to be made permanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2708
     - rewrite the source file where this change has to go"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2709
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2710
    |yesNoBox|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2711
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2712
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2713
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2714
    yesNoBox := YesNoBox new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2715
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2716
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2717
    yesNoBox okAction:[   |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2718
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2719
                          changeNr := self theSingleSelection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2720
                          changeNr notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2721
                              self makeChangePermanent:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2722
                              self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2723
                          ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2724
                      ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2725
    yesNoBox showAtPointer.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2726
    yesNoBox destroy
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2727
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2728
    "Modified: 7.1.1997 / 23:03:33 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2729
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2730
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2731
doSave
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2732
    "user wants a change to be appended to a file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2733
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2734
    |fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2735
13651
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2736
    fileName := Dialog
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2737
                    requestFileNameForSave:(resources string:'Append change to:')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2738
                    default:(lastSaveFileName ? '')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2739
                    ok:(resources string:'Append')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2740
                    abort:(resources string:'Abort')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2741
                    pattern:'*.chg'.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2742
    fileName isEmptyOrNil ifTrue:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2743
        ^ self
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2744
    ].
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2745
    lastSaveFileName := fileName.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2746
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2747
    self withWriteCursorDo:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2748
        self withSelectedChangesDo:[:changeNr |
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2749
            self appendChange:changeNr toFile:fileName.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2750
            self autoSelect:(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
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2754
    "Modified: / 27-07-2012 / 09:46:14 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2755
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2756
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2757
doSaveClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2758
    "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
  2759
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2760
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2761
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2762
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2763
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2764
doSaveClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2765
    "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
  2766
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2767
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2768
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2769
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2770
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2771
doSaveClassFrom:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2772
    "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
  2773
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2774
    |changeNr classNameToSave|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2775
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2776
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2777
    classNameToSave := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2778
    classNameToSave notNil ifTrue:[
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2779
        self saveClass:classNameToSave from:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2780
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2781
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2782
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2783
doSaveClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2784
    "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
  2785
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2786
    |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2787
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2788
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2789
    self doSaveClassFrom:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2790
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2791
    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2792
    "/ self changeSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2793
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2794
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2795
doSaveRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2796
    "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
  2797
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2798
    |changeNr fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2799
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2800
    (changeNr := self theSingleSelection) isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2801
        ^ self information:(resources string:'Only possible if a single change is selected.').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2802
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2803
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2804
    fileName := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2805
                    requestFileNameForSave:(resources string:'Append changes to:')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2806
                    default:(lastSaveFileName ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2807
                    ok:(resources string:'Append')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2808
                    abort:(resources string:'Abort')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2809
                    pattern:'*.chg'.
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
    fileName notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2812
        lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2813
        self withWriteCursorDo:[
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2814
            changeNr to:(self numberOfChanges) do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2815
                changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2816
                (self appendChange:changeNr toFile:fileName) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2817
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2818
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2819
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2820
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2821
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2822
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2823
    "Modified: / 27-07-2012 / 09:46:09 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2824
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2825
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2826
doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2827
    "reread the changes-file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2828
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2829
    self readChangesFileInBackground:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2830
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2831
    realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2832
        self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2833
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2834
!
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
doWriteBack
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2837
    "write back the list onto the changes file"
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
    anyChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2840
        (self writeBackChanges) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2841
            realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2842
                self readChangesFile.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2843
                realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2844
                    self updateChangeList
11499
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
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2848
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2849
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2850
    "Modified: 5.9.1996 / 17:19:46 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2851
!
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
findClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2854
    "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
  2855
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2856
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2857
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2858
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2859
        current := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2860
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2861
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2862
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2863
        askForSearch:'Class to search for:'
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2864
        initialAnswer:(current ? lastSearchString)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2865
        thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2866
                            |thisClassName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2867
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2868
                            thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2869
                            thisClassName notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2870
                            and:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2871
                                (thisClassName sameAs: searchString)
13440
3414d47da4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13373
diff changeset
  2872
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName caseSensitive:false]]]
11499
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
        onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2875
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2876
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2877
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  2878
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2879
    "Modified: / 12-02-2017 / 11:31:47 / cg"
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2882
findFirstForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2883
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2884
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2885
    self findNextForClassStartingAt:1
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
    "Created: / 20-11-2006 / 16:37:56 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2888
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2889
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2890
findFirstForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2891
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2892
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2893
    self findNextForClass:className startingAt:1
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2894
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2895
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2896
findLastForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2897
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2898
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2899
    self findPreviousForClassStartingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2900
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2901
    "Created: / 20-11-2006 / 16:39:15 / cg"
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
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2904
findLastForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2905
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2906
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2907
    self findPreviousForClass:className startingAt:(self numberOfChanges)
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2908
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2909
    "Created: / 20-11-2006 / 16:39:15 / cg"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2910
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2911
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2912
findLastSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2913
    "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
  2914
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2915
    "/ lastSearchType := #snapshot.
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
    self 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2918
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2919
        startingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2920
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2921
    "Created: / 06-10-2006 / 11:03:39 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2922
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2923
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2924
findNext
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2925
    "findNext menu action: select the next change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2926
     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
  2927
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2928
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2929
	^ self findNextForSelector
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
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2932
	^ self findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2933
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2934
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2935
	^ self findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2936
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2937
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2938
	^ self findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2939
    ].
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
    ^ self findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2942
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2943
    "Created: / 18.6.1998 / 22:15:00 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2944
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2945
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2946
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2947
findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2948
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2949
    changeNrShown isNil ifTrue:[^ self].
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
    self findNextForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2952
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2953
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2954
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2955
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2956
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2957
		true
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
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2960
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2961
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2962
findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2963
    "findNextForClass menu action: select the next change for the selected changes class"
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
    self findNextForClassStartingAt: changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2966
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2967
    "Modified: / 20-11-2006 / 16:37:49 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2968
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2969
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2970
findNextForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2971
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2972
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2973
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2974
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2975
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2976
        findNextForWhich:[:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2977
                |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2978
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2979
                thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2980
                (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2981
                or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2982
                    and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2983
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2984
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2985
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2986
findNextForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2987
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2988
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2989
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2990
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2991
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2992
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2993
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2994
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2995
    cls isNil ifTrue:[^ self].
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2996
    self findNextForClass:cls startingAt:startNr.
11499
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
    "Created: / 20-11-2006 / 16:37:37 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3001
findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3002
    "findNextForSelector menu action: select the next change for the selected changes selector"
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
    |sel|
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
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3007
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3008
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3009
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3010
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3011
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3012
    self findNextForWhich: [:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3013
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3014
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3015
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3016
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3017
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3018
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3021
findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3022
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3023
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3024
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3025
    self findNextWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3026
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3027
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3028
findNextForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3029
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3030
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3031
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3032
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3033
    "Modified: / 20-11-2006 / 16:34:23 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3034
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3035
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3036
findNextForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3037
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3038
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3039
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3040
        findNextOrPrevious:#next 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3041
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3042
        startingAt:changeNrToStartSearch
11499
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
    "Created: / 20-11-2006 / 16:34:06 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3045
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3046
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3047
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3048
    "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
  3049
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3050
    self withCursor:Cursor questionMark do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3051
        Object userInterruptSignal handle:[:ex |
17941
10c46b4dbc59 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17924
diff changeset
  3052
            self beepInEditor.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3053
            ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3054
        ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3055
            |increment nr lastNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3056
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3057
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3058
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3059
            nr := changeNrToStartSearch.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3060
            [ (direction == #previous and:[nr >= 1])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3061
              or:[ direction == #next and:[ nr <= lastNr]] 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3062
            ] whileTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3063
                (aBlock value:nr) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3064
                    self selectChange:nr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3065
                    ^ nr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3066
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3067
                nr := nr + increment.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3068
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3069
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3070
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3071
    self showNotFound.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3072
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3073
    ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3074
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3075
    "Created: / 08-03-2012 / 11:57:26 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3078
findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3079
    "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
  3080
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3081
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3082
    changeNrShown isNil ifTrue:[^ self].
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
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3085
!
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
findNextWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3088
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3089
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3090
    lastSearchType := #string.
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
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3093
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3094
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3095
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3096
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3097
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3098
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3099
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3100
    self findNextForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3101
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3102
            |s|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3103
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3104
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3105
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3106
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3107
                or:[ includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3108
        ].
11499
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
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3111
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3112
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3113
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3114
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3115
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3116
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3117
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3118
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3119
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3120
findPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3121
    "findPrevious menu action: select the previous change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3122
     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
  3123
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3124
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3125
	^ self findPreviousForSelector
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
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3128
	^ self findPreviousSnapshot
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
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3131
	^ self findPreviousForString
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
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3134
	^ self findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3135
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3136
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3137
    ^ self findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3138
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3139
    "Created: / 18.6.1998 / 22:15:15 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3140
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3141
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3142
findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3143
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3144
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3145
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3146
    self findPreviousForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3147
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3148
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3149
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3150
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3151
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3152
		true
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
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3155
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3156
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3157
findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3158
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3159
12738
fcad7d2eec44 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12704
diff changeset
  3160
    self findPreviousForClassStartingAt:((changeNrShown ? 1) - 1)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3161
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3162
    "Modified: / 20-11-2006 / 16:39:04 / cg"
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
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3165
findPreviousForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3166
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3167
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3168
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3169
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3170
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3171
        findPreviousForWhich:
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3172
            [:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3173
                    |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3174
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3175
                    thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3176
                    (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3177
                    or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3178
                        and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3179
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3180
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3181
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3182
findPreviousForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3183
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3184
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3185
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3186
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3187
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3188
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3189
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3190
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3191
    cls isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3192
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3193
    self findPreviousForClass:cls startingAt:startNr
11499
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
    "Created: / 20-11-2006 / 16:38:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3196
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3197
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3198
findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3199
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3200
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3201
    |sel|
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
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3204
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3205
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3206
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3207
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3208
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3209
    self findPreviousForWhich:
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3210
	[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3211
		|thisSelector|
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
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3214
		(thisSelector = sel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3215
		or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3216
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3217
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
findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3221
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3222
	^ self findString
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
    self findPreviousWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3225
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3226
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3227
findPreviousForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3228
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3229
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3230
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3231
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3232
    "Modified: / 06-10-2006 / 11:01:38 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3233
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3234
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3235
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3236
    "helper: select the previous change for which aBlock evaluates to true"
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
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3239
        findNextOrPrevious:#previous 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3240
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3241
        startingAt:changeNrToStartSearch
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3242
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3243
    "Created: / 06-10-2006 / 11:01:09 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3246
findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3247
    "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
  3248
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3249
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3250
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3251
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3252
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3253
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3254
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3255
findPreviousWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3256
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3257
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3258
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3259
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3260
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3261
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3262
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3263
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3264
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3265
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3266
    includesMatchCharacters := searchString includesMatchCharacters.
11499
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
    self findPreviousForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3269
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3270
            |s |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3271
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3272
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3273
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3274
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3275
                or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3276
        ].
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
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
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
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3281
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3282
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3283
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3284
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3285
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3286
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3287
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3288
findSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3289
    "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
  3290
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3291
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3292
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3293
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3294
	current := self selectorOfMethodChange:changeNrShown.
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3297
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3298
	askForSearch:'Selector to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3299
	initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3300
	thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3301
			    |thisSelector|
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
			    thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3304
			    (thisSelector = searchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3305
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
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
	onCancel:[^ self].
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
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3310
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3311
!
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
findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3314
    |searchString directionHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3315
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3316
    lastSearchType := #string.
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
    searchString := codeView selection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3319
    searchString size == 0 ifTrue:[searchString := lastSearchString].
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
    searchString := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3322
	askForSearchString:'String to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3323
	initialAnswer:(searchString ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3324
	directionInto:(directionHolder := ValueHolder new).
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
    searchString size == 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3327
	^ self
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3330
    directionHolder value == #backward ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3331
	self findPreviousWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3332
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3333
	self findNextWithString:searchString.
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
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3336
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3337
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3338
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3339
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3340
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3341
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3342
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3343
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  3344
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3345
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3346
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3347
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3348
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3349
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3350
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3351
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3352
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3353
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3354
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3355
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3356
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3357
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3358
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3359
openSettingsDialog
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3360
    |settingsList|
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3361
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3362
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3363
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3364
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3365
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3366
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3367
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3368
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3369
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3370
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3371
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3372
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3373
    SettingsDialog 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3374
        openWithList:settingsList 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3375
        label:(resources string:'Change Browser Settings').
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3376
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3377
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3378
setEnforcedNameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3379
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3380
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3381
    listOfKnownNameSpaces := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3382
    NameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3383
        allNameSpaces
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3384
            do:[:eachNameSpace |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3385
                listOfKnownNameSpaces add:eachNameSpace name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3386
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3387
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3388
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3389
    Dialog modifyingBoxWith:[:box |
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3390
        keepAsDefaultHolder := true asValue.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3391
        box verticalPanel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3392
            add:((CheckBox 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3393
                    label:(resources string:'Use this as default in the future')) 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3394
                    model:keepAsDefaultHolder).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3395
    ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3396
        nsName := Dialog
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3397
                request:(resources string:'When applying, new classes are created in nameSpace:')
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3398
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3399
                list:listOfKnownNameSpaces.
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
    nsName isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3402
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3403
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3404
        applyInOriginalNameSpace value:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3405
        LastEnforcedNameSpace := enforcedNameSpace := nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3406
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3407
        applyInOriginalNameSpace value:false.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3408
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3409
        autoCompare value ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3410
            self doUpdate
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
    KeepEnforcedNameSpace := keepAsDefaultHolder value.
11680
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3414
    codeView nameSpaceForDoits:enforcedNameSpace.
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3415
    diffView textViews do:[:each | each nameSpaceForDoits:enforcedNameSpace].
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3416
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3417
    "Modified: / 26-07-2012 / 23:06:23 / cg"
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3420
setEnforcedPackage
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3421
    |pkg listOfKnownPackages|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3422
16207
2a88932c5bbf #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16092
diff changeset
  3423
    listOfKnownPackages := Smalltalk allPackageIDs.
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3424
"/    Smalltalk allClassesDo:[:eachClass |
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3425
"/                                |package|
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3426
"/
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3427
"/                                package := eachClass package.
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3428
"/                                package size > 0 ifTrue:[
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3429
"/                                    listOfKnownPackages add:package
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3430
"/                                ]
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3431
"/                           ].
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3432
    listOfKnownPackages := listOfKnownPackages asNewOrderedCollection sort.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3433
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3434
    pkg := Dialog
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3435
                request:'When applying, changes go into package:'
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3436
                initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3437
                list:listOfKnownPackages.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3438
    pkg size ~~ 0 ifTrue:[
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3439
        enforcedPackage := pkg
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3440
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3441
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3442
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3443
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3444
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3445
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3446
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3447
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3448
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3449
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3450
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3451
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3452
    self class autoSelectNext ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3453
        (changeNr <= self numberOfChanges) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3454
            self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3455
            ^ self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3456
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3457
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3458
    self clearCodeView.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3459
    self unselect.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3460
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3461
    "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
  3462
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3463
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3464
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3465
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3466
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3467
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3468
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3469
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3470
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3471
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3472
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3473
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3474
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3475
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3476
    changeNr < last ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3477
        self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3478
    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3479
        last == 0 ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3480
            last := nil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3481
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3482
        self selectChange:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3483
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3484
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  3485
    "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
  3486
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3487
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3488
changeChunkAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3489
    ^ (changeInfoList at:index) chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3490
    "/ ^ changeChunks at:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3491
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3492
    "Created: / 01-05-2016 / 18:24:28 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3493
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3494
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3495
changeClassNameAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3496
    ^ (changeInfoList at:index) className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3497
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3498
    "Created: / 01-05-2016 / 18:28:13 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3499
    "Modified: / 01-05-2016 / 19:32:42 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3500
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3501
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3502
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3503
    "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
  3504
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3505
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3506
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3507
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3508
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3509
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3510
    ].
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3511
    (classesNotToBeAutoloaded includes:#all) ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3512
        ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3513
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3514
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3515
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3516
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3517
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3518
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3519
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3520
    ] ifFalse:[
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3521
        answer := Dialog 
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3522
                confirmWithCancel:(resources
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3523
                    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
  3524
                    with:cls name allBold)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3525
                labels:(resources array:#('Cancel' 'No for All' 'No' 'Yes'))
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3526
                values:#(nil #never false true)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3527
                default:4.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3528
        answer isNil ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3529
            "cancel the operation"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3530
            AbortAllOperationRequest raise.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3531
            "not reached"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3532
        ].
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3533
        answer == #never ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3534
            classesNotToBeAutoloaded add:#all.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3535
            ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3536
        ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3537
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3538
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3539
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3540
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3541
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3542
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3543
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3544
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3545
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3546
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3547
    ^ false.
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3548
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3549
    "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
  3550
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3551
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3552
checkSingleSelectedChange
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3553
    "just a helper, check for a single selection"
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3554
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3555
    |changeNr|
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3556
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3557
    (changeNr := self theSingleSelection) isNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3558
        self information:'Only possible if a single change is selected.'.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3559
        AbortSignal raise.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3560
        ^ nil.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3561
    ].
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3562
    ^ changeNr
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3563
!
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3564
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3565
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3566
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3567
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3568
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3569
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3570
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3571
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3572
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3573
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3574
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3575
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3576
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3577
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3578
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3579
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3580
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3581
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3582
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3583
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3584
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3585
currentSourceForParseTree:parseTree
12845
c8300977f648 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 12825
diff changeset
  3586
    |selector thisClass method mClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3587
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3588
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3589
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3590
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3591
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3592
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3593
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3594
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3595
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3596
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3597
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3598
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3599
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3600
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3601
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3602
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3603
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3604
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3605
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3606
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3607
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3608
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3609
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3610
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3611
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3612
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3613
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3614
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3615
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3616
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3617
            ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3618
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3619
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3620
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3621
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3622
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3623
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3624
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3625
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3626
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3627
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3628
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3629
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3630
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3631
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3632
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3633
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3634
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3635
                    classGlobalNode := classGlobalNode receiver
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3636
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3637
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3638
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3639
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3640
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3641
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3642
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3643
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3644
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3645
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3646
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3647
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3648
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3649
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3650
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3651
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3652
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3653
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3654
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3655
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3656
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3657
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3658
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3659
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3660
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3661
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3662
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3663
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3664
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3665
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3666
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3667
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3668
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3669
                    ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3670
                        ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3671
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3672
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3673
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3674
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3675
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3676
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3677
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3678
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3679
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3680
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3681
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3682
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3683
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3684
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3685
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3686
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3687
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3688
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3689
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3690
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3691
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3692
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3693
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3694
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3695
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3696
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3697
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3698
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3699
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3700
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3701
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
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
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3704
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3705
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3706
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3707
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3708
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3709
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3710
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3711
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3712
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3713
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3714
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3715
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3716
            ownerClass isNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3717
                ^ 'Cannot compare this change\\(owning class is not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3718
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3719
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3720
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3721
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
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
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3724
            thisClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3725
                ^ 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3726
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3727
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3728
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3729
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3730
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3731
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3732
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  3733
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3734
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3735
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3736
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3737
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3738
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3739
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3740
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3741
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3742
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3743
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3744
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3745
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3746
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3747
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3748
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3749
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3750
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3751
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3752
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3753
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3754
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3755
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3756
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3757
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3758
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3759
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3760
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3761
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3762
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3763
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3764
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3765
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3766
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3767
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3768
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3769
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3770
parseExpression:chunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3771
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3772
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3773
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3774
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3775
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3776
parseExpression:text inNameSpace:nameSpace
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3777
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3778
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3779
    |parser parseTree|
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3780
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3781
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3782
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3783
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3784
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  3785
    (text includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3786
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3787
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3788
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3789
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3790
    parser := Parser for:(ReadStream on:text).
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3791
    parser parserFlags 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3792
        allowQualifiedNames:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3793
        allowDollarInIdentifier:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3794
        allowParagraphInIdentifier:true.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3795
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3796
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3797
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3798
    ] do:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3799
        parseTree := parser 
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3800
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3801
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3802
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3803
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3804
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3805
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3806
    ^ parseTree
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3807
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3808
    "Modified: / 21-11-2016 / 23:25:48 / cg"
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3809
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3810
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3811
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3812
    "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
  3813
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3814
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3815
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3816
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3817
selectChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3818
    changeListView setSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3819
    self changeSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3820
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3821
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3822
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3823
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3824
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3825
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3826
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3827
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3828
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3829
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3830
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3831
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3832
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3833
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3834
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3835
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3836
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3837
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3838
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3839
setChangeList
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3840
    <resource: #obsolete>
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3841
    "update the selection-list;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3842
     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
  3843
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3844
    self updateChangeList
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3845
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3846
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3847
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3848
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3849
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3850
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3851
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3852
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3853
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3854
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3855
showNumberOfChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3856
    infoHolder value:(resources string:'%1 changes.' with:changeInfoList size).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3857
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3858
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3859
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3860
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3861
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3862
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3863
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3864
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3865
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3866
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3867
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3868
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3869
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3870
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3871
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3872
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3873
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3874
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3875
timeStampPrintStringOf:ts
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3876
    ^ ts printString
17838
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3877
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3878
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3879
     self basicNew timeStampPrintStringOf:(Timestamp now)
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3880
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3881
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3882
    "Modified (format): / 05-12-2017 / 15:08:48 / cg"
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3883
!
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3884
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3885
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3886
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3887
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3888
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3889
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3890
    "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
  3891
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3892
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3893
updateChangeList
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3894
    "update the selection-list;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3895
     called after the changeList has been modified"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3896
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3897
    |headerList|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3898
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3899
    headerList := changeInfoList collect:[:info | info headerLine].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3900
    changeListView setList:headerList expandTabs:false redraw:false.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3901
    changeListView invalidate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3902
    self showNumberOfChanges.
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
    "/ changeListView deselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3905
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3906
    "Modified: / 01-05-2016 / 19:27:35 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3907
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3908
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3909
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3910
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3911
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3912
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3913
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3914
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3915
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3916
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3917
    "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
  3918
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3919
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3920
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3921
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3922
    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
  3923
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3924
    "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
  3925
     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
  3926
    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
  3927
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3928
    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
  3929
        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
  3930
            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
  3931
                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
  3932
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3933
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3934
    ] 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
  3935
        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
  3936
            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
  3937
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3938
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3939
                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
  3940
                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
  3941
                    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
  3942
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3943
                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
  3944
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  3945
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3946
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3947
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3948
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3949
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3950
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3951
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3952
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3953
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3954
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3955
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3956
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3957
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3958
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3959
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3960
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3961
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3962
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3963
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  3964
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3965
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3966
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3967
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3968
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3969
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3970
    "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
  3971
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3972
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3973
    ^ (changeInfoList at:changeNr) isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3974
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3975
    "Created: / 06-02-1998 / 13:03:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3976
    "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
  3977
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3978
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3979
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3980
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3981
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3982
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3983
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3984
    (self classNameOfChange:changeNr) isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3985
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3986
         get the chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3987
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3988
        chunk := self changeChunkAt:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3989
        "mhmh - empty ??"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3990
        chunk notNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3991
            (chunk startsWith:'''---') ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3992
                words := chunk asCollectionOfWords.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3993
                words size > 2 ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3994
                    (words at:2) = 'snapshot' ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3995
                        ^ true
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3996
                    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3997
                ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3998
            ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3999
        ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4000
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4001
    ^ false
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4002
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4003
    "Modified: / 01-05-2016 / 18:25:25 / cg"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4004
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4005
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4006
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4007
    "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
  4008
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4009
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4010
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4011
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4012
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4013
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4014
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4015
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4016
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4017
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4018
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4019
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4020
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4021
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4022
            recTree := recTree receiver
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4023
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4024
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4025
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4026
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4027
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4028
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4029
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4030
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4031
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4032
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4033
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4034
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4035
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4036
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4037
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4038
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4039
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4040
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4041
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4042
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4043
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4044
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4045
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4046
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4047
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4048
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4049
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4050
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4051
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4052
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4053
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4054
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4055
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4056
    sel := fullParseTree selector.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4057
    arg1Tree := fullParseTree arg1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4058
    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4059
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4060
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4061
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4062
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4063
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4064
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4065
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4066
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4067
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4068
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4069
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4070
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4071
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4072
    "Created: / 08-03-2012 / 09:34:04 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4073
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4074
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4075
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4076
    "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
  4077
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4078
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4079
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4080
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4081
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4082
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4083
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4084
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4085
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4086
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4087
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4088
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4089
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4090
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4091
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4092
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4093
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4094
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4095
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4096
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4097
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4098
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4099
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4100
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4101
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4102
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4103
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4104
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4105
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4106
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4107
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4108
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4109
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4110
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4111
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4112
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4113
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4114
    |recTree arg1Tree|
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 := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4117
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4118
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4119
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4120
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4121
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4122
        arg1Tree := aParseTree arg1.
13663
497ca003a6dc class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13651
diff changeset
  4123
        (arg1Tree notNil and:[arg1Tree isVariable]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4124
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4125
        ].
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
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4128
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4129
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4130
    "Created: / 08-03-2012 / 09:36:59 / cg"
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
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4133
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4134
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4135
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4136
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4137
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4138
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4139
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4140
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4141
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4142
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4143
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4144
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4145
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4146
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4147
            arg2Tree := aParseTree arg2.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4148
            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4149
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4150
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4151
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4152
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4153
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4154
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4155
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4156
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4157
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4158
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4159
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4160
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4161
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4162
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4163
     (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
  4164
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4165
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4166
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4167
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4168
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4169
    (name endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4170
        name := name copyButLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4171
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4172
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4173
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4174
    "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
  4175
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4176
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4177
extractSelectorOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4178
    "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
  4179
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4180
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4181
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4182
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4183
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4184
        (self classNameOfChange:changeNr) notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4185
            chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4186
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4187
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4188
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4189
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4190
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4191
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4192
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4193
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4194
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4195
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4196
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4197
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4198
                sel := aParseTree arguments at:1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4199
                sel isLiteral ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4200
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4201
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4202
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4203
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4204
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4205
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4206
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4207
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4208
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4209
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4210
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4211
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4212
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4213
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4214
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4215
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4216
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4217
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4218
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4219
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4220
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4221
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4222
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4223
    "Created: / 24-11-1995 / 14:30:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4224
    "Modified: / 01-05-2016 / 18:25:39 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4225
    "Modified (comment): / 13-02-2017 / 19:57:20 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4226
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4227
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4228
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4229
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4230
     (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
  4231
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4232
    |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
  4233
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4234
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4235
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4236
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4237
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4238
    name := self changeClassNameAt:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4239
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4240
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4241
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4242
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4243
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4244
    prevMethodDefNr := changeNr.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4245
    [ (changeInfoList at:prevMethodDefNr) isFollowupChange ] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4246
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4247
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4248
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4249
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4250
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4251
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4252
    chunk := self changeChunkAt:prevMethodDefNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4253
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4254
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4255
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4256
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4257
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4258
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4259
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4260
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4261
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4262
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4263
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4264
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4265
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4266
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4267
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4268
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4269
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4270
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4271
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
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4274
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4275
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4276
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4277
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4278
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4279
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4280
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4281
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4282
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4283
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4284
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4285
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4286
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4287
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4288
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  4289
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4290
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4291
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4292
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4293
        ^ 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
  4294
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4295
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4296
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4297
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4298
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4299
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4300
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4301
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4302
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4303
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4304
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4305
     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
  4306
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4307
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4308
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4309
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4310
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4311
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4312
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4313
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4314
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4315
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4316
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4317
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4318
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4319
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4320
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4321
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4322
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  4323
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4324
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4325
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  4326
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4327
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4328
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4329
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4330
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4331
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4332
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4333
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4334
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4335
     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
  4336
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4337
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  4338
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4339
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4340
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4341
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4342
    ].
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
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4345
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4346
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4347
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4348
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4349
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4350
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
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4353
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4354
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4355
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4356
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4357
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4358
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4359
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4360
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4361
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4362
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4363
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4364
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4365
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4366
    "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
  4367
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4368
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4369
namespaceOfChange:changeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4370
    "return the namespace of a change or nil"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4371
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4372
    |className namespace idx|
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4373
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4374
    className := self classNameOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4375
    className isNil ifTrue:[ ^ nil ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4376
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4377
    idx := className indexOfSubCollection:'::'.
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4378
    idx == 0 ifTrue:[ ^ nil ].
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4379
    namespace := className copyTo:idx-1.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4380
    ^  namespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4381
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4382
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4383
numberOfChanges
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4384
    ^ changeInfoList size
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4385
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4386
    "Created: / 03-12-1995 / 18:15:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4387
    "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
  4388
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4389
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4390
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4391
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4392
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4393
     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
  4394
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  4395
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4396
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4397
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4398
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4399
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4400
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4401
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4402
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4403
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4404
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4405
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4406
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4407
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4408
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4409
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4410
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4411
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4412
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4413
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4414
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4415
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4416
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4417
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4418
"/        ].
13851
6a1a69cacb7b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
  4419
"/        ^ name copyButLast:6
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4420
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4421
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4422
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4423
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4424
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4425
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4426
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4427
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4428
     - 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
  4429
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4430
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4431
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4432
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4433
    name := self changeClassNameAt:changeNr.
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4434
    name isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4435
        name := self fullClassNameOfChange:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4436
        name isNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4437
            (changeInfoList at:changeNr) className:#nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4438
        ].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4439
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4440
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4441
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4442
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4443
    "Created: / 05-11-2001 / 18:09:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4444
    "Modified: / 01-05-2016 / 19:24:53 / cg"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4445
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4446
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4447
selectorOfMethodCategoryChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4448
    "return a methodCategory-change's selector, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4449
     or nil if it's not a methodCategoryChange"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4450
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4451
    (changeInfoList at:changeNr) isMethodCategoryChange ifFalse:[^ nil].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4452
    ^ (changeInfoList at:changeNr) selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4453
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4454
    "Modified: / 01-05-2016 / 19:26:21 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4455
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4456
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4457
selectorOfMethodChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4458
    "return a method-change's selector, 
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4459
     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
  4460
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4461
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4462
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4463
    changeInfoList size >= changeNr ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4464
        (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[^ nil].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4465
        sel := (changeInfoList at:changeNr) selector.
15652
788f4c9d0b07 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15450
diff changeset
  4466
        sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4467
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4468
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4469
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4470
    sel notNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4471
        self assert:(changeInfoList at:changeNr) isMethodCategoryChange not.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4472
        (changeInfoList at:changeNr) selector:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4473
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4474
    ^ sel
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4475
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4476
    "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
  4477
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4478
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4479
sourceOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4480
    "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
  4481
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4482
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4483
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4484
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4485
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4486
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4487
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4488
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4489
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4490
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4491
        chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4492
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4493
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4494
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4495
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4496
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4497
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4498
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4499
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4500
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4501
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4502
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4503
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4504
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4505
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4506
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4507
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4508
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4509
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4510
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4511
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4512
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4513
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4514
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4515
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4516
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4517
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4518
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4519
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4520
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4521
    "Created: / 05-09-1996 / 17:11:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4522
    "Modified: / 01-05-2016 / 18:25:53 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4523
    "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
  4524
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4525
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4526
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4527
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4528
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4529
    |aStream encoding|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4530
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4531
    (changeNr between:1 and:changeInfoList size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4532
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4533
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4534
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4535
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4536
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4537
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4538
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4539
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4540
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4541
        aStream := EncodedStream stream:aStream encoding:encodingIfKnown.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4542
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4543
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4544
    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
  4545
    ^ aStream
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4546
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4547
    "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
  4548
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4549
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4550
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4551
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4552
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4553
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4554
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4555
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4556
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4557
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4558
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4559
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4560
    "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
  4561
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4562
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4563
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4564
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4565
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4566
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4567
    (info := f info) isNil ifTrue:[
16092
mawalch
parents: 16022
diff changeset
  4568
        self newLabel:'(unaccessible)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4569
    ] ifFalse:[
16092
mawalch
parents: 16022
diff changeset
  4570
        (info modificationTime) > changeFileTimestamp ifTrue:[
mawalch
parents: 16022
diff changeset
  4571
            self newLabel:'(outdated)'.
mawalch
parents: 16022
diff changeset
  4572
            autoUpdate value ifTrue:[
mawalch
parents: 16022
diff changeset
  4573
                self doUpdate
mawalch
parents: 16022
diff changeset
  4574
            ]
mawalch
parents: 16022
diff changeset
  4575
        ] ifFalse:[
mawalch
parents: 16022
diff changeset
  4576
            self newLabel:''
mawalch
parents: 16022
diff changeset
  4577
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4578
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4579
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4580
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4581
    "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
  4582
    "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
  4583
    "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
  4584
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4585
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4586
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4587
    "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
  4588
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4589
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4590
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4591
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4592
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4593
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4594
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4595
    "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
  4596
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4597
     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
  4598
     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
  4599
        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
  4600
                '+' -> 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
  4601
                '-' -> 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
  4602
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4603
                '=' -> 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
  4604
                '~' -> 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
  4605
        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
  4606
        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
  4607
                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
  4608
                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
  4609
                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
  4610
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4611
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4612
     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
  4613
     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
  4614
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4615
    |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
  4616
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4617
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  4618
    askedForEditingClassSource := false.
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4619
    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
  4620
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4621
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4622
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4623
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4624
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4625
    (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
  4626
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4627
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4628
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4629
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  4630
    f exists ifFalse:[^ self].
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4631
    inStream := EncodedStream decodedStreamFor:(f readStream).
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  4632
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4633
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  4634
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  4635
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4636
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4637
    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
  4638
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4639
         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
  4640
         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
  4641
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4642
        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
  4643
            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
  4644
            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
  4645
            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
  4646
            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
  4647
        ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4648
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4649
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4650
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4651
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4652
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  4653
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4654
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4655
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4656
            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
  4657
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4658
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4659
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4660
            reader noColoring:(NoColoring == true).
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4661
            
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4662
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4663
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4664
            editingClassSource := reader thisIsAClassSource.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4665
            changeInfoList := reader changeInfo.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4666
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4667
            self showNumberOfChanges.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4668
            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
  4669
        ] 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
  4670
            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
  4671
            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
  4672
                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
  4673
                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
  4674
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4675
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4676
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4677
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4678
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4679
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4680
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4681
    "Modified: / 01-05-2016 / 19:13:09 / cg"
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4682
    "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
  4683
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4684
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4685
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4686
    "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
  4687
     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
  4688
     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
  4689
     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
  4690
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4691
     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
  4692
     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
  4693
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4694
    |inFilename inStream outStream stamp encoding tempFilename|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4695
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4696
    editingClassSource ifTrue:[
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4697
        (self confirm:'You are editing a classes sourceFile (not a changeFile) !!\\Are you certain, you want to overwrite it ?' withCRs)
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4698
        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
  4699
            ^ 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
  4700
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4701
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4702
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4703
    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
  4704
    [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4705
        inStream := inFilename readStream.
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4706
    ] on:FileStream openErrorSignal do:[:ex|
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4707
        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
  4708
        ^ 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
  4709
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4710
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4711
        [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4712
            outStream := FileStream newTemporaryIn:inFilename directory.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4713
            tempFilename := outStream fileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4714
        ] on:FileStream openErrorSignal do:[:ex|
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4715
            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
  4716
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4717
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4718
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4719
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4720
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4721
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4722
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4723
        encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4724
            inStream := EncodedStream stream:inStream encoding:encoding.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4725
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4726
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  4727
        self withWriteCursorDo:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4728
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4729
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4730
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4731
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4732
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4733
                outStream close.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4734
                tempFilename remove.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4735
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4736
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4737
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4738
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4739
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4740
                1 to:nChanges do:[:index |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4741
                    inStream position:((changeInfoList at:index) position)-1.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4742
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4743
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4744
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4745
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4746
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4747
                        (stamp := (changeInfoList at:index) timestamp) notNil ifTrue:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4748
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4749
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4750
                        ].
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
  4751
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4752
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4753
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4754
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4755
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4756
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4757
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4758
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4759
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4760
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4761
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4762
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4763
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4764
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4765
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4766
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4767
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4768
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4769
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4770
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4771
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4772
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4773
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4774
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4775
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4776
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4777
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4778
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4779
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4780
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4781
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4782
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4783
                    ]
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
  4784
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4785
                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
  4786
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4787
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4788
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4789
            inFilename renameTo:inFilename asBackupFilename.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4790
            tempFilename renameTo:changeFileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4791
            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
  4792
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4793
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4794
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4795
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4796
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4797
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4798
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4799
    "Modified: / 01-05-2016 / 19:30:34 / cg"
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4800
    "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
  4801
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4802
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4803
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4804
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4805
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4806
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4807
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4808
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4809
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4810
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4811
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4812
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4813
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4814
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4815
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4816
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4817
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4818
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4819
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4820
        sawExcla := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4821
        chunk := self changeChunkAt:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4822
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4823
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4824
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4825
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4826
    chunk withoutSeparators isEmpty ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  4827
        self proceedableError:'Empty chunk - should not happen'.
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4828
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4829
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4830
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4831
    fileName := aFileNameOrFileNameString asFilename.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4832
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4833
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4834
        outStream := fileName readWriteStream.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4835
    ] on:FileStream openErrorSignal do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4836
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4837
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4838
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4839
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4840
    outStream fileSize = 0 ifTrue:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4841
        encoding := #utf8.
15090
27f730f4fd5b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15087
diff changeset
  4842
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4843
    ] ifFalse:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4844
        encoding := CharacterEncoder guessEncodingOfStream:outStream.
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4845
    ].
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4846
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4847
    encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4848
        outStream := EncodedStream stream:outStream encoding:encoding.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4849
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4850
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4851
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4852
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4853
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4854
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4855
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4856
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4857
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4858
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4859
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4860
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4861
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4862
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4863
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4864
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4865
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4866
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4867
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4868
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4869
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4870
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4871
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4872
    "Modified: / 01-05-2016 / 18:25:00 / cg"
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  4873
    "Modified: / 24-05-2018 / 14:54:56 / Claus Gittinger"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4874
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4875
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4876
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
  4877
    "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
  4878
     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
  4879
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4880
    |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
  4881
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4882
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4883
    aStream := self streamForChange:changeNr.
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4884
    aStream isNil ifTrue:[^ false].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4885
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4886
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  4887
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4888
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4889
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4890
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4891
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4892
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  4893
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4894
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4895
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4896
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4897
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4898
            "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
  4899
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4900
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  4901
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4902
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4903
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  4904
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  4905
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  4906
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4907
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4908
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4909
            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
  4910
                "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
  4911
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4912
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4913
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4914
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4915
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4916
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4917
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4918
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4919
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4920
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4921
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4922
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4923
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4924
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4925
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4926
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4927
                            ] do:[
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4928
                                |skip|
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4929
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4930
                                skip := false.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4931
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4932
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4933
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4934
                                    methodsForChunk := self changeChunkAt:changeNr.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4935
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4936
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4937
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4938
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4939
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4940
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4941
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4942
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4943
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4944
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  4945
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4946
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4947
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4948
                                        orgClassName := className.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4949
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4950
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4951
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4952
                                            (ownerName endsWith:$:) ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4953
                                                ownerName := ownerName copyButLast:1.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4954
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4955
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4956
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4957
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4958
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4959
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4960
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4961
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4962
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4963
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4964
                                        changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4965
                                            changeClass := Smalltalk at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4966
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4967
                                        [changeClass isNil] whileTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4968
                                            (NameSpace allNameSpaces
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  4969
                                                contains:[:ns | (nsClass := (ns at:className asSymbol)) notNil])
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4970
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4971
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4972
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4973
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4974
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4975
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4976
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4977
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4978
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4979
                                            skip := false.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4980
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4981
                                            Dialog modifyingBoxWith:[:box |
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  4982
                                                "/ self halt.
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4983
                                                box 
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4984
                                                    addButton:(Button label:'Skip' action:[skip := true. box hide])
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4985
                                                    after:box noButton
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4986
                                            ] do:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4987
                                                className := Dialog
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  4988
                                                            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
  4989
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  4990
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4991
                                            skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4992
                                                className isNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4993
                                                    AbortAllOperationRequest raise.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4994
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4995
                                                className isEmpty ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4996
                                                    ^ false
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4997
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4998
                                                alternativeClass := Smalltalk classNamed:className.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  4999
                                                alternativeClass notNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5000
                                                    changeClass := alternativeClass
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5001
                                                ]
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5002
                                            ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5003
                                        ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5004
                                        skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5005
                                            methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5006
                                            methodsForChunk := changeClass name , methodsForChunk.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5007
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5008
                                    ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5009
                                    skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5010
                                        reader := Compiler evaluate:methodsForChunk notifying:self.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5011
                                        reader fileInFrom:aStream notifying:self passChunk:false single:true.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5012
                                    ]                        
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5013
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5014
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5015
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5016
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5017
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5018
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5019
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5020
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5021
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5022
    "/
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  5023
    "/ 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
  5024
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5025
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5026
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5027
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5028
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5029
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5030
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5031
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5032
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5033
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5034
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5035
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5036
    "Modified: / 01-05-2016 / 18:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5037
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5038
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5039
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5040
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5041
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5042
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5043
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5044
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5045
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5046
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5047
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5048
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5049
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5050
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5051
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5052
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5053
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  5054
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5055
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5056
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5057
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5058
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5059
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5060
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5061
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5062
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5063
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5064
compareChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5065
    "compare a change with the current (in-image) version; 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5066
     show the result of the compare (as dialog)"
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5067
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5068
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5069
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5070
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5071
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5072
    "compare a change with current version.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5073
     Return the result of the compare 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5074
        same -> true, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5075
        different -> false, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5076
        uncomparable -> nil.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5077
     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
  5078
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5079
    |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
  5080
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5081
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5082
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5083
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5084
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5085
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5086
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  5087
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5088
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5089
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5090
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5091
        chunk := self changeChunkAt:changeNr.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5092
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5093
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5094
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5095
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5096
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  5097
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5098
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5099
        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
  5100
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5101
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5102
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5103
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5104
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5105
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5106
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5107
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5108
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5109
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5110
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5111
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5112
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5113
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5114
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5115
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5116
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5117
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5118
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5119
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5120
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5121
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5122
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5123
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5124
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5125
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5126
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5127
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5128
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5129
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5130
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5131
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5132
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5133
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5134
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5135
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5136
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5137
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5138
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5139
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5140
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5141
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5142
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5143
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5144
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5145
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5146
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5147
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5148
                        (selector endsWith:':privateIn:') ifTrue:[
11475
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5149
                            Parser undefinedVariableError catch:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5150
                                ownerClass := (parseTree arguments at:5) evaluate.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5151
                                ownerClass isBehavior ifTrue:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5152
                                    thisClass := ownerClass privateClassesAt:thisClassSym.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5153
                                ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5154
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5155
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5156
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5157
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5158
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5159
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5160
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5161
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5162
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5163
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5164
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5165
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5166
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5167
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5168
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5169
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5170
                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5171
                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5172
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5173
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5174
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5175
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5176
                                            ((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
  5177
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5178
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5179
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5180
                                                    isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5181
                                                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5182
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5183
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5184
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5185
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5186
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5187
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5188
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5189
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5190
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5191
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5192
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5193
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5194
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5195
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5196
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5197
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5198
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5199
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5200
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5201
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5202
                                        isSame := false.
12825
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5203
                                        addedVars := varsInChange reject:[:eachVar | (varsHere includes:eachVar)].
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5204
                                        removedVars := varsHere reject:[:eachVar | (varsInChange includes:eachVar)].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5205
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5206
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5207
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5208
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5209
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5210
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5211
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5212
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5213
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5214
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5215
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5216
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5217
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5218
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5219
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5220
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5221
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5222
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5223
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5224
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5225
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5226
    ] ifTrue:[
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5227
        Class nameSpaceQuerySignal 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5228
            answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5229
            do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5230
                parseTree := self parseExpression:chunk.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5231
            ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5232
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5233
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5234
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5235
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5236
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5237
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5238
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5239
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5240
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5241
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5242
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5243
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5244
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5245
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5246
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5247
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5248
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5249
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5250
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5251
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5252
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5253
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5254
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5255
                thisClass notNil ifTrue:[
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5256
                (thisClass isKindOf:UndefinedVariable) ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5257
                    |thisName path|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5258
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5259
                    thisName := thisClass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5260
                    path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5261
                    1 to:path size do:[:length |
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5262
                        |ownerName owner|
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5263
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5264
                        ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
6820
4e8815b9e661 Do not autoload class when comparing changes.
Stefan Vogel <sv@exept.de>
parents: 6682
diff changeset
  5265
                        owner := Smalltalk loadedClassNamed:ownerName.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5266
                        (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5267
                            self checkClassIsLoaded:owner.
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
                    ].
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5270
                    thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5271
                ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5272
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5273
                thisClass isBehavior ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5274
                    parseTree selector == #methodsFor ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5275
                        cat := 'Dolphin methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5276
                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5277
                        parseTree selector == #methods ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5278
                            cat := 'STV methods'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5279
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5280
                            cat := parseTree arg1 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
                    ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5283
                    newSource := aStream nextChunk.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5284
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5285
                    isSame := self 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5286
                                compareMethodSource:newSource 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5287
                                withVersionInClass:thisClass 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5288
                                into:[:outcomeResult :beepResult :oldSourceResult| 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5289
                                    outcome := outcomeResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5290
                                    beep := beepResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5291
                                    oldSource := oldSourceResult.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5292
                                ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5293
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5294
                    isSame isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5295
                        showDiff := false.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5296
                    ] ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5297
                        showDiff := isSame not.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5298
                    ].
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5299
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5300
                    doShowResult ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5301
                        (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  5302
                            d := DiffCodeView
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5303
                                    openOn:oldSource label:(resources string:'Current version (in image)')
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5304
                                    and:newSource label:(resources string:'Change version').
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5305
                            d label:'method differences'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5306
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5307
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5308
                ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5309
                    beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5310
                    outcome := 'Class does not exist.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5311
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5312
                ]
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5313
            ]] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5314
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5315
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5316
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5317
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5318
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5319
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5320
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5321
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5322
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5323
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5324
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5325
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5326
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5327
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5328
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5329
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5330
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5331
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5332
                self information:outcome.
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
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5335
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5336
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5337
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5338
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5339
    "Modified: / 01-05-2016 / 18:25:32 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5340
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5341
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5342
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5343
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5344
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5345
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5346
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5347
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5348
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5349
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5350
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5351
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5352
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5353
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5354
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5355
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5356
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5357
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5358
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5359
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5360
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5361
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5362
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5363
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5364
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5365
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5366
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5367
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5368
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5369
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5370
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5371
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5372
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5373
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5374
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5375
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5376
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5377
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5378
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5379
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5380
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5381
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5382
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5383
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5384
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5385
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5386
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5387
compareMethodSource:newSource withVersionInClass:thisClass into:aThreeArgBlock
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5388
    "returns true/false/nil if same,different,undecided;
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5389
     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
  5390
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5391
    <ignore: RBReturnsBooleanAndOtherRule rationale: 'done by purpose' author: 'cg'>
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5392
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5393
    |parser sel oldMethod oldSource outcome t1 t2 isLoaded|
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5394
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5395
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5396
    do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5397
        parser := Parser parseMethod:newSource in:thisClass.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5398
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5399
    (parser isNil or:[parser == #Error]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5400
        outcome := 'Change is unparsable (parse error).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5401
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5402
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5403
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5404
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5405
    sel := parser selector.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5406
    oldMethod := thisClass compiledMethodAt:sel.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5407
    oldMethod isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5408
        (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5409
            outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5410
        ] ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5411
            outcome := 'Method does not exist.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5412
        ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5413
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5414
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5415
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5416
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5417
    oldSource := oldMethod source.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5418
    oldSource isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5419
        outcome := 'No source for compare.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5420
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5421
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5422
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5423
    (oldSource = newSource) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5424
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5425
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5426
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5427
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5428
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5429
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5430
    "/ compare for tabulator <-> space changes
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5431
    "/ before showing diff ...
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5432
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5433
    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5434
    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5435
    t1 = t2 ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5436
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5437
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5438
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5439
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5440
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5441
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5442
    "/ check if only historyLine diffs
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5443
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5444
    (HistoryManager notNil
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5445
    and:[HistoryManager isActive]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5446
        (HistoryManager withoutHistoryLines:newSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5447
        =
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5448
        (HistoryManager withoutHistoryLines:oldSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5449
        ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5450
            outcome := 'Same source (history only)'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5451
            aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5452
            ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5453
        ]
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5454
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5455
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5456
    outcome := 'Source changed.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5457
    aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5458
    ^ false.
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5459
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5460
    "Modified: / 16-07-2017 / 13:32:05 / cg"
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5461
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5462
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5463
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5464
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5465
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5466
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5467
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5468
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5469
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5470
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5471
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5472
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5473
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5474
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5475
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5476
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5477
                    ^ 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
  5478
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5479
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5480
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5481
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5482
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5483
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5484
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5485
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5486
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5487
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5488
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5489
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5490
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5491
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5492
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5493
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5494
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5495
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5496
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5497
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5498
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5499
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5500
                ^ 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
  5501
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5502
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5503
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5504
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5505
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5506
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5507
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5508
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5509
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5510
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5511
     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
  5512
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5513
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5514
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5515
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5516
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5517
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5518
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5519
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5520
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5521
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5522
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5523
     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
  5524
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5525
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5526
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5527
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5528
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5529
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5530
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5531
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5532
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5533
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5534
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  5535
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5536
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5537
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5538
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5539
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5540
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5541
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5542
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5543
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5544
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5545
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5546
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5547
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5548
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5549
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5550
    CompressSnapshotInfo == true ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5551
        "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5552
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5553
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5554
        "
16877
06db0d151de3 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 16478
diff changeset
  5555
        str := WriteStream on:''.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5556
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5557
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5558
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5559
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5560
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5561
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5562
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5563
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5564
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5565
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5566
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5567
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5568
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5569
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5570
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5571
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5572
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5573
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5574
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5575
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5576
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5577
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5578
            numChanges to:1 by:-1 do:[:changeNr |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5579
                aStream position:((changeInfoList at:changeNr) position)-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5580
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5581
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5582
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5583
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5584
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5585
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5586
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5587
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5588
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5589
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5590
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5591
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5592
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5593
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5594
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5595
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5596
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5597
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5598
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5599
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5600
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5601
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5602
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5603
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5604
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5605
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5606
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5607
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5608
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5609
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5610
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5611
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5612
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5613
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5614
                                ]
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5615
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5616
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5617
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5618
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5619
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5620
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5621
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5622
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5623
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5624
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5625
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5626
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5627
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5628
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5629
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5630
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5631
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5632
                                types at:changeNr put:#removeSelector
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5633
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5634
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5635
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5636
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5637
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5638
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5639
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5640
                            (chunk startsWith:snapshotPrefix) ifTrue:[
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  5641
                                str := chunk readStream position:snapshotNameIndex-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5642
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5643
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5644
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5645
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5646
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5647
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5648
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5649
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5650
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5651
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5652
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5653
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5654
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5655
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5656
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5657
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5658
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5659
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5660
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5661
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5662
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5663
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5664
         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
  5665
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5666
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5667
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5668
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5669
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5670
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5671
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5672
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5673
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5674
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5675
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5676
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5677
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5678
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5679
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5680
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5681
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5682
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5683
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5684
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5685
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5686
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5687
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5688
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5689
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5690
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5691
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5692
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5693
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5694
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5695
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5696
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5697
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5698
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5699
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5700
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5701
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5702
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5703
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5704
        (deleteSet size > 0) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5705
            self unselect.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5706
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5707
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5708
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5709
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5710
            ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5711
            self updateChangeList.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5712
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5713
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5714
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5715
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5716
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5717
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5718
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5719
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5720
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5721
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5722
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5723
    "Created: / 19-11-2001 / 22:03:42 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5724
    "Modified: / 01-05-2016 / 19:23:54 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5725
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5726
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5727
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5728
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5729
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5730
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5731
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5732
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5733
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5734
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5735
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5736
    self unselect.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5737
    stop to:start by:-1 do:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5738
        self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5739
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  5740
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5741
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5742
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5743
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5744
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5745
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5746
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  5747
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5748
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5749
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5750
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5751
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5752
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5753
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5754
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5755
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5756
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5757
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5758
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5759
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5760
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5761
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5762
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5763
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  5764
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5765
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5766
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5767
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5768
"/    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5769
"/    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5770
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5771
"/    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5772
"/    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5773
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5774
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5775
    "Modified: / 01-05-2016 / 19:20:40 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5776
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5777
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5778
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
  5779
    "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
  5780
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5781
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5782
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5783
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5784
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5785
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5786
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5787
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5788
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5789
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5790
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5791
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5792
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5793
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5794
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5795
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5796
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5797
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5798
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5799
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5800
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5801
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5802
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5803
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5804
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5805
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5806
    [index >= start] whileTrue:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5807
        thisClassName := self realClassNameOfChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5808
        thisClassName = aClassName ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5809
            (self selectorOfMethodChange:index) == selector ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5810
                self silentDeleteChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5811
                numDeleted := numDeleted + 1.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5812
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5813
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5814
        index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5815
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5816
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5817
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5818
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5819
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5820
    "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
  5821
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5822
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5823
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5824
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5825
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5826
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5827
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5828
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5829
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5830
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5831
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5832
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5833
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5834
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5835
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5836
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5837
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5838
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5839
silentDeleteChangesForNamespace:aNamespace from:start to:stop
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5840
    "delete changes for a given namespace in a range.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5841
     Return the number of deleted changes."
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5842
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5843
    |thisNamespace index numDeleted|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5844
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5845
    numDeleted := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5846
    index := stop.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5847
    [index >= start] whileTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5848
        thisNamespace := self namespaceOfChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5849
        thisNamespace = aNamespace ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5850
            self silentDeleteChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5851
            numDeleted := numDeleted + 1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5852
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5853
        index := index - 1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5854
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5855
    ^ numDeleted
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5856
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5857
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5858
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5859
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5860
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5861
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5862
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5863
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5864
"/    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5865
"/    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5866
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5867
"/    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5868
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5869
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5870
    "Created: / 07-03-1997 / 16:28:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5871
    "Modified: / 26-02-1998 / 18:20:48 / stefan"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5872
    "Modified: / 01-05-2016 / 19:20:59 / cg"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5873
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5874
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5875
silentDeleteMethodCategoryChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5876
    "delete method category changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5877
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5878
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5879
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5880
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5881
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5882
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5883
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5884
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5885
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5886
            (self selectorOfMethodCategoryChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5887
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5888
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5889
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5890
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5891
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5892
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5893
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5894
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5895
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5896
silentDeleteMethodChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5897
    "delete method changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5898
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5899
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5900
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5901
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5902
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5903
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5904
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5905
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5906
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5907
            (self selectorOfMethodChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5908
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5909
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5910
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5911
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5912
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5913
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5914
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5915
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5916
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5917
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5918
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5919
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5920
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5921
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5922
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5923
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5924
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5925
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5926
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5927
    |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
  5928
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5929
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5930
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5931
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5932
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  5933
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5934
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5935
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5936
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5937
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5938
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5939
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5940
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5941
        chunk := self changeChunkAt:changeNr.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5942
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5943
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  5944
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5945
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5946
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5947
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5948
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5949
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5950
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5951
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5952
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5953
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5954
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5955
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  5956
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5957
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5958
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5959
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  5960
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5961
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5962
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5963
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5964
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5965
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5966
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5967
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5968
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5969
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5970
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  5971
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5972
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5973
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5974
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5975
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5976
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5977
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5978
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5979
                        oldSource := 'Cannot compare this change\\(compare requires class to be loaded).' withCRs.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5980
                    ] ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5981
                        selector numArgs == 0 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5982
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  5983
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5984
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  5985
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5986
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5987
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5988
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5989
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  5990
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5991
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5992
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5993
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5994
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5995
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5996
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  5997
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5998
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  5999
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6000
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  6001
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6002
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6003
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6004
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6005
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6006
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6007
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6008
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6009
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6010
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6011
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6012
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6013
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6014
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6015
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6016
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6017
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6018
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6019
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6020
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6021
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6022
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6023
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6024
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6025
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6026
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6027
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6028
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6029
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6030
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6031
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6032
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6033
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6034
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6035
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6036
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6037
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6038
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6039
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6040
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6041
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6042
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6043
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6044
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6045
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6046
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6047
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6048
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6049
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6050
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6051
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6052
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6053
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6054
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6055
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6056
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6057
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6058
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6059
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6060
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6061
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6062
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6063
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6064
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6065
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6066
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6067
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6068
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6069
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6070
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6071
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6072
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6073
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6074
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6075
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6076
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6077
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6078
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6079
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6080
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6081
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6082
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6083
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6084
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6085
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6086
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6087
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6088
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6089
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6090
    "Modified: / 01-05-2016 / 18:26:01 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6091
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6092
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6093
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6094
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6095
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6096
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6097
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6098
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6099
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6100
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6101
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6102
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6103
                          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
  6104
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6105
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6106
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6107
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6108
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6109
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6110
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6111
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6112
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6113
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6114
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6115
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6116
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6117
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6118
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6119
closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6120
    "window manager wants me to go away"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6121
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6122
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6123
    super closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6124
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6125
    "Modified (comment): / 28-05-2018 / 09:49:47 / Claus Gittinger"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6126
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6127
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6128
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6129
    "update the changes file and quit.
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6130
     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
  6131
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  6132
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6133
    anyChanges ifTrue:[
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6134
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6135
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6136
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6137
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6138
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6139
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6140
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  6141
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6142
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6143
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6144
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6145
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6146
    searchString := self
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6147
        askForSearchString:msg
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6148
        initialAnswer:initial
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6149
        directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6150
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6151
    searchString isNil ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6152
        ^ cancelBlock value
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6153
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6154
    lastSearchString := searchString.
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6155
    
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6156
    directionHolder value == #first ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6157
        self findFirstForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6158
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6159
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6160
    directionHolder value == #last ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6161
        self findLastForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6162
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6163
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6164
    
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6165
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6166
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6167
    directionHolder value == #backward ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6168
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6169
            changeNrShown := self numberOfChanges.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6170
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6171
        self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6172
    ] ifFalse:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6173
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6174
            changeNrShown := 0.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6175
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6176
        self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6177
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6178
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6179
    "Modified: / 10-02-2017 / 20:40:59 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6180
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6181
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6182
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6183
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6184
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6185
    |searchString direction choices current|
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6186
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6187
    direction := #forward.
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6188
    choices := OrderedCollection new.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6189
    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6190
    changeNrShown notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6191
        current := self classNameOfChange:changeNrShown.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6192
        initial ~= current ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6193
            (choices includes:current) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6194
                choices addFirst:current   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6195
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6196
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6197
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6198
    lastSearchString notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6199
        initial ~= lastSearchString ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6200
            (choices includes:lastSearchString) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6201
                choices addFirst:lastSearchString   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6202
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6203
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6204
    ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6205
    
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6206
    "/ take a normal request box, but add an additional 'previous' button
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6207
    Dialog modifyingBoxWith:[:box |
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6208
        |nextButton prevButton firstButton lastButton|
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6209
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6210
        nextButton := box okButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6211
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6212
        firstButton := Button label:(resources string:'First').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6213
        firstButton action:[direction := #first. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6214
        box addButton:firstButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6215
        
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6216
        lastButton := Button label:(resources string:'Last').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6217
        lastButton action:[direction := #last. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6218
        box addButton:lastButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6219
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6220
        prevButton := Button label:(resources string:'Previous').
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6221
        prevButton action:[direction := #backward. box okPressed.].
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6222
        box addButton:prevButton after:nextButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6223
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6224
        nextButton label:(resources string:'Next').
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6225
    ] do:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6226
        searchString := Dialog
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6227
                request:msg
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6228
                list:choices 
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6229
                initialAnswer:initial
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6230
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6231
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6232
    searchString isEmptyOrNil ifTrue:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6233
        ^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6234
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6235
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6236
    ^ searchString
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6237
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6238
    "
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6239
     self new askForSearchString:'foo' initialAnswer:'bla' directionInto:(false asValue)
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6240
    "
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6241
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6242
    "Modified: / 12-02-2017 / 11:18:11 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6243
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6244
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6245
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6246
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6247
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6248
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6249
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6250
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6251
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6252
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6253
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6254
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6255
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6256
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6257
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6258
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6259
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6260
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6261
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6262
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6263
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6264
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6265
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6266
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6267
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6268
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6269
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6270
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6271
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6272
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6273
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6274
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6275
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6276
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6277
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6278
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6279
    self changeListSelectionHolder value:lineNumbers.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6280
    
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6281
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6282
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6283
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6284
        changeNrShown := nil.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6285
        infoHolder value:nil.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6286
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6287
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6288
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6289
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6290
    self sensor
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6291
        enqueueMessage:#updateSourceCodeAfterChangedSelection for:self arguments:nil;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6292
        enqueueMessage:#updateInfoAfterChangedSelection for:self arguments:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6293
^ self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6294
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6295
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6296
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6297
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6298
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6299
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  6300
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6301
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6302
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  6303
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6304
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6305
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6306
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6307
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6308
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6309
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6310
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6311
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6312
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6313
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6314
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6315
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6316
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6317
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6318
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6319
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6320
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6321
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  6322
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6323
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6324
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6325
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6326
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6327
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6328
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6329
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6330
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6331
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6332
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6333
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6334
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6335
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6336
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6337
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6338
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6339
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6340
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6341
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6342
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6343
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6344
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6345
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6346
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6347
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6348
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6349
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6350
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6351
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6352
classOfChange:changeNr ifAbsent:exceptionBlock
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6353
    "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
  6354
     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
  6355
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6356
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6357
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6358
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6359
    className isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6360
        ^ exceptionBlock valueWithOptionalArgument:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6361
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6362
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6363
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6364
    (className endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  6365
        className := className copyButLast:6.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6366
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6367
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  6368
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6369
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6370
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6371
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6372
            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
  6373
                "/ 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
  6374
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6375
                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
  6376
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6377
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6378
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6379
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6380
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6381
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6382
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6383
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6384
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6385
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6386
        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
  6387
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6388
        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
  6389
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6390
    (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
  6391
        "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
  6392
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6393
            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
  6394
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6395
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6396
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6397
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6398
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6399
    cls isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6400
        ^ exceptionBlock valueWithOptionalArgument:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6401
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6402
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6403
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6404
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6405
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6406
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6407
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6408
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6409
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6410
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6411
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6412
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6413
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6414
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6415
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6416
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6417
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  6418
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6419
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6420
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6421
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6422
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6423
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6424
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6425
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6426
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6427
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6428
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6429
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6430
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6431
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6432
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6433
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6434
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6435
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6436
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6437
            lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6438
            self withWriteCursorDo:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6439
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6440
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6441
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6442
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6443
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6444
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6445
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6446
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6447
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6448
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6449
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6450
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6451
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6452
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  6453
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6454
    "Modified: / 27-07-2012 / 09:46:04 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6455
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6456
11477
95c469c33ab3 added: #selectionChanged
Stefan Vogel <sv@exept.de>
parents: 11476
diff changeset
  6457
selectionChanged
12946
e6e3c7681456 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12845
diff changeset
  6458
    self halt:'should not be here'
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6459
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6460
    "Created: / 03-01-2012 / 15:26:36 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6461
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6462
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6463
updateInfoAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6464
    "update the info label"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6465
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6466
    |selection lineNr selectorOrNil className nonMetaClassName metaClassName
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6467
     nClassChanges nMethodChanges uniqueSelectors
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6468
     lastLineNr firstLineNr 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6469
     countForClassBeforeCurrent countForClassAfterLast countForClassAndSelectorAfterLast 
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6470
     moreInfo countInfo selectorInfo|
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6471
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6472
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6473
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6474
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6475
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6476
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6477
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6478
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6479
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6480
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6481
        infoHolder value:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6482
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6483
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6484
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6485
    "/
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6486
    "/ now, this info is computed so fast,
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6487
    "/ we can do it each time the selection changes
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6488
    "/ (can we?)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6489
    className := self realClassNameOfChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6490
    className isNil ifTrue:[
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6491
        infoHolder value:nil.
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6492
        ^ self
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6493
    ].
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6494
    selectorOrNil := self selectorOfMethodChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6495
    
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6496
    nonMetaClassName := (className endsWith:' class')
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6497
                            ifTrue:[ className copyButLast:' class' size ]
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6498
                            ifFalse:[ className ].
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6499
    metaClassName := nonMetaClassName,' class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6500
                            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6501
    nClassChanges := nMethodChanges := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6502
    uniqueSelectors := Set new.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6503
    lastLineNr := firstLineNr := nil.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6504
    countForClassAfterLast := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6505
    countForClassBeforeCurrent := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6506
    countForClassAndSelectorAfterLast := 0.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6507
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6508
    "/ count them all
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6509
    1 to:changeInfoList size do:[:i |
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6510
        |sel nameOfChange|
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6511
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6512
        changeInfoList at:i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6513
        nameOfChange := self realClassNameOfChange:i.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6514
        ((nameOfChange = nonMetaClassName) or:[nameOfChange = metaClassName]) ifTrue:[
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6515
            sel := self selectorOfMethodChange:i.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6516
            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6517
            lastLineNr := i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6518
            firstLineNr := firstLineNr ? i.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6519
            i > lineNr ifTrue:[ 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6520
                countForClassAfterLast := countForClassAfterLast + 1.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6521
                (nameOfChange = className 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6522
                  and:[ selectorOrNil notNil 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6523
                  and:[sel == selectorOrNil]]) ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6524
                    countForClassAndSelectorAfterLast := countForClassAndSelectorAfterLast + 1.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6525
                ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6526
            ] ifFalse:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6527
                i < lineNr ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6528
                    countForClassBeforeCurrent := countForClassBeforeCurrent + 1
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6529
                ]
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6530
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6531
            nClassChanges := nClassChanges + 1.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6532
            sel notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6533
                uniqueSelectors add:sel.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6534
                nMethodChanges := nMethodChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6535
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6536
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6537
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6538
    lastLineNr == lineNr ifTrue:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6539
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6540
            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
  6541
        ] ifFalse:[    
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6542
            moreInfo := resources string:'. This is the last for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6543
        ]
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6544
    ] ifFalse:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6545
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6546
            moreInfo := resources string:'. This is the first for this class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6547
        ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6548
        countForClassAfterLast > 0 ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6549
            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
  6550
            countForClassAndSelectorAfterLast > 0 ifTrue:[
17419
469331b680ed #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17400
diff changeset
  6551
                moreInfo := moreInfo,(resources string:', %1 for selector' with:countForClassAndSelectorAfterLast).
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6552
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6553
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6554
    ].
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6555
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6556
    countInfo := resources string:'%1 changes. %2 for %3 '
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6557
                        with:(changeInfoList size)
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6558
                        with:nClassChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6559
                        with:className.
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6560
                        
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6561
    uniqueSelectors size == 1 ifTrue:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6562
        nMethodChanges == 1 ifTrue:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6563
            selectorInfo := (resources string:'(1 for #''%1'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6564
                                      with:uniqueSelectors first) allBold
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6565
        ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6566
            selectorInfo := (resources string:'(%1 methods / for #''%2'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6567
                                      with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6568
                                      with:uniqueSelectors first) allBold
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6569
        ].
18110
d5c27e884602 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18061
diff changeset
  6570
    ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6571
        (nMethodChanges == 0 and:[uniqueSelectors isEmptyOrNil]) ifTrue:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6572
            selectorInfo := resources string:'(0 methods)' 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6573
        ] ifFalse:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6574
            selectorInfo := (resources string:'(%1 methods / %5 selectors)'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6575
                             with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6576
                             with:uniqueSelectors size) allBold 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6577
        ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6578
    ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6579
    infoHolder value:(countInfo,selectorInfo,moreInfo).
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6580
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6581
    "Modified: / 19-02-2017 / 13:37:19 / cg"
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6582
    "Modified: / 08-06-2018 / 12:09:44 / Claus Gittinger"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6583
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6584
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6585
updateSourceCodeAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6586
    "show a change in the codeView"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6587
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6588
    |selection lineNr chunk|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6589
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6590
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6591
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6592
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6593
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6594
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6595
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6596
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6597
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6598
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6599
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6600
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6601
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6602
    "/ display the changes code
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6603
    chunk := self sourceOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6604
    chunk isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6605
        codeView initializeDoITAction.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6606
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6607
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6608
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6609
    codeView contents:chunk.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6610
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6611
    codeView doItAction:[:theCode |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6612
        |clsName cls|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6613
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6614
        clsName := self classNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6615
        clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6616
            clsName := clsName asSymbolIfInterned.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6617
            clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6618
                cls := Smalltalk at:clsName ifAbsent:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6619
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6620
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6621
        Compiler
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6622
            evaluate:theCode
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6623
            in:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6624
            receiver:cls
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6625
            notifying:self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6626
            logged:true
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6627
            ifFail:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6628
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6629
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6630
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6631
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6632
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6633
    self showingDiffs value ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6634
        self withWaitCursorDo:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6635
            AbortOperationRequest catch:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6636
                self updateDiffViewFor:changeNrShown.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6637
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6638
        ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6639
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6640
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6641
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6642
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6643
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6644
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6645
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6646
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6647
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6648
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6649
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6650
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6651
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6652
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6653
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6654
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6655
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6656
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6657
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6658
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6659
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6660
changeChunks
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6661
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6662
    ^ changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6663
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6664
    "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
  6665
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6666
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6667
changeClassNames
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6668
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6669
    ^ changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6670
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6671
    "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
  6672
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6673
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6674
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6675
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6676
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6677
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6678
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6679
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6680
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6681
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6682
changeHeaderLines
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6683
    self breakPoint:#cg.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6684
   ^ changeHeaderLines
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6685
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6686
    "Modified: / 01-05-2016 / 19:10:41 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6687
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6688
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6689
changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6690
    ^ changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6691
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6692
    "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
  6693
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6694
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6695
changeIsFollowupMethodChange
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6696
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6697
    ^ changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6698
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6699
    "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
  6700
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6701
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6702
changePositions
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6703
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6704
    ^ changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6705
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6706
    "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
  6707
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6708
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6709
changeTimeStamps
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6710
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6711
    ^ changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6712
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6713
    "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
  6714
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6715
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6716
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6717
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6718
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6719
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6720
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6721
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6722
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6723
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6724
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6725
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6726
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6727
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6728
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6729
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6730
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6731
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6732
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6733
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6734
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6735
    "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
  6736
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6737
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6738
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6739
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6740
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6741
    "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
  6742
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6743
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6744
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6745
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6746
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6747
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6748
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6749
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6750
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6751
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6752
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6753
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6754
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6755
                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
  6756
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6757
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6758
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6759
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6760
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6761
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6762
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6763
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6764
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6765
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6766
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6767
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6768
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6769
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6770
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6771
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6772
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6773
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6774
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6775
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6776
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6777
    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
  6778
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6779
            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
  6780
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6781
            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
  6782
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6783
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6784
    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
  6785
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6786
            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
  6787
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6788
            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
  6789
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6790
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6791
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6792
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6793
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6794
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6795
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6796
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6797
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6798
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6799
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6800
    "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
  6801
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6802
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6803
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6804
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6805
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6806
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6807
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6808
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6809
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6810
    changeHeaderLines add:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6811
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6812
    "Modified: / 01-05-2016 / 19:07:49 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6813
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6814
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6815
colorizeAsCommentChange:changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6816
    |c|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6817
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6818
    NoColoring ~~ true ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6819
        c := changeType allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6820
        "/ changeString := changeString allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6821
        c emphasisAllAdd:(#color -> UserPreferences current commentColor).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6822
        ^ c
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6823
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6824
    ^ changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6825
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6826
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6827
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
  6828
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6829
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6830
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6831
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6832
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6833
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6834
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6835
    timeStampInfo notNil ifTrue:[
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  6836
        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
  6837
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6838
    ^ entry
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6839
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6840
    "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
  6841
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6842
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6843
processChunk
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6844
    |info|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6845
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6846
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6847
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6848
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6849
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6850
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6851
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  6852
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6853
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6854
    changeInfo add:(info := 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6855
                        ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6856
                            position:chunkPosition chunk:chunkText className:nil selector:nil headerLine:nil
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6857
                            timestamp:timeStampInfo isFollowupChange:false).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6858
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6859
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6860
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6861
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6862
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6863
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6864
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6865
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6866
            [
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6867
                changeInfo removeLast.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6868
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6869
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6870
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6871
    changeString notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6872
        "/ self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6873
        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
  6874
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6875
        headerLine notNil ifTrue:[
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  6876
            changeHeaderLines add:headerLine.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6877
            info headerLine:headerLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6878
        ]
16372
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
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6881
    "Modified: / 01-05-2016 / 19:13:59 / cg"
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  6882
    "Modified: / 27-10-2017 / 14:34:51 / stefan"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6883
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6884
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6885
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6886
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6887
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6888
    |askedForEditingClassSource changeClass category anyMethod
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  6889
     sel p rec clsName done first text methodPos
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6890
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo methodSelector nameAndClass
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6891
     info|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6892
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6893
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6894
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6895
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6896
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6897
    anyMethod := false.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6898
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6899
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6900
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6901
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6902
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6903
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6904
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6905
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6906
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6907
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  6908
    (chunkText includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6909
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6910
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  6911
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6912
    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
  6913
    (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
  6914
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6915
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6916
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6917
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6918
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6919
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6920
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6921
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6922
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6923
                classCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6924
                changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6925
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6926
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6927
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6928
                    methodCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6929
                    changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6930
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6931
                ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6932
                    (sel numArgs == 0) ifTrue:[
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6933
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6934
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6935
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6936
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6937
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6938
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6939
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6940
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6941
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6942
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6943
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6944
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6945
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6946
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6947
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6948
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6949
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6950
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6951
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6952
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6953
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6954
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6955
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6956
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6957
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6958
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6959
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6960
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6961
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6962
        changeDelta := ' '.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  6963
        methodPos := inStream position + 1.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6964
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6965
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6966
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6967
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6968
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  6969
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6970
            first ifFalse:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6971
                info := ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6972
                            position:methodPos chunk:chunkText className:clsName 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6973
                            selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6974
                changeInfo add:info.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6975
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6976
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6977
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6978
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6979
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6980
            ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6981
                changeInfo last className:clsName
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6982
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6983
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6984
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6985
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6986
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6987
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6988
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6989
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6990
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6991
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6992
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6993
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6994
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6995
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6996
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6997
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6998
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6999
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7000
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7001
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7002
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7003
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7004
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7005
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7006
                    methodChunks ifTrue:[
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7007
                        p := Parser for:(ReadStream on:text) in:nil.  
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7008
                        p ignoreErrors:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7009
                        p ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7010
                        p parserFlags allowDollarInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7011
                        p parserFlags allowParagraphInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7012
                        p parseMethodSpec.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7013
                        methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7014
"/                        p := Parser
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7015
"/                                 parseMethodSpecification:text
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7016
"/                                 in:nil
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7017
"/                                 ignoreErrors:true
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7018
"/                                 ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7019
"/                        (p notNil and:[p ~~ #Error]) ifTrue:[
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7020
"/                            methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7021
"/                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7022
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7023
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7024
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7025
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7026
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7027
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7028
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7029
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7030
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7031
                    changeType := ('{ ' , category , ' }').
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7032
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7033
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7034
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7035
                autoCompare value ifTrue:[
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7036
                    changeDelta := ChangeDeltaInformation 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7037
                                        changeDeltaFor:text changeClass:changeClass selector:methodSelector.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7038
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7039
            ].
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7040
            changeInfo last 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7041
                headerLine:(self headerLineForChangeType:changeType 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7042
                                 changeString:changeString
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7043
                                 changeDelta:changeDelta
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7044
                                 timeStampInfo:timeStampInfo).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7045
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7046
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7047
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7048
        singleJunkOnly ifTrue:[done := true]
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
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7051
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7052
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7053
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7054
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7055
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7056
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7057
    "Modified: / 21-11-2016 / 23:32:29 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7058
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7059
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7060
processNonMethodChunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7061
    |s changeClass sel cls parseTree rec clsName ownerTree ownerName
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7062
     m nameAndClass args instVarsArg classVarsArg categoryArg
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7063
     lastInfo newCategory newPackage|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7064
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7065
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7066
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7067
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7068
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7069
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7070
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7071
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7072
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7073
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
     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
  7076
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7077
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7078
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7079
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7080
        timeStampInfo := nil.
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7081
        changeString := changeString withColor:Color grey.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7082
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7083
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7084
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7085
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7086
    parseTree := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7087
    (parseTree notNil and:[parseTree ~~ #Error]) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7088
        parseTree isMessage ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7089
            sel := parseTree selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7090
            rec := parseTree receiver.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7091
            args := parseTree args.        
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7092
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7093
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7094
        sel := nil.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7095
        Error handle:[:ex |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7096
            changeType := '(???)'.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7097
        ] do:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7098
            (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7099
                "/ a comment only
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7100
                changeType := self colorizeAsCommentChange:'(comment)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7101
            ] ifFalse:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7102
                changeType := '(???)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7103
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7104
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7105
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7106
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7107
    (sel == #comment:) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7108
        changeType := self colorizeAsCommentChange:'(comment)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7109
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7110
        changeClass := (self nameSpaceForApply) classNamed:clsName.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7111
        (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7112
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7113
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7114
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7115
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7116
            ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7117
                (changeClass comment = (args at:1) evaluate) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7118
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7119
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7120
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7121
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7122
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7123
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7124
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7125
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7126
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7127
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7128
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7129
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7130
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7131
        sel := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7132
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7133
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7134
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7135
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7136
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7137
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7138
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7139
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7140
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7141
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7142
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7143
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7144
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7145
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7146
        changeString := self contractClass:clsName selector:sel to:maxLen.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7147
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7148
        ^ self.
6530
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
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7151
    (parseTree notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7152
    and:[parseTree ~~ #Error
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7153
    and:[parseTree isMessage
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7154
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7155
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7156
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7157
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7158
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7159
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7160
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7161
            sel := (rec args at:1) evaluate.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7162
            changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7163
            changeString := self contractClass:clsName selector:sel to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7164
            newCategory := (args at:1) evaluate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7165
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7166
            "/ make it a category change
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7167
            lastInfo := changeInfo last.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7168
            lastInfo className:clsName.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7169
            lastInfo selector:sel.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7170
            lastInfo categoryIfCategoryChange:newCategory.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7171
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7172
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7173
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7174
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7175
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7176
                    m := changeClass compiledMethodAt:sel asSymbol.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7177
                    m isNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7178
                        "/ mhm - the method does not (no longer=) exist
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7179
                        changeDelta := '?'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7180
                    ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7181
                        m category = newCategory ifTrue:[
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7182
                            changeDelta := '='.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7183
                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7184
                    ]
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
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7187
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7188
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7189
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7190
        (sel == #package:) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7191
            sel := (rec args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7192
            changeType := self colorizeAsCommentChange:'(package change)'.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7193
            changeString := self contractClass:clsName selector:sel to:maxLen.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7194
            newPackage := (args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7195
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7196
            "/ make it a category change
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7197
            lastInfo := changeInfo last.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7198
            lastInfo className:clsName.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7199
            lastInfo selector:sel.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7200
            "/ lastInfo packageIfPackageChange:newPackage.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7201
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7202
            autoCompare value ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7203
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7204
                    changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7205
                ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7206
                    m := changeClass compiledMethodAt:sel asSymbol.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7207
                    m isNil ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7208
                        "/ mhm - the method does not (no longer=) exist
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7209
                        changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7210
                    ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7211
                        m package = newPackage ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7212
                            changeDelta := '='.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7213
                        ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7214
                    ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7215
                ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7216
            ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7217
            ^ self.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7218
        ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7219
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7220
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7221
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7222
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7223
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7224
            (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7225
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7226
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7227
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7228
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7229
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7230
                    changeDelta := ' '
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7231
                ]
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7232
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7233
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7234
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7235
        sel := nil.
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
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7238
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7239
        changeType := '(class definition)'.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7240
        clsName := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7241
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7242
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7243
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7244
        ('*privateIn:' match:sel) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7245
            ownerTree := args last.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7246
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7247
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7248
        ].
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
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7251
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7252
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7253
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7254
        ].
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
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7257
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7258
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7259
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7260
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7261
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7262
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7263
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7264
                    cls definitionSelector = (sel , 'category:')
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
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7267
                    ((cls superclass isNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7268
                        and:[rec isLiteral
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7269
                        and:[rec evaluate isNil]])
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7270
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7271
                        cls superclass notNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7272
                        and:[rec isLiteral not
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7273
                        and:[cls superclass name = rec name]]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7274
                    ]) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7275
                        (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7276
                        ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7277
                            "/ VSE definition message
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7278
                            instVarsArg := ''.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7279
                            classVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7280
                            categoryArg := (args at:4) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7281
                        ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7282
                            instVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7283
                            classVarsArg := (args at:3) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7284
                            categoryArg := (args at:5) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7285
                        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7286
                        cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7287
                            cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7288
                                cls definitionSelector = (sel , 'category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7289
                                ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7290
                                    "/ ST/V, VAge or Dolphin definition
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7291
                                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7292
                                ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7293
                                    cls category = categoryArg ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7294
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7295
                                    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7296
                                        changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7297
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7298
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7299
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7300
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7301
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7302
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7303
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7304
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7305
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7306
        ^ self.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7307
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7308
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7309
    (#(
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7310
      #'primitiveDefinitions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7311
      #'primitiveFunctions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7312
      #'primitiveVariables:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7313
     ) includes:sel) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7314
        changeType := '(class definition)'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7315
        clsName := rec name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7316
        ^ self.    
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7317
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7318
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7319
    ((sel == #instanceVariableNames:)
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7320
    and:[rec isMessage
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7321
    and:[rec selector == #class]]) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7322
        clsName := rec receiver name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7323
        changeClass := (self nameSpaceForApply) classNamed:clsName.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7324
        changeType := '(class definition)'.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7325
        (changeInfo last) className:clsName.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7326
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7327
        autoCompare value ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7328
            changeClass isNil ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7329
                changeDelta := '?'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7330
            ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7331
                s := (args at:1) evaluate.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7332
                s = changeClass class instanceVariableString ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7333
                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7334
                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7335
            ]
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7336
        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7337
        ^ self.    
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7338
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  7339
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7340
    "Modified: / 01-05-2016 / 19:19:54 / cg"
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7341
    "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
  7342
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7343
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7344
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7345
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7346
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7347
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7348
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7349
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7350
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7351
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7352
    "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
  7353
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7354
     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
  7355
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7356
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7357
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7358
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7359
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7360
                '=' -> 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
  7361
                '~' -> 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
  7362
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7363
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7364
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7365
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7366
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7367
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7368
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7369
     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
  7370
     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
  7371
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7372
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7373
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7374
    changeInfo := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7375
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7376
"/    changeChunks := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7377
"/    changeClassNames := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7378
"/    changeHeaderLines := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7379
"/    changePositions := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7380
"/    changeTimeStamps := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7381
"/    changeIsFollowupMethodChange := OrderedCollection new.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7382
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7383
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7384
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7385
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7386
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7387
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7388
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7389
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7390
        inStream skipSeparators.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7391
        chunkPosition := inStream position + 1.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7392
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7393
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7394
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  7395
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7396
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7397
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7398
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7399
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7400
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7401
    "Modified: / 01-05-2016 / 18:33:36 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7402
! !
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7403
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7404
!ChangesBrowser::ChangeInfo class methodsFor:'documentation'!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7405
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7406
documentation
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7407
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7408
    documentation to be added.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7409
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7410
    [author:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7411
        cg
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7412
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7413
    [instance variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7414
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7415
    [class variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7416
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7417
    [see also:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7418
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7419
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7420
! !
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7421
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7422
!ChangesBrowser::ChangeInfo methodsFor:'accessing'!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7423
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7424
categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7425
    ^ categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7426
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7427
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7428
categoryIfCategoryChange:something
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7429
    categoryIfCategoryChange := something.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7430
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7431
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7432
chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7433
    ^ chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7434
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7435
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7436
className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7437
    ^ className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7438
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7439
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7440
className:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7441
    className := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7442
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7443
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7444
headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7445
    ^ headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7446
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7447
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7448
headerLine:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7449
    headerLine := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7450
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7451
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7452
isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7453
    ^ isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7454
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7455
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7456
isMethodCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7457
    ^ categoryIfCategoryChange notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7458
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7459
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7460
position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7461
    ^ position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7462
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7463
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7464
position:positionArg chunk:chunkArg className:classNameArg selector:selectorArg headerLine:headerLineArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7465
    timestamp:timestampArg isFollowupChange:isFollowupChangeArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7466
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7467
    position := positionArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7468
    chunk := chunkArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7469
    className := classNameArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7470
    selector := selectorArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7471
    headerLine := headerLineArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7472
    timestamp := timestampArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7473
    isFollowupChange := isFollowupChangeArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7474
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7475
    "Created: / 01-05-2016 / 19:01:03 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7476
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7477
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7478
selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7479
    ^ selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7480
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7481
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7482
selector:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7483
    selector := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7484
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7485
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7486
timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7487
    ^ timestamp
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
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  7490
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7491
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7492
version
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7493
    ^ '$Header$'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7494
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7495
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7496
version_CVS
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7497
    ^ '$Header$'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  7498
! !
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  7499