ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Mon, 20 Jan 2020 21:02:47 +0100
changeset 19422 c6ca1c3e0fd7
parent 19395 e269a7cf908a
child 19512 3fe02dbbb6dc
permissions -rw-r--r--
#REFACTORING by exept class: MultiViewToolApplication added: #askForFile:default:forSave:thenDo: changed: #askForFile:default:thenDo: #askForFile:thenDo: #menuSaveAllAs #menuSaveAs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19263
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
     1
"{ Encoding: utf8 }"
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
     2
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     3
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 1
diff changeset
     4
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
     5
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    12
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    13
"
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    14
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    15
15082
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    16
"{ NameSpace: Smalltalk }"
e188631fbd28 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15079
diff changeset
    17
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    18
StandardSystemView subclass:#ChangesBrowser
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    19
	instanceVariableNames:'changesReader changeInfoList changeListView codeView diffView
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    20
		changeFileName anyChanges changeNrShown changeNrProcessed
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    21
		multipleApply autoCompare changeFileSize changeFileTimestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    22
		checkBlock tabSpec autoUpdate editingClassSource lastSearchType
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    23
		lastSearchString applyInOriginalNameSpace lastSaveFileName
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    24
		readOnly enforcedPackage enforcedNameSpace updateChangeSet
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
    25
		showingDiffs diffViewBox autoloadAsRequired
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
    26
		classesNotToBeAutoloaded encodingIfKnown
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
    27
		ignorePublicPrivateCategories changeListSelectionHolder
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    28
		defaultApplicationForVAGEClasses infoHolder leftCodeLabelHolder
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
    29
		rightCodeLabelHolder menuPanel toolbarMenu classNameMap'
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    30
	classVariableNames:'CompressSnapshotInfo DefaultAutoCompare DefaultShowingDiffs
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    31
		KeepEnforcedNameSpace LastEnforcedNameSpace NoColoring
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
    32
		ShowWarningDialogs'
4489
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    33
	poolDictionaries:''
0deb97a82d68 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4488
diff changeset
    34
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    35
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    36
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    37
Object subclass:#ChangeFileReader
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    38
	instanceVariableNames:'browser enforcedNameSpace changeFileName changeFileSize
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    39
		changeFileTimestamp changeInfo changeChunks changeClassNames
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    40
		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
    41
		changeIsFollowupMethodChange autoCompare autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
    42
		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
    43
		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
    44
		changeString changeType changeDelta headerLine maxLen'
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    45
	classVariableNames:'NoColoring'
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    46
	poolDictionaries:''
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    47
	privateIn:ChangesBrowser
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    48
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
    49
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    50
Object subclass:#ChangeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    51
	instanceVariableNames:'position chunk className selector headerLine timestamp
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    52
		isFollowupChange categoryIfCategoryChange'
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    53
	classVariableNames:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    54
	poolDictionaries:''
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    55
	privateIn:ChangesBrowser
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    56
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
    57
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    58
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    59
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    60
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    61
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    62
 COPYRIGHT (c) 1990 by Claus Gittinger
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
    63
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    64
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    65
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    66
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    67
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    68
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    69
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    70
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    71
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    72
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    73
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    74
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    75
"
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    76
    this implements a browser for the changes-file 
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    77
    (actually, it can display any sourceFile's contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    78
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    79
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    80
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    81
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
    82
    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
    83
    and the Merovingian has not yet detected this one ;-)
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    84
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    85
    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
    86
    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
    87
    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
    88
    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
    89
    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
    90
    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
    91
    changeSet entries instead (which hold the same info plus more).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    92
    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
    93
    operations of the ChangesBrowser, to which we got used so much.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    94
    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
    95
    (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
    96
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
    97
    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
    98
0fd86e0939ff comments
Claus Gittinger <cg@exept.de>
parents: 5702
diff changeset
    99
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   100
    [Class variables:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   101
        CompressSnapshotInfo            if true (the default), snapshot entries
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   102
                                        are also compressed in the compress function.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   103
                                        Some users prefer them to be not compressed.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   104
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
   105
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
   106
    Notice:
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   107
        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
   108
        (which did not exist when the ChangesBrowser was originally written)
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   109
        and manipulate that changeSet.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   110
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   111
        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
   112
        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
   113
        subclasses (where it belongs) and give a better encapsulation and
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   114
        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
   115
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   116
        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
   117
        should be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   118
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   119
    [author:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   120
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   121
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
   122
    [start with:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   123
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   124
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   125
    [see also:]
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
   126
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   127
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   128
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
   129
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   130
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   131
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   132
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   133
openOn:aFilename
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   134
    "create & open a changes browser on a change file"
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   135
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   136
    |fileName browser|
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
    fileName := aFilename asFilename pathName.
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   139
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   140
    (self isXMLFile:fileName) ifTrue:[
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   141
        browser := ChangeSetBrowser new
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   142
    ] ifFalse:[
8379
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   143
        browser := self new
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   144
    ].
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   145
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   146
    browser label:(self defaultLabel , ': ', fileName).
772c9d449dcb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8351
diff changeset
   147
    browser changeFileName:fileName.
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   148
    browser open.
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
   149
    ^ browser
9525
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   150
dfcd9e9d5193 comment/format in: #openOn:
Claus Gittinger <cg@exept.de>
parents: 9515
diff changeset
   151
    "Modified: / 18-07-2010 / 10:32:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   152
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   153
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   154
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   155
571fd5eee315 Initial revision
claus
parents:
diff changeset
   156
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   157
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   158
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   159
571fd5eee315 Initial revision
claus
parents:
diff changeset
   160
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   161
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   162
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   163
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   164
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   165
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   166
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   167
7631
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   168
    <resource: #programImage>
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   169
258e8ad34edf defaultIcon no longer uses a class variable
Stefan Vogel <sv@exept.de>
parents: 7625
diff changeset
   170
    ^ ToolbarIconLibrary startChangesBrowserIcon    
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   171
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   172
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   173
defaultLabel
5527
bbff3dc4085b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5255
diff changeset
   174
    ^ self classResources string:'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   175
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   176
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   177
isVisualStartable
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   178
    "return true, if this application can be started via #open.
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
   179
     (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
   180
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   181
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   182
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   183
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   184
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   185
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   186
!ChangesBrowser class methodsFor:'help specs'!
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   187
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
   188
helpSpec
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   189
    <resource: #help>
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   190
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   191
    ^ Dictionary new 
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   192
        addPairsFrom:#(
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   193
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   194
#applyChange
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   195
'Apply (install) the selected change'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   196
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   197
deleteAllForClass
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   198
'Delete all changes for the selected change''s class'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   199
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   200
deleteForClassFromBegin
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   201
'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
   202
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   203
deleteForClassToEnd
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   204
'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
   205
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   206
deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   207
'Delete all changes for the selected method'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   208
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   209
deleteClassSelectorOlder
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   210
'Delete this and all previous versions of the selected change'
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   211
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   212
)
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   213
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
   214
    "Modified: / 25-07-2017 / 10:55:55 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   215
    "Modified: / 15-02-2019 / 12:29:30 / Claus Gittinger"
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   216
! !
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   217
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   218
!ChangesBrowser class methodsFor:'menu specs'!
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   219
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   220
menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   221
    "This resource specification was automatically generated
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   222
     by the MenuEditor of ST/X."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   223
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   224
    "Do not manually edit this!! If it is corrupted,
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   225
     the MenuEditor may not be able to read the specification."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   226
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
   227
3202
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpec
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   230
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpec)) startUp
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   231
    "
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   232
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   233
    <resource: #menu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   234
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
   235
    ^ 
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
   236
     #(Menu
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
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   239
            label: 'File'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   240
            submenuChannel: menuSpecFile
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
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   243
            label: 'Change_subst'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   244
            submenuChannel: menuSpecChange
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: 'Search'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   248
            submenuChannel: menuSpecSearch
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: 'Browse'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   252
            submenuChannel: menuSpecBrowse
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
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   255
            label: 'Settings'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   256
            submenuChannel: menuSpecSettings
7096
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   257
          )
0c00c3da9ee1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7002
diff changeset
   258
         (MenuItem
7463
e8e74bdbfbda support '?' as help (for now: controlled by resources)
Claus Gittinger <cg@exept.de>
parents: 7415
diff changeset
   259
            label: 'MENU_Help'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   260
            submenuChannel: menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   261
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   262
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   263
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   264
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   265
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   266
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   267
    "Modified: / 21-11-2016 / 23:46:22 / cg"
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
   268
    "Modified: / 01-07-2018 / 09:24:30 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   269
!
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
menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   272
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   273
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   276
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   277
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   278
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   281
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecBrowse)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   284
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   285
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   286
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   287
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   288
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   289
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   290
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   291
            label: 'Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   292
            itemValue: doBrowse
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   293
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   294
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   295
            label: '-'
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: 'Senders...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   299
            itemValue: doBrowseSenders
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   302
            label: 'Implementors...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   303
            itemValue: doBrowseImplementors
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
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   307
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   308
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   309
!
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
menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   312
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   313
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   316
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   317
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   318
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecChange
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   321
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecChange)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   324
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   325
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   326
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   327
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   328
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   329
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   330
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   331
            label: 'Apply'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   332
            itemValue: doApply
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   333
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   334
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   335
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   336
            label: 'Apply to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   337
            itemValue: doApplyRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   338
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   339
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   340
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   341
            label: 'Apply from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   342
            itemValue: doApplyFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   343
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   344
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   345
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   346
            label: 'Apply for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   347
            itemValue: doApplyClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   348
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   349
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   350
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   351
            label: 'Apply for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   352
            itemValue: doApplyClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   353
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   354
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   355
            enabled: hasNoSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   356
            label: 'Apply All'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   357
            itemValue: doApplyAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   358
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   359
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   360
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   361
            label: 'Apply to Conflict or End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   362
            itemValue: doApplyToConflictOrEnd
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   363
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   364
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   365
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   366
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   367
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   368
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   369
            label: 'Delete'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   370
            itemValue: doDelete
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   371
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   372
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   373
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   374
            label: 'Delete to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   375
            itemValue: doDeleteRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   376
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   377
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   378
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   379
            label: 'Delete from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   380
            itemValue: doDeleteFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   381
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   382
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   383
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   384
            label: 'Delete for Class to End'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   385
            itemValue: doDeleteClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   386
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   387
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   388
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   389
            label: 'Delete for Class from Begin'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   390
            itemValue: doDeleteClassFromBeginning
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   391
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   392
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   393
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   394
            label: 'Delete all for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   395
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   396
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   397
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   398
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   399
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   400
            label: 'Delete all for Class && its Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   401
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   402
            isVisible: hasNoMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   403
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   404
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   405
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   406
            label: 'Delete all for Namespace'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   407
            itemValue: doDeleteAllForNamespace
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   408
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   409
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   410
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   411
            label: 'Delete all for Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   412
            itemValue: doDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   413
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   414
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   415
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   416
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   417
            label: 'Delete all for Classes && their Private Classes'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   418
            itemValue: doDeleteClassAndPrivateClassesAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   419
            isVisible: hasMultiSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   420
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   421
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   422
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   423
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   424
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   425
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   426
            label: 'Delete older Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   427
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   428
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   429
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   430
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   431
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   432
            label: 'Delete older Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   433
            itemValue: doDeleteClassSelectorOlder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   434
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   435
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   436
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   437
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   438
            label: 'Delete all Versions of Selected Change'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   439
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   440
            isVisible: hasNoMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   441
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   442
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   443
            enabled: hasSelection
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   444
            label: 'Delete all Versions of all Selected Changes'
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   445
            itemValue: doDeleteClassSelectorAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   446
            isVisible: hasMultiSelectionHolder
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   447
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   448
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   449
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   450
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   451
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   452
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   453
            label: 'Compare with Current'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   454
            itemValue: doCompare
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   455
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   456
         (MenuItem
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   457
            enabled: hasSingleSelection
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   458
            label: 'Copy to Clipboard'
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   459
            itemValue: doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   460
          )
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   461
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   462
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   463
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   464
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   465
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   466
            label: 'Make Change a Patch'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   467
            itemValue: doMakePatch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   468
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   469
         )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   470
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   471
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   472
      )
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   473
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
   474
    "Modified: / 21-11-2016 / 23:46:42 / cg"
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   475
    "Modified: / 21-06-2018 / 09:11:40 / Claus Gittinger"
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   476
!
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
menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   479
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   480
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   483
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   484
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   485
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecFile
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   488
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecFile)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   491
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   492
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   493
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   494
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   495
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   496
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   497
            label: 'Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   498
            itemValue: doCompress
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   499
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   500
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   501
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   502
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   503
            label: 'Compress for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   504
            itemValue: doCompressClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   505
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   506
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   507
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   508
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   509
            label: 'Compress for Class && Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   510
            itemValue: doCompressSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   511
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   512
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   513
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   514
            label: 'Compare and Compress'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   515
            itemValue: doCompareAndCompress
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   519
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   520
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   521
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   522
         (MenuItem
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   523
            label: 'Cleanup'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   524
            itemValue: doCleanup
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
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   528
            label: '-'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   529
            isVisible: notEditingClassSource
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   530
          )
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
   531
         (MenuItem
17093
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   532
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   533
            label: 'Fileout && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   534
            itemValue: doFileoutAndDeleteClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   535
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   536
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   537
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   538
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   539
            label: 'CheckIn && Delete all Changes for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   540
            itemValue: doCheckinAndDeleteClassAll
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
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   545
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   546
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   547
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   548
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   549
            label: 'Save In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   550
            itemValue: doSave
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   551
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   552
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   553
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   554
            label: 'Save to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   555
            itemValue: doSaveRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   556
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   557
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   558
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   559
            label: 'Save for Class to End In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   560
            itemValue: doSaveClassRest
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   561
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   562
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   563
            enabled: hasSingleSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   564
            label: 'Save all for Class In...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   565
            itemValue: doSaveClassAll
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   566
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   567
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   568
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   569
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   570
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   571
            label: 'Writeback ClassFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   572
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   573
            isVisible: editingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   574
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   575
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   576
            label: 'Writeback ChangeFile'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   577
            itemValue: doWriteBack
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   578
            isVisible: notEditingClassSource
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   579
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   580
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   581
            label: '-'
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: 'Update'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   585
            itemValue: doUpdate
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   586
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   587
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   588
            label: '-'
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   591
            label: 'Exit'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   592
            itemValue: menuExit
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
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   596
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   597
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   598
!
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
menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   601
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   602
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   605
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   606
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   607
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecHelp
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   610
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecHelp)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   613
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   614
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   615
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   616
     #(Menu
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   617
        (
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   618
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   619
            label: 'ChangesBrowser Documentation'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   620
            itemValue: openHTMLDocument:
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   621
            argument: 'tools/cbrowser/TOP.html'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   622
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   623
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   624
            label: '-'
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   627
            label: 'About ChangesBrowser...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   628
            itemValue: openAboutThisApplication
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
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   632
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   633
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   634
!
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
menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   637
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   638
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   641
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   642
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   643
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSearch
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   646
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSearch)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   649
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   650
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   651
    ^ 
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   652
     #(Menu
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
            label: 'Class...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   656
            itemValue: findClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   657
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   658
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   659
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   660
            label: 'First for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   661
            itemValue: findFirstForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   662
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   663
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   664
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   665
            label: 'Previous for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   666
            itemValue: findPreviousForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   667
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   668
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   669
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   670
            label: 'Next for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   671
            itemValue: findNextForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   672
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   673
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   674
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   675
            label: 'Last for Class'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   676
            itemValue: findLastForClass
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   677
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   678
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   679
            label: '-'
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
            label: 'Selector...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   683
            itemValue: findSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   684
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   685
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   686
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   687
            label: 'Previous for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   688
            itemValue: findPreviousForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   689
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   690
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   691
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   692
            label: 'Next for Selector'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   693
            itemValue: findNextForSelector
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   694
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   695
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   696
            label: '-'
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
            label: 'String...'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   700
            itemValue: findString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   701
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   702
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   703
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   704
            label: 'Previous with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   705
            itemValue: findPreviousForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   706
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   707
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   708
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   709
            label: 'Next with String'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   710
            itemValue: findNextForString
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   711
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   712
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   713
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   714
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   715
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   716
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   717
            label: 'Previous Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   718
            itemValue: findPreviousDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   719
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   720
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   721
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   722
            label: 'Next Difference'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   723
            itemValue: findNextDifference
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   724
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   725
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   726
            label: '-'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   727
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   728
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   729
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   730
            label: 'Previous Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   731
            itemValue: findPreviousSnapshot
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   732
          )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   733
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   734
            enabled: hasSelection
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   735
            label: 'Next Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   736
            itemValue: findNextSnapshot
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
         (MenuItem
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   739
            label: 'Last Snapshot'
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   740
            itemValue: findLastSnapshot
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
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   744
        nil
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   745
      )
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   746
!
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
menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   749
    "This resource specification was automatically generated
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   750
     by the MenuEditor of ST/X."
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
    "Do not manually edit this!! If it is corrupted,
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   753
     the MenuEditor may not be able to read the specification."
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   754
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   755
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#menuSpecSettings
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   758
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser menuSpecSettings)) startUp
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
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   761
    <resource: #menu>
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   762
3f41554326c7 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
   763
    ^ 
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   764
     #(Menu 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   765
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   766
          label: 'Auto Compare'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   767
          indication: autoCompare
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   768
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   769
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   770
          label: 'Autoload As Required'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   771
          indication: autoloadAsRequired
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   772
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   773
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   774
          label: 'Show Diffs'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   775
          indication: showingDiffs
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   776
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   777
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   778
          label: 'Auto Update'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   779
          indication: autoUpdate
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   780
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   781
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   782
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   783
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   784
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   785
          label: 'Add to ChangeSet when Applying'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   786
          indication: updateChangeSet
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   787
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   788
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   789
          label: 'Ignore Public/Private in Categories (Dolphin code)'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   790
          itemValue: ignorePublicPrivateCategories:
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   791
          isVisible: false
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   792
          indication: ignorePublicPrivateCategories
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   793
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   794
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   795
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   796
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   797
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   798
          label: 'Apply into Package...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   799
          itemValue: setEnforcedPackage
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   800
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   801
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   802
          label: 'Apply into NameSpace...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   803
          itemValue: setEnforcedNameSpace
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   804
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   805
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   806
          label: 'Class Mapping...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   807
          itemValue: doAddToClassMap
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   808
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   809
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   810
          label: '-'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   811
       ) 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   812
       (MenuItem
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   813
          label: 'Settings...'
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   814
          itemValue: openSettingsDialog
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   815
       )
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
   816
     )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   817
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   818
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   819
toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   820
    "This resource specification was automatically generated
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   821
     by the MenuEditor of ST/X."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   822
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   823
    "Do not manually edit this!! If it is corrupted,
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   824
     the MenuEditor may not be able to read the specification."
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   825
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
     MenuEditor new openOnClass:ChangesBrowser andSelector:#toolbarMenuSpec
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   829
     (Menu new fromLiteralArrayEncoding:(ChangesBrowser toolbarMenuSpec)) startUp
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   830
    "
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   831
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   832
    <resource: #menu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   833
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   834
    ^ 
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   835
     #(Menu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   836
        (
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   837
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   838
            activeHelpKey: applyChange
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   839
            enabled: hasSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   840
            label: 'Apply'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   841
            itemValue: doApply
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   842
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   843
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   844
            labelImage: (ResourceRetriever ToolbarIconLibrary executeMethod20x20Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   845
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   846
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   847
            label: '-'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   848
          )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   849
         (MenuItem
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   850
            activeHelpKey: deleteAllForClass
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   851
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   852
            isVisible: canDeleteChanges
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   853
            label: 'Delete all for Class'
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   854
            itemValue: doDeleteClassAll
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   855
            translateLabel: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   856
            isButton: true
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   857
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClass24x24Icon)
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   858
          )
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   859
         (MenuItem
16022
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   860
            activeHelpKey: deleteForClassFromBegin
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   861
            enabled: hasSelectionHolder
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   862
            isVisible: canDeleteChanges
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   863
            label: 'Delete for Class from Beginning'
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   864
            itemValue: doDeleteClassFromBeginning
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   865
            translateLabel: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   866
            isButton: true
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   867
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassFromStart24x24Icon)
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   868
          )
45aca94bf812 #UI_ENHANCEMENT
Claus Gittinger <cg@exept.de>
parents: 15858
diff changeset
   869
         (MenuItem
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   870
            activeHelpKey: deleteForClassToEnd
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   871
            enabled: hasSelectionHolder
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
   872
            isVisible: canDeleteChanges
13991
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   873
            label: 'Delete for Class to End'
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   874
            itemValue: doDeleteClassRest
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   875
            translateLabel: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   876
            isButton: true
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   877
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteClassToEnd24x24Icon)
82c07b571645 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13851
diff changeset
   878
          )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   879
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   880
            label: '-'
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   881
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   882
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   883
            activeHelpKey: deleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   884
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   885
            isVisible: canDeleteChanges
18233
a070f4876720 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18232
diff changeset
   886
            label: 'Delete all versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   887
            itemValue: doDeleteClassSelectorAll
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   888
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   889
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   890
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethod24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   891
          )
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   892
         (MenuItem
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   893
            activeHelpKey: deleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   894
            enabled: hasSelectionHolder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   895
            isVisible: canDeleteChanges
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   896
            label: 'Delete this and older versions of this change'
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   897
            itemValue: doDeleteClassSelectorOlder
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   898
            translateLabel: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   899
            isButton: true
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   900
            labelImage: (ResourceRetriever ToolbarIconLibrary deleteMethodFromStart24x24Icon)
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   901
          )
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   902
         )
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   903
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   904
        nil
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
   905
      )
17565
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   906
fd43100ecd96 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17420
diff changeset
   907
    "Modified: / 07-07-2017 / 12:52:28 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
   908
    "Modified: / 15-02-2019 / 12:28:27 / Claus Gittinger"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   909
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   910
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   911
!ChangesBrowser class methodsFor:'private-changeFile access'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   912
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   913
readXMLChangesFrom:aStream inBackground:inBackground
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   914
    "read an XML source file (format as in campSmalltalk DTD)"
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   915
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   916
    |changeSet|
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   917
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   918
    (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
   919
	Smalltalk loadPackage:'stx:goodies/xml/vw'.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   920
	(XML isNil or:[XML::SourceNodeBuilder isNil or:[XML::XMLParser isNil]]) ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   921
	    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
   922
	]
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   923
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   924
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   925
    changeSet := ChangeSet new.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   926
    XML::SourceScannerNodeBuilder new
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   927
	scanFile:aStream
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   928
	do:[:eachChange |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   929
		changeSet addChange:eachChange.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   930
	].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   931
    ^ changeSet
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   932
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   933
"/    builder := XML::SourceScannerNodeBuilder new.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   934
"/    parser := XML::XMLParser on:aStream.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   935
"/    parser builder:builder.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   936
"/    parser validate:false.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   937
"/    parser scanDocument.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   938
!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   939
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   940
readXMLChangesFromFile:changeFileName inBackground:inBackground
14011
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   941
    |set|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   942
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   943
    changeFileName asFilename readingFileDo:[:s|
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   944
        set := self readXMLChangesFrom:s inBackground:false.
c6a8c747095b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13991
diff changeset
   945
    ].
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   946
    ^ set.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   947
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   948
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   949
!ChangesBrowser class methodsFor:'utilities'!
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   950
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   951
isXMLFile:aFilename
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   952
    |stream first|
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   953
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   954
    stream := aFilename asFilename readStreamOrNil.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   955
    stream isNil ifTrue:[^ false].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   956
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   957
    stream skipSeparators.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   958
    first := stream peek.
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   959
    stream close.
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
   960
    ^ first == $<
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   961
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   962
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   963
methodDefinitionSelectors
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   964
     ^ #(
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   965
           #'methodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   966
           #'privateMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   967
           #'publicMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   968
           #'ignoredMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   969
           #'protectedMethodsFor:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   970
           #'methodsFor:stamp:'           "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   971
           #'commentStamp:prior:'         "/ Squeak support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   972
           #methodsFor                    "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   973
           #categoriesForClass            "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   974
           #'categoriesFor:'              "/ Dolphin support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   975
           #methods                       "/ STV support
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   976
           #publicMethods                 "/ STV / V'Age support
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
   977
           #privateMethods                "/ STV / V'Age support
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   978
           #'methodsForUndefined:'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
   979
        )
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   980
! !
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
   981
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   982
!ChangesBrowser methodsFor:'aspects'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   983
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   984
applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   985
    ^ applyInOriginalNameSpace
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   986
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   987
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   988
applyNotInOriginalNameSpace
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
   989
    ^ BlockValue forLogicalNot:self applyInOriginalNameSpace
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   990
!
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
   991
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   992
autoCompare
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   993
    ^ autoCompare
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
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   996
autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   997
    "enabled/disable automatic update from the change-file (for monitoring)"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   998
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
   999
    ^ autoUpdate
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1000
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1001
    "Created: 3.12.1995 / 14:14:24 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1002
    "Modified: 3.12.1995 / 14:20:45 / cg"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1003
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1004
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1005
autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1006
    ^ autoloadAsRequired
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1007
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1008
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1009
canDeleteChanges
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1010
    "makes the delete buttons in the toolbar visible"
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1011
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1012
    ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1013
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  1014
11048
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
    changeListSelectionHolder isNil ifTrue:[
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1017
        changeListSelectionHolder := nil asValue.
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
    ^ changeListSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1020
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1021
    "Created: / 03-01-2012 / 15:19:25 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1022
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1023
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1024
editingClassSource
3203
44ac975f0993 pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3202
diff changeset
  1025
    ^ editingClassSource ? false
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1026
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1027
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1028
hasMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1029
    ^ self hasSelection and:[self hasSingleSelection not]
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1030
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1031
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1032
hasMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1033
    ^ [ self hasMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1034
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1035
    "Created: / 25-12-2011 / 11:21:52 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1036
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1037
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1038
hasNoMultiSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1039
    ^ self hasMultiSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1040
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1041
11028
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1042
hasNoMultiSelectionHolder
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1043
    ^ [ self hasNoMultiSelection ]
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1044
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1045
    "Created: / 25-12-2011 / 11:21:20 / cg"
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1046
!
Claus Gittinger <cg@exept.de>
parents: 10719
diff changeset
  1047
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1048
hasNoSelection
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1049
    ^ self hasSelection not
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1050
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1051
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1052
hasSelection
17924
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1053
    "true if a change is selected"
e9ec188d9e59 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17899
diff changeset
  1054
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1055
    ^ changeListView hasSelection
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1056
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1057
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1058
hasSelectionHolder
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1059
    ^ BlockValue
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1060
        with:[:v | v notEmptyOrNil ]
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1061
        argument:(self changeListSelectionHolder)
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1062
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1063
    "Created: / 03-01-2012 / 15:15:47 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1064
!
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1065
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1066
hasSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1067
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1068
	^ changeListView selection size == 1
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1069
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1070
    ^ changeListView hasSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1071
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1072
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1073
ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1074
    ^ ignorePublicPrivateCategories
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1075
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1076
    "Created: / 23-09-2011 / 19:42:46 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1077
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1078
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1079
leftCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1080
    "change the string shown above the left codeView (defaults to: 'Current')"
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
    self leftCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1083
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1084
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1085
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1086
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1087
leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1088
    "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
  1089
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1090
    ^ leftCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1091
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1092
    "Created: / 07-12-2017 / 12:28:31 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1093
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1094
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1095
notEditingClassSource
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1096
    ^ self editingClassSource not
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1097
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1098
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1099
notEditingClassSourceAndNotReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1100
    ^ (self editingClassSource or:[readOnly == true]) not
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
notReadOnly
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1104
    ^ (readOnly ~~ true)
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
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1107
readOnly:aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1108
    readOnly := aBoolean
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1109
!
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1110
18136
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1111
rightCodeLabel:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1112
    "change the string shown above the right codeView (defaults to: 'Change')"
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
    self rightCodeLabelHolder value:aString
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1115
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1116
    "Created: / 07-12-2017 / 12:28:37 / cg"
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1117
!
a9d581495061 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18133
diff changeset
  1118
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1119
rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1120
    "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
  1121
    
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1122
    ^ rightCodeLabelHolder
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1123
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1124
    "Created: / 07-12-2017 / 12:28:37 / cg"
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1125
!
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1126
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1127
showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1128
    showingDiffs isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1129
	showingDiffs := self showingDiffsDefault asValue.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1130
	showingDiffs
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1131
	    onChangeEvaluate:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1132
		showingDiffs value ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1133
		    self updateDiffView.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1134
		    self makeDiffViewVisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1135
		] ifFalse:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1136
		    self makeDiffViewInvisible
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1137
		].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1138
		DefaultShowingDiffs := showingDiffs value.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1139
	    ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1140
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1141
    ^ showingDiffs
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1142
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1143
4943
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1144
showingDiffsDefault
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1145
    ^ (DefaultShowingDiffs ? true)
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1146
!
ef848aabe650 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4928
diff changeset
  1147
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1148
theSingleSelection
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1149
    |sel|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1150
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1151
    sel := changeListView selection.
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1152
    changeListView multipleSelectOk ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1153
	sel size == 1 ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1154
	    ^ sel first
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1155
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1156
	^ nil
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1157
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1158
    ^ sel.
3319
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1159
!
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1160
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1161
updateChangeSet
abb70a0e9df2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3304
diff changeset
  1162
    ^ updateChangeSet
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1163
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1164
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1165
!ChangesBrowser methodsFor:'compiler interface'!
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
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1168
    "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
  1169
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1170
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1171
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1172
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1173
4869
22c9555c4580 method category rename
Claus Gittinger <cg@exept.de>
parents: 4868
diff changeset
  1174
!ChangesBrowser methodsFor:'compiler interface-error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1175
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1176
correctableError:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1177
    "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
  1178
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1179
     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
  1180
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1181
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1182
    ShowWarningDialogs == true ifTrue:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1183
        self error:aString position:relPos to:relEndPos from:aCompiler.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1184
    ] ifFalse:[
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1185
        Transcript showCR:aString.
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1186
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1187
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1188
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1189
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1190
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1191
    "compiler notifies us of a warning"
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1192
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1193
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1194
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1195
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1196
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1197
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
  1198
9621
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1199
correctableWarning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1200
    "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
  1201
     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
  1202
     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
  1203
     no corrections allowed here therefore return false"
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
    ^ self correctableError:aString position:relPos to:relEndPos from:aCompiler
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1206
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1207
    "Created: / 02-11-2010 / 13:29:52 / cg"
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1208
!
2353a178d5c7 added: #correctableError:position:to:from:
Claus Gittinger <cg@exept.de>
parents: 9604
diff changeset
  1209
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1210
error:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1211
    "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
  1212
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1213
     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
  1214
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1215
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1216
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1217
    (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
  1218
        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
  1219
    ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1220
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  1221
    "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
  1222
     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
  1223
    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
  1224
        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
  1225
            |box|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1226
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1227
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1228
             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
  1229
            "
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1230
            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
  1231
                          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
  1232
                          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
  1233
                          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
  1234
                          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
  1235
                          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
  1236
                          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
  1237
                          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
  1238
        ].
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
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1241
"/            aCompiler ignoreWarnings.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1242
"/            ^  false
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1243
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  1244
7783
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 == #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
  1246
            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
  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
        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
  1250
            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
  1251
            ^ false
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1252
        ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  1253
        ^  false
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
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
  1256
3436
c4fe19deba58 class based exceptions - abortSignal;
Claus Gittinger <cg@exept.de>
parents: 3406
diff changeset
  1257
    "Modified: / 16.11.2001 / 17:38:10 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1258
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1259
3064
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1260
unusedVariableWarning:aString position:relPos to:relEndPos from:aCompiler
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1261
    "compiler notifies us of a (or some) unused variables;
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1262
     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
  1263
     this method should return true to the compiler if user wants the error
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1264
     to be corrected; false otherwise"
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1265
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1266
    ^ false
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1267
!
20d22fe3d13b unusedVariableWarning
Claus Gittinger <cg@exept.de>
parents: 2965
diff changeset
  1268
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1269
warning:aString position:relPos to:relEndPos from:aCompiler
12656
4197dcfb021c class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12645
diff changeset
  1270
    "compiler notifies us of a warning - ignore it"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1271
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1272
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1273
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1274
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
  1275
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1276
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1277
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1278
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1279
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1280
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1281
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1282
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1283
    view == changeListView ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1284
	(key == #Delete
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1285
	or:[key == #BackSpace
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1286
	or:[key == #Accept
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1287
	or:[key == #Find
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1288
	or:[key == #FindPrev
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1289
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1290
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1291
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1292
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1293
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1294
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  1295
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1296
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1297
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1298
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1299
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1300
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1301
    (key == #Delete) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1302
        self sensor shiftDown ifTrue:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1303
            self doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1304
        ] ifFalse:[
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1305
            self doDelete.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1306
        ].
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1307
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1308
    ].
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1309
    (key == #BackSpace) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1310
        self doDelete. "/ doDeleteAndSelectPrevious.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1311
        ^ self
3249
b6509548b414 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3242
diff changeset
  1312
    ].
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1313
    (key == #Accept) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1314
        self doApply.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1315
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1316
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1317
    (key == #Find) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1318
        self findClass.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1319
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  1320
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1321
    (key == #FindPrev) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1322
        self findPrevious.
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
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1325
    (key == #FindNext) ifTrue:[
13078
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1326
        self findNext.
c7668da112d4 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12973
diff changeset
  1327
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  1328
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1329
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
  1330
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1331
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1332
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1333
3327
b9b51d81a3b9 category included a space
Claus Gittinger <cg@exept.de>
parents: 3319
diff changeset
  1334
!ChangesBrowser methodsFor:'help'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1335
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1336
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1337
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1338
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1339
11346
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1340
    someMessage isNil ifTrue:[
896e31d19d8a changed:
Stefan Vogel <sv@exept.de>
parents: 11275
diff changeset
  1341
        self newLabel:''
11347
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1342
    ] ifFalse:[
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1343
        self label:someMessage
8838de4abaaf changed: #showActivity:
Stefan Vogel <sv@exept.de>
parents: 11346
diff changeset
  1344
    ].
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1345
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  1346
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
  1347
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1348
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1349
4868
2b7bee8c819b method category rename
Claus Gittinger <cg@exept.de>
parents: 4857
diff changeset
  1350
!ChangesBrowser methodsFor:'initialization & release'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1351
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1352
autoCompareChanged
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1353
    "sent from the compare-toggle"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1354
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1355
    |doCompare|
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1356
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1357
    self askIfChangesAreToBeWrittenBack.
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1358
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1359
    doCompare := autoCompare value.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1360
    DefaultAutoCompare := doCompare.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1361
    self setupTabSpec.
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1362
    doCompare ifTrue:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1363
        self doUpdate
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1364
    ] ifFalse:[
13373
7c3289749e0a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13343
diff changeset
  1365
        changeListView invalidate. "/ clear; redraw.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1366
    ]
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1367
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1368
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1369
changeListMenu
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1370
    "return the menu for the change (upper) list"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  1371
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1372
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  1373
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
  1374
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1375
    |items m replNext replPrev sel|
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1376
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1377
    self sensor ctrlDown ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1378
        "/ notice - findNext/prev shortKeys will search for the same thing again.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1379
        items := #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1380
                          ('Search Class...'              findClass               #Find       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1381
                          ('Previous for this Class'      findPreviousForClass    #FindPrevClass      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1382
                          ('Next for this Class'          findNextForClass        #FindNextClass      )
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 Selector...'           findSelector                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1385
                          ('Previous with this Selector'  findPreviousForSelector #FindPrevSelector   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1386
                          ('Next with this Selector'      findNextForSelector     #FindNextSelector   )
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
                          ('Search String...'             findString                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1389
                          ('Previous with this String'    findPreviousForString   #FindPrevString   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1390
                          ('Next with this String'        findNextForString       #FindNextString   )
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
                          ('Previous Snapshot'            findPreviousSnapshot    #FindPrevSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1393
                          ('Next Snapshot'                findNextSnapshot        #FindNextSnapshot   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1394
                 ).
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1395
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1396
        lastSearchType == #selector ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1397
            replNext := #FindNextSelector.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1398
            replPrev := #FindPrevSelector.
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 == #snapshot ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1401
                replNext := #FindNextSnapshot.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1402
                replPrev := #FindPrevSnapshot.
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
                lastSearchType == #string ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1405
                    replNext := #FindNextString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1406
                    replPrev := #FindPrevString.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1407
                ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1408
                    replNext := #FindNextClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1409
                    replPrev := #FindPrevClass.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1410
                ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1411
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1412
        ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1413
        items := items deepCopy.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1414
        items do:[:each |
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1415
                        each replaceAll:replNext with:#FindNext.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1416
                        each replaceAll:replPrev with:#FindPrev.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1417
                        each replaceAny:#(FindNextClass FindPrevClass
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1418
                                          FindNextSelector FindPrevSelector
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1419
                                          FindNextSnapshot FindPrevSnapshot
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1420
                                          FindNextString FindPrevString)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1421
                             with:nil.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1422
                 ].
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1423
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1424
        ^ PopUpMenu itemList:items resources:resources.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1425
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  1426
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1427
    items := #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1428
                      ('Apply'                        doApply                    Accept)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1429
                      ('Apply to End'                 doApplyRest                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1430
                      ('Apply from Begin'             doApplyFromBeginning             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1431
                      ('Apply for Class to End'       doApplyClassRest                 )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1432
                      ('Apply for Class from Begin'   doApplyClassFromBeginning        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1433
                      ('Apply All'                    doApplyAll                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1434
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1435
                      ('Delete'                       doDelete                   Delete)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1436
                      ('Delete to End'                doDeleteRest                     )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1437
                      ('Delete for Class to End'      doDeleteClassRest                )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1438
                      ('Delete for Class from Begin'  doDeleteClassFromBeginning       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1439
             ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1440
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1441
    (self hasSelection and:[self hasSingleSelection not]) ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1442
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1443
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1444
                          ('Delete all for Classes'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1445
                          ('Delete all for Classes & their Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1446
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1447
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1448
        items := items ,
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1449
                 #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1450
                          ('Delete all for Class'         doDeleteClassAll                 )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1451
                          ('Delete all for Class & its Private Classes' doDeleteClassAndPrivateClassesAll )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1452
                 ).
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1453
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1454
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1455
    items := items ,
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1456
             #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1457
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1458
                      ('Compress'                     doCompress                       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1459
                      ('Compress for Class'           doCompressClass                  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1460
                      ('Compare and Compress'         doCompareAndCompress             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1461
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1462
                      ('Compare with current Version' doCompare                        )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1463
                      ('Browse Class'                 doBrowse                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1464
                      ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1465
                      ('Make Change a Patch'          doMakePatch                      )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1466
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1467
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1468
    editingClassSource ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1469
        items := items , #(
15187
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1470
                      ('Fileout & Delete all for Class' doFileoutAndDeleteClassAll     )
2937c35632c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15136
diff changeset
  1471
                      ('CheckIn & Delete all for Class' doCheckinAndDeleteClassAll     )
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1472
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1473
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1474
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1475
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1476
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1477
                      ('Save in...'                  doSave           )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1478
                      ('Save to End In...'           doSaveRest       )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1479
                      ('Save for Class to End In...' doSaveClassRest  )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1480
                      ('Save all for Class In...'    doSaveClassAll   )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1481
                      ('-'                                            )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1482
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1483
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1484
    editingClassSource ifTrue:[
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 ClassFile'  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
    ] ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1489
        items := items , #(
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1490
                      ('Writeback ChangeFile' doWriteBack )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1491
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1492
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1493
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
  1494
    items := items , #(
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1495
                  ('-'                                                             )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1496
                  ('Update'                       doUpdate                         )
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1497
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1498
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
  1499
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1500
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1501
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1502
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1503
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1504
    self hasSelection ifFalse:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1505
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1506
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1507
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1508
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1509
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
  1510
    ] ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1511
        sel := self theSingleSelection.
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1512
        sel isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1513
            "/ multiple selections
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1514
            m disableAll:#(doApplyClassRest doApplyRest doDeleteClassRest doDeleteRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1515
                           doDeleteClassFromBeginning
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1516
                           doCompressClass doCompare
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1517
                           doSaveClassAll doSaveClassRest doSaveRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1518
                           doFileoutAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1519
        ] ifFalse:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1520
            (self classNameOfChange:sel) isNil ifTrue:[
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1521
                m disableAll:#(doApplyClassRest doDeleteClassRest
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1522
                               doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1523
                               doCompressClass doCompare doMakePatch
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1524
                               doSaveClassAll doSaveClassRest doBrowse
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1525
                               doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll)
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1526
            ]
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1527
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1528
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1529
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1530
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1531
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1532
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1533
    "/
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1534
    autoUpdate value ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1535
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1536
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1537
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1538
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1539
    ].
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1540
    readOnly == true ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1541
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1542
                       doDeleteClassAndPrivateClassesAll doCompress
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1543
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1544
                       doWriteBack doSaveBack doUpdate
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1545
                       doApplyAll doApplyRest)
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1546
    ].
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1547
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1548
    self hasSelection ifTrue:[
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1549
        m disable:#doApplyAll
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  1550
    ].
3224
b2f3a2a0bc80 readOnly flag added (for method-versions browsing)
Claus Gittinger <cg@exept.de>
parents: 3211
diff changeset
  1551
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1552
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1553
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1554
    "Modified: / 06-09-1995 / 17:14:22 / claus"
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  1555
    "Modified: / 06-10-2006 / 11:17:06 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1556
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1557
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1558
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1559
    "destroy the receiver; make certain, that boxes are destroyed too"
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
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1562
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1563
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1564
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
  1565
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1566
initialize
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1567
    |panel infoLabel v upperFrame buttonPanel  mH  tmH
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1568
     checkBox oldStyle codeViewBox lbl applyInOriginal|
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1569
18252
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1570
    leftCodeLabelHolder := (self class resources string:'Current') asValue.
68c1cc82fda5 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18233
diff changeset
  1571
    rightCodeLabelHolder := (self class resources string:'Change_subst') asValue.    
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1572
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1573
    "/ oldStyle := true.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1574
    oldStyle := false.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1575
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1576
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1577
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  1578
    changeFileName := ObjectMemory nameForChanges.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  1579
    encodingIfKnown := nil.
17968
f29d9da436a7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17953
diff changeset
  1580
    autoCompare := (DefaultAutoCompare ? true) asValue.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1581
    autoCompare onChangeSend:#autoCompareChanged to:self.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1582
    autoUpdate := false asValue.
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  1583
    autoloadAsRequired := false asValue.
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  1584
    ignorePublicPrivateCategories := false asValue.
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1585
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1586
    applyInOriginal := true.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1587
    KeepEnforcedNameSpace == true ifTrue:[
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1588
        enforcedNameSpace := LastEnforcedNameSpace.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1589
        applyInOriginal := false.
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1590
    ].
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1591
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1592
    applyInOriginalNameSpace := applyInOriginal asValue.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  1593
    applyInOriginalNameSpace
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1594
        onChangeEvaluate:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1595
            autoCompare value ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1596
                self doUpdate
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1597
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1598
        ].
9168
328254a6f55e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9055
diff changeset
  1599
4897
5ccc18a82ad0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4896
diff changeset
  1600
    updateChangeSet := true "false" asValue.
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  1601
    classesNotToBeAutoloaded := Set new.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  1602
1099
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 is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1605
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1606
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1607
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
  1608
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1609
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1610
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1611
        menuPanel := MenuPanel in:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1612
        "/ menuPanel level:1.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1613
        menuPanel verticalLayout:false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1614
        menuPanel receiver:self.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1615
        menuPanel menu:(self pullDownMenu).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1616
8164
ee17624160a6 added preferredWidth & preferredHeight
Claus Gittinger <cg@exept.de>
parents: 8102
diff changeset
  1617
        mH := menuPanel preferredHeight.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1618
        menuPanel origin:(0.0 @ 0.0) corner:(1.0 @ (mH)).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1619
        mH := mH + 1.
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1620
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1621
        toolbarMenu := MenuPanel in:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1622
        toolbarMenu verticalLayout:false.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1623
        toolbarMenu receiver:self.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1624
        toolbarMenu menu:(self toolbarMenu).
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  1625
        toolbarMenu helpSpecProvider:self. "/ for helpTexts
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1626
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1627
        tmH := toolbarMenu preferredHeight.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1628
        toolbarMenu origin:(0.0 @ mH) corner:(1.0 @ (mH+tmH)).
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1629
        mH := mH + tmH + 1.
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1630
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1631
        toolbarMenu delegate:self.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1632
    ] ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1633
        mH := 0.0
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1634
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1635
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1636
    panel := VariableVerticalPanel in:self. 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1637
    "/ panel origin:(0.0 @ mH) corner:(1.0 @ 1.0)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1638
    panel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1639
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1640
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1641
                    topFraction:0.0 offset:mH
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1642
                    bottomFraction:1.0 offset:-30).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1643
    panel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1644
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1645
    infoLabel := Label in:self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1646
    infoLabel layout:(LayoutFrame
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1647
                    leftFraction:0.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1648
                    rightFraction:1.0 offset:0
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1649
                    topFraction:1.0 offset:-28
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1650
                    bottomFraction:1.0 offset:-2).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1651
    infoLabel borderWidth:0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1652
    infoLabel sizeFixed:true.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1653
    infoLabel level:-1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1654
    infoLabel adjust:#left.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1655
    infoLabel labelChannel:(infoHolder := '' asValue).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1656
    
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1657
    upperFrame := panel.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1658
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1659
        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
  1660
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1661
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1662
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1663
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1664
        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
  1665
    ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1666
        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
  1667
    ].
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1668
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1669
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1670
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1671
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  1672
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1673
    oldStyle ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1674
        changeListView multipleSelectOk:true.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  1675
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1676
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1677
    oldStyle ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1678
        buttonPanel := VerticalPanelView in:upperFrame.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1679
        buttonPanel origin:(0.75 @ 0.0) corner:(1.0 @ 1.0).
19237
f0c43f38c554 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19127
diff changeset
  1680
        buttonPanel horizontalLayout:#leftSpace verticalLayout:#topSpace.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1681
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1682
        checkBox := CheckBox new model:autoCompare.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1683
        checkBox label:(resources string:'Auto Compare').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1684
        checkBox action:[:val | autoCompare value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1685
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1686
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1687
        checkBox := CheckBox new model:autoUpdate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1688
        checkBox label:(resources string:'Auto Update').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1689
        checkBox action:[:val | autoUpdate value:val].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1690
        buttonPanel addSubView:checkBox.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1691
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1692
        checkBox := CheckBox new.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1693
        checkBox label:(resources stringWithCRs:'Apply in original NameSpace').
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1694
        checkBox model:applyInOriginalNameSpace.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1695
        buttonPanel addSubView:checkBox.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1696
    ].
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1697
3090
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1698
"/    protectExistingMethods := CheckBox new.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1699
"/    protectExistingMethods label:(resources string:'Protect existing code' withCRs).
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1700
"/    protectExistingMethods model:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1701
"/    buttonPanel addSubView:protectExistingMethods.
2306c68dfee1 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 3071
diff changeset
  1702
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1703
    codeViewBox := View in:panel.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1704
    codeViewBox origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1705
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1706
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1707
    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
  1708
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
  1709
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1710
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1711
    diffViewBox := View in:codeViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1712
    diffViewBox origin:(0.0 @ 0.0) corner:(1.0 @ 1.0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1713
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1714
    lbl := Label label:leftCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1715
    lbl labelChannel:leftCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1716
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1717
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1718
                        rightFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1719
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1720
                        bottomFraction:0.0 offset:20).
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1721
    lbl := Label label:rightCodeLabelHolder value in:diffViewBox.
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1722
    lbl labelChannel:rightCodeLabelHolder.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1723
    lbl layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1724
                        leftFraction:0.5 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1725
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1726
                        topFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1727
                        bottomFraction:0.0 offset:20).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1728
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1729
"/    diffView := DiffTextView in:diffViewBox.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1730
"/    diffView layout:(LayoutFrame
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1731
"/                        leftFraction:0.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1732
"/                        rightFraction:1.0 offset:0
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1733
"/                        topFraction:0.0 offset:20
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1734
"/                        bottomFraction:1.0 offset:0).
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1735
8102
8c04b140b10d use new DiffCodeView
Claus Gittinger <cg@exept.de>
parents: 8026
diff changeset
  1736
    v := HVScrollableView for:DiffCodeView miniScrollerH:true miniScrollerV:false in:diffViewBox.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1737
    v layout:(LayoutFrame
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1738
                        leftFraction:0.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1739
                        rightFraction:1.0 offset:0
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1740
                        topFraction:0.0 offset:20
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1741
                        bottomFraction:1.0 offset:0).
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1742
    diffView := v scrolledView.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1743
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1744
    self showingDiffs value ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  1745
        self makeDiffViewInvisible
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1746
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  1747
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1748
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1749
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1750
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1751
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1752
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1753
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1754
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1755
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1756
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1757
    "Modified: / 27-03-1997 / 11:07:07 / stefan"
17848
ab289c04f89c #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17838
diff changeset
  1758
    "Modified: / 07-12-2017 / 12:28:09 / cg"
18429
9b4f1bf498ce #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18252
diff changeset
  1759
    "Modified: / 24-09-2018 / 22:50:40 / Claus Gittinger"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1760
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1761
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1762
postRealize
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1763
    self setupTabSpec.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1764
    self readChangesFileInBackground:true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  1765
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  1766
    changeListView action:[:lineNrOrCollection | self changeSelection:lineNrOrCollection].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1767
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1768
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
  1769
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1770
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1771
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1772
pullDownMenu
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1773
    "return the top (pullDown) menu"
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1774
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1775
    <resource: #programMenu>
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1776
3330
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1777
    ^ self menuFromSpec:self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1778
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1779
"/    |m|
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1780
"/
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1781
"/    m := self class menuSpec.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1782
"/    m := m decodeAsLiteralArray.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1783
"/    m receiver:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1784
"/    m findGuiResourcesIn:self.
b6085cb81010 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3327
diff changeset
  1785
"/    ^ m.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1786
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1787
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1788
setupTabSpec
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1789
    autoCompare value ifTrue:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1790
        tabSpec positions:#(0  0.15  7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1791
    ] ifFalse:[
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1792
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1793
        "/ set tabs to hide compare-column
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1794
        "/
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1795
        tabSpec positions:#(-1  0    7   9.5 ).
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1796
    ]
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1797
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  1798
    "Modified: / 10-07-2010 / 10:59:49 / cg"
3534
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1799
!
917a8a0deb34 search next difference;
Claus Gittinger <cg@exept.de>
parents: 3512
diff changeset
  1800
10681
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1801
toolbarMenu
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1802
    "return the top (pullDown) menu"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1803
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1804
    <resource: #programMenu>
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1805
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1806
    ^ self menuFromSpec:self class toolbarMenuSpec.
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1807
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1808
    "Created: / 07-09-2011 / 16:03:41 / cg"
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1809
!
Claus Gittinger <cg@exept.de>
parents: 9888
diff changeset
  1810
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1811
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1812
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1813
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1814
    (what == #aboutToQuit) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1815
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1816
         smalltalk is about to shut down -
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1817
         - if change list was modified, ask user and save if requested.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1818
        "
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1819
        anyChanges ifTrue:[
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1820
            self raiseDeiconified.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1821
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1822
            box := YesNoBox new.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1823
            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
  1824
            box okText:(resources string:'Write') noText:(resources string:'Don''t write').
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1825
            box yesAction:[self writeBackChanges]
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1826
                 noAction:[].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1827
            box showAtPointer.
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1828
            box destroy
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1829
        ].
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  1830
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1831
    ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1832
8558
a85166102cb7 Wait for #aboutToQuit change message instead of obsolete #aboutToExit
Stefan Vogel <sv@exept.de>
parents: 8515
diff changeset
  1833
    super update:what with:aParameter from:changedObject
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
  1834
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1835
    "Created: / 15-06-1996 / 15:26:30 / cg"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1836
    "Modified: / 24-08-1999 / 09:45:06 / stefan"
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  1837
    "Modified: / 03-01-2012 / 15:23:13 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1838
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1839
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1840
!ChangesBrowser methodsFor:'menu actions'!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  1841
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1842
doAddToClassMap
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1843
    "add a class name mapping"
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1844
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1845
    |mapping initialNameInChangeFile initialNameInImage|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1846
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1847
    [:exit |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1848
        self withSelectedChangesDo:[:changeNr |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1849
            | className |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1850
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1851
            className := self classNameOfChange:changeNr.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1852
            className notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1853
                initialNameInChangeFile := className.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1854
                exit value:nil.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1855
            ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1856
        ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1857
    ] valueWithExit.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1858
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1859
    initialNameInChangeFile notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1860
        [:exit |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1861
            Smalltalk allClassesDo:[:cls |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1862
                (cls name includesString:initialNameInChangeFile) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1863
                    initialNameInImage := cls name.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1864
                    exit value:nil.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1865
                ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1866
            ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1867
        ] valueWithExit.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1868
    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1869
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1870
    mapping := Dialog 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1871
                    request:'Name in Changefile:' initialAnswer:initialNameInChangeFile
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1872
                    and:'Name in Image' initialAnswer:initialNameInImage
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1873
                    label:'Add Classname Mapping'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1874
    mapping isNil ifTrue:[^ self].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1875
    classNameMap isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1876
        classNameMap := Dictionary new
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1877
    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1878
    classNameMap at:mapping first put:mapping second
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1879
!
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  1880
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1881
doApply
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1882
    "user wants a change to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1883
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1884
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1885
        (self applyChange:changeNr) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1886
            ^ self "/ cancel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1887
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1888
        self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1889
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1890
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1891
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1892
doApplyAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1893
    "user wants all changes to be applied"
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 withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1896
        |lastNr "{ Class: SmallInteger }" |
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
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1899
        lastNr := self numberOfChanges.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1902
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1903
        multipleApply := lastNr > 1.
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
        1 to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1906
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1907
            self applyChange:changeNr
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
        self autoSelectLast
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1910
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1911
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1912
    "Modified: 21.1.1997 / 22:26:30 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1913
!
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
doApplyClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1916
    "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
  1917
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1918
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1919
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1920
         lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1921
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1922
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1923
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1924
            self clearCodeView.
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
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1927
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1928
            multipleApply := changeNr ~= 1.
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
            1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1931
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1932
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1933
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1934
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1935
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1936
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1937
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1938
            self autoSelect:changeNr+1.
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
    ]
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
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1943
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1944
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1945
doApplyClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1946
    "user wants all changes for this class from changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1947
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1948
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1949
        |thisClassName classNameToApply lastChange
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1950
         lastNr "{ Class: SmallInteger }" |
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
        classNameToApply := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1953
        classNameToApply notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1954
            self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1955
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1956
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1957
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1958
            "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1959
             ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1960
            multipleApply := (lastNr - changeNr) > 1.
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
            changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1963
                thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1964
                thisClassName = classNameToApply ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1965
                    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1966
                    self applyChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1967
                    lastChange := changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1968
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1969
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1970
            self autoSelect:lastChange.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1971
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1972
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1973
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1974
    "Modified: 21.1.1997 / 22:26:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1975
!
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
doApplyFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1978
    "user wants all changes from 1 to changeNr to be applied"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1979
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1980
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1981
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1982
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1983
        self clearCodeView.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1986
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1987
        multipleApply := changeNr ~= 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1988
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1989
        1 to:changeNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1990
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1991
            self applyChange:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1992
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1993
        self autoSelect:changeNr+1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1994
    ]
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1997
doApplyRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1998
    "apply all changes from changeNr to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  1999
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2000
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2001
        |lastNr "{ Class: SmallInteger }" |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2002
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2003
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2004
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2005
        lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2006
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2007
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2008
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2009
        multipleApply := (lastNr - changeNr) > 1.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2010
        AbortAllOperationRequest handle:[:ex |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2011
            ex return
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2012
        ] do:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2013
            changeNr to:lastNr do:[:changeNr |
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2014
                changeListView setSelection:changeNr.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2015
                self applyChange:changeNr
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2016
            ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2017
            self autoSelect:self numberOfChanges.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  2018
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2019
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2020
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2021
    "Modified: 21.1.1997 / 22:25:29 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2022
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2023
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2024
doApplyToConflictOrEnd
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2025
    "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
  2026
     or the end."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2027
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2028
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2029
        |lastNr "{ Class: SmallInteger }"|
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
        self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2032
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2033
        lastNr := self numberOfChanges.
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
        "if we apply multiple changes, and an error occurs,
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2036
         ask the user if all operations should be aborted..."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2037
        multipleApply := (lastNr - changeNr) > 1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2038
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2039
        changeNr to:lastNr do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2040
            | cls sel |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2041
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2042
            changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2043
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2044
            ((cls := self classOfChange:changeNr ifAbsent:[:className| nil]) notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2045
            and:[(sel := self selectorOfMethodChange:changeNr) notNil])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2046
            ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2047
                (cls includesSelector:sel) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2048
                    self autoSelect:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2049
                    ^ self
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
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2052
            self applyChange:changeNr
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
        self autoSelect:self numberOfChanges.
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
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2057
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2058
doBrowse
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2059
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2060
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2061
    self withSingleSelectedChangeDo:[:changeNr |
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2062
        |cls|
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2063
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2064
        cls := self classOfChange:changeNr.
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2065
        cls notNil ifTrue:[
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2066
            SystemBrowser default
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2067
                openInClass:cls
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2068
                selector:(self selectorOfMethodChange:changeNr)
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2069
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2070
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2071
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2072
    "Modified: / 01-09-2017 / 14:20:00 / cg"
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2075
doBrowseImplementors
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2076
    "open an implementors-browser"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2077
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2078
    |changeNr initial selector|
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
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2081
        initial := self selectorOfMethodChange:changeNr.
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2084
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2085
                    request:'Selector to browse implementors of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2086
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2087
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2088
        SystemBrowser default browseImplementorsMatching:selector.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2089
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2090
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2091
    "Modified (format): / 01-09-2017 / 14:20:06 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2092
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2093
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2094
doBrowseSenders
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2095
    "user wants a browser on the class of a change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2096
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2097
    |changeNr initial selector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2098
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2099
    (changeNr := self theSingleSelection) notNil ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2100
        initial := self selectorOfMethodChange:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2101
    ].
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
    selector := Dialog
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2104
                    request:'Selector to browse senders of:'
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2105
                    initialAnswer:(initial ? '').
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2106
    selector size ~~ 0 ifTrue:[
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2107
        SystemBrowser default browseAllCallsOn:selector asSymbol.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2108
    ]
17666
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2109
7529a0d25290 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17600
diff changeset
  2110
    "Modified: / 01-09-2017 / 14:20:13 / cg"
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2113
doCheckinAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2114
    "first checkin the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2115
     for it."
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
    |classes answer logTitle checkinInfo|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2118
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2119
"/    self theSingleSelection isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2120
"/        ^ self information:'Only possible if a single change is selected.'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2121
"/    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2122
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2123
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2124
        classes := IdentitySet new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2125
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2126
        self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2127
            | className class |
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
            className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2130
            className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2131
                class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2132
                class isNil ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2133
                    self proceedableError:'oops - no class: ', className.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2134
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2135
                class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2136
                    class := class theNonMetaclass.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2137
                    (classes includes:class) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2138
                        class isPrivate ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2139
                            (classes includes:class owningClass) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2140
                                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
  2141
                                                                    bindWith:class owningClass name allBold) withCRs.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2142
                                answer isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2143
                                answer ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2144
                                    classes add:class owningClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2145
                                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2146
                            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2147
                        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2148
                            classes add:class
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2149
                        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2150
                    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2151
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2152
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2153
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2154
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2155
        classes size == 1 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2156
            logTitle := classes first name.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2157
        ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2158
            logTitle := '%1 classes' bindWith:classes size.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2159
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2160
        checkinInfo := SourceCodeManagerUtilities default
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2161
                        getCheckinInfoFor:logTitle
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2162
                        initialAnswer:nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2163
        checkinInfo isNil ifTrue:[^ self ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2164
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2165
        self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2166
        classes do:[:eachClass |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2167
            (SourceCodeManagerUtilities default checkinClass:eachClass withInfo:checkinInfo)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2168
                ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2169
                    self silentDeleteChangesForClassAndPrivateClasses:eachClass name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2170
                           from:1 to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2171
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2172
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2173
        self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2174
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2175
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2176
    "Modified: / 06-09-1995 / 17:11:16 / claus"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2177
    "Modified: / 17-11-2001 / 14:21:13 / cg"
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  2178
    "Modified: / 24-05-2018 / 14:55:14 / Claus Gittinger"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2179
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2180
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2181
doCleanup
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2182
    "cleanup the changefile/changeset.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2183
     actions done:
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2184
     - 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
  2185
       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
  2186
       Then delete it incl. previous versions of it."
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
    |numChanges nextChangeNr changeNr changeSelector changeClass numDeleted|
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
    numChanges := self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2191
    self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2192
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2193
    self withWaitCursorDo:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2194
        "/ find the last method change which is equal
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2195
        changeNr := numChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2196
        [changeNr > 0] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2197
            nextChangeNr := changeNr - 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2198
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2199
            (changeClass := self classOfChange:changeNr ifAbsent:nil) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2200
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2201
                (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2202
                    (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2203
                        (changeSelector := self selectorOfMethodCategoryChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2204
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2205
                                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
  2206
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2207
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2208
                                   silentDeleteMethodCategoryChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2209
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2210
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2211
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2212
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2213
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2214
                        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2215
                    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2216
                ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2217
                    (changeSelector := self selectorOfMethodChange:changeNr) notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2218
                        (self compareChange:changeNr showResult:false) == true ifTrue:[ 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2219
                            "/ 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
  2220
                            "/ 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
  2221
                            (ChangeSet current includesChangeForClass:changeClass selector:changeSelector) ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2222
                                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
  2223
                                self windowGroup repairDamage.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2224
                                numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2225
                                   silentDeleteChangesFor:changeClass name selector:changeSelector
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2226
                                   from:1 to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2227
                                "/ self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2228
                                "/ self doDeleteClassSelectorOlder.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2229
                                nextChangeNr := (changeNr - numDeleted + 1) min:self numberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2230
                            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2231
                        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2232
                    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2233
                ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2234
            ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2235
            changeNr := nextChangeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2236
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2237
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2238
    self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2239
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2240
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2241
doCompare
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2242
    "compare change with current system version"
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
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2245
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2246
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2247
        self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2248
            self compareChange:changeNr
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
        self newLabel:''
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
    "Modified: 24.2.1996 / 19:37:19 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2254
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2255
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2256
doCompareAndCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2257
    "remove all changes, which are equivalent to the current image version"
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
    |toDelete|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2260
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2261
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2262
    toDelete := OrderedCollection new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2263
    self withExecuteCursorDo:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2264
        1 to:self numberOfChanges do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2265
            (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2266
                toDelete add:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2267
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2268
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2269
    ].
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
    toDelete reverseDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2272
        self silentDeleteChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2273
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2274
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2275
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2276
     scroll back a bit, if we are left way behind the list
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2277
    "
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2278
    changeListView firstLineShown > self numberOfChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2279
        changeListView makeLineVisible:self numberOfChanges
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2280
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2281
    self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2282
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2283
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2284
    classesNotToBeAutoloaded removeAll.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2285
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2286
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2287
doCompress
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2288
    "compress the change-set; this replaces multiple method-changes by the last
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2289
     (i.e. the most recent) change"
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
    self compressForClass:nil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2292
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2293
    "Modified: / 29.10.1997 / 01:03:26 / 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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2296
doCompressClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2297
    "compress changes for the selected class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2298
     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
  2299
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2300
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2301
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2302
    self selectedClassNames do:[:classNameToCompress |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2303
        self compressForClass:classNameToCompress.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2304
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2305
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2306
    "Created: / 29.10.1997 / 01:05:16 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2307
    "Modified: / 19.11.2001 / 21:55:17 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2308
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2309
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2310
doCompressSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2311
    "compress changes for the selected class & selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2312
     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
  2313
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2314
    |classSelectorPairs|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2315
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2316
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2317
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2318
    classSelectorPairs := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2319
    self withSelectedChangesDo:[:changeNr |
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2320
        | classNameToCompress selector |
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2321
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2322
        classNameToCompress := self realClassNameOfChange:changeNr.
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2323
        classNameToCompress notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2324
            selector := self selectorOfMethodChange:changeNr.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2325
            selector notNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2326
                classSelectorPairs add:(classNameToCompress -> selector).
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2327
            ]
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2328
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2329
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2330
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2331
    classSelectorPairs do:[:pair |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2332
        self compressForClass:(pair key) selector:(pair value).
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2333
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2334
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2335
    "Created: / 19.11.2001 / 21:50:59 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2336
    "Modified: / 19.11.2001 / 22:10:08 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2337
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2338
17096
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2339
doCopyToClipboard
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2340
    "user wants a change text to be copied to the clipboard"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2341
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2342
    |text|
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2343
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2344
    self withSingleSelectedChangeDo:[:changeNr |
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2345
        text := self sourceOfMethodChange:changeNr.
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2346
    ].
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2347
    text notEmptyOrNil ifTrue:[
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2348
        self window setClipboardText:text
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2349
    ]
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2350
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2351
    "Created: / 21-11-2016 / 23:38:11 / cg"
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2352
!
e86120cc8ba3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17094
diff changeset
  2353
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2354
doDelete
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2355
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2356
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2357
    |rangeEnd rangeStart firstDeleted|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2358
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2359
    changeListView selection size <= 5 ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2360
        self withSelectedChangesReverseDo:[:changeNr |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2361
            self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2362
            self autoSelectOrEnd:changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2363
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2364
        self showNumberOfChanges.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2365
        ^ self
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2366
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2367
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2368
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2369
        rangeEnd isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2370
            rangeEnd := rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2371
        ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2372
            (changeNr = (rangeEnd + 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2373
                rangeEnd := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2374
            ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2375
                (changeNr = (rangeStart - 1)) ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2376
                    rangeStart := changeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2377
                ] ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2378
                    self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2379
                    firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2380
                    rangeStart := rangeEnd := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2381
                ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2382
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2383
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2384
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2385
    rangeStart notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2386
        self deleteChangesFrom:rangeStart to:rangeEnd.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2387
        firstDeleted := (firstDeleted ? rangeStart) min:rangeStart.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2388
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2389
    self autoSelectOrEnd:firstDeleted.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2390
    self showNumberOfChanges
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2391
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2392
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2393
doDeleteAllForNamespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2394
    "delete all changes for classes with same namespace as currently selected change"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2395
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2396
    |namespacesToDelete lastChangeNr overAllNumDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2397
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2398
    lastChangeNr := -1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2399
    namespacesToDelete := Set new.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2400
    self withSelectedChangesDo:[:changeNr |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2401
        |namespaceToDelete|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2402
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2403
        namespaceToDelete := self namespaceOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2404
        namespaceToDelete notNil ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2405
            namespacesToDelete add:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2406
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2407
        lastChangeNr := lastChangeNr max:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2408
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2409
    namespacesToDelete isEmpty ifTrue:[^ self].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2410
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2411
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2412
    self unselect.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2413
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2414
    self withExecuteCursorDo:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2415
        namespacesToDelete do:[:namespaceToDelete |
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2416
            |numDeletedBefore|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2417
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2418
            self 
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2419
                silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2420
                from:lastChangeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2421
                to:(self numberOfChanges).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2422
            numDeletedBefore := self
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2423
                                   silentDeleteChangesForNamespace:namespaceToDelete
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2424
                                   from:1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2425
                                   to:(lastChangeNr-1).
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2426
            lastChangeNr := lastChangeNr - numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2427
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2428
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2429
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2430
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2431
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2432
    self autoSelectOrEnd:lastChangeNr.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2433
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  2434
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2435
doDeleteAndSelectPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2436
    "delete currently selected change(s)"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2437
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2438
    self withSelectedChangesReverseDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2439
        self deleteChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2440
        self autoSelectOrEnd:changeNr-1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2441
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2442
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2443
    "/mh - don't we need a 
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2444
    "/  self setChangeList
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2445
    "/ here?
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2446
    self showNumberOfChanges
11499
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
doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2450
    "delete all changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2451
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2452
    |classNamesToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2453
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2454
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2455
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2456
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2457
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2458
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2459
        classNameToDelete := self classNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2460
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2461
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2462
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2463
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2464
    ].
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
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2467
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2468
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2469
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2470
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2471
            |numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2472
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2473
            self silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2474
                                   from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2475
                                     to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2476
            numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2477
                                   silentDeleteChangesFor:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2478
                                   from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2479
                                   to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2480
            lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2481
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2482
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2483
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2484
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2485
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2486
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2487
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2488
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2489
    "Modified: / 28.1.1998 / 20:42:14 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2492
doDeleteClassAndPrivateClassesAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2493
    "delete all changes with same class and private classes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2494
     as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2495
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2496
    |lastChangeNr classNamesToDelete overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2497
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2498
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2499
    classNamesToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2500
    self withSelectedChangesDo:[:changeNr |
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2501
        |classNameToDelete|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2502
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2503
        classNameToDelete := self ownerClassNameOfChange:changeNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2504
        classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2505
            classNamesToDelete add:classNameToDelete.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2506
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2507
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2508
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2509
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2510
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2511
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2512
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2513
    self withExecuteCursorDo:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2514
        classNamesToDelete do:[:classNameToDelete |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2515
            | changeNr numDeletedBefore|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2516
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2517
            classNameToDelete notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2518
                changeListView setSelection:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2519
                self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2520
                                       from:lastChangeNr
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2521
                                         to:(self numberOfChanges).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2522
                numDeletedBefore := self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2523
                                       silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2524
                                       from:1
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2525
                                       to:(lastChangeNr-1).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2526
                lastChangeNr := lastChangeNr - numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2527
                overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2528
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2529
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2530
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2531
    self updateChangeList.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  2532
    self autoSelectOrEnd:lastChangeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2533
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2534
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2535
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2536
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2537
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2538
doDeleteClassFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2539
    "delete changes with same class as currently selected change from the beginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2540
     up to the selected change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2541
     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
  2542
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2543
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2544
        |classNameToDelete prevSelection numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2545
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2546
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2547
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2548
            prevSelection := changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2549
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2550
            numDeleted := self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2551
                                silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2552
                                from:1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2553
                                to:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2554
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2555
            self autoSelectOrEnd:(changeNr + 1 - numDeleted)
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2556
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2557
    ].
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
    "Created: 13.12.1995 / 15:41:58 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2560
    "Modified: 25.5.1996 / 12:26:34 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2561
!
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
doDeleteClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2564
    "delete rest of changes with same class as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2565
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2566
    self withSingleSelectedChangeDo:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2567
        | classNameToDelete |
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2568
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2569
        classNameToDelete := self classNameOfChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2570
        classNameToDelete notNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2571
            self unselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2572
            self silentDeleteChangesFor:classNameToDelete
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2573
                                   from:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2574
                                     to:(self numberOfChanges).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2575
            self updateChangeList.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2576
            self autoSelectOrEnd:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2577
        ]
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2578
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2579
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2580
    "Modified: / 18.5.1998 / 14:25:07 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2581
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2582
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2583
doDeleteClassSelectorAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2584
    "delete all changes with same class and selector as currently selected change"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2585
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2586
    |classNameSelectorPairsToDelete lastChangeNr overAllNumDeletedBefore|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2587
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2588
    lastChangeNr := -1.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2589
    classNameSelectorPairsToDelete := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2590
    self withSelectedChangesDo:[:changeNr |
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2591
        |className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2592
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2593
        className := self realClassNameOfChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2594
        selector := self selectorOfMethodChange:changeNr.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2595
        selector notNil ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2596
            (className notNil and:[selector notNil]) ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2597
                classNameSelectorPairsToDelete add:(className -> selector).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2598
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2599
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2600
        lastChangeNr := lastChangeNr max:changeNr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2601
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2602
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2603
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2604
    self unselect.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2605
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2606
    self withExecuteCursorDo:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2607
        classNameSelectorPairsToDelete do:[:pair |
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2608
            |numDeletedBefore className selector|
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2609
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2610
            className := pair key.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2611
            selector  := pair value.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2612
            self silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2613
                                   from:lastChangeNr
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2614
                                     to:(self numberOfChanges).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2615
            numDeletedBefore := self
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2616
                                   silentDeleteChangesFor:className selector:selector
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2617
                                   from:1
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2618
                                   to:(lastChangeNr-1).
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2619
            lastChangeNr := lastChangeNr - numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2620
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2621
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2622
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2623
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2624
    self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2625
    self autoSelectOrEnd:lastChangeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2626
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2627
    "Created: / 13.12.1995 / 16:07:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2628
    "Modified: / 28.1.1998 / 20:42:14 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2629
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2630
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2631
doDeleteClassSelectorOlder
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2632
    "delete this and older changes with same class and selector 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2633
     as the currently selected change(s).
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2634
     If the selected change is a class-definition change,
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2635
     older definitions for this class are deleted.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2636
     If the selected change is a method-category change,
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2637
     older category changes for this method are deleted"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2638
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2639
    |classNameSelectorTypeTuplesToDelete 
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2640
     lastChangeNr overAllNumDeletedBefore hasCheckinInfoSelected|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2641
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2642
    hasCheckinInfoSelected := false. 
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2643
    lastChangeNr := -1.
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2644
    classNameSelectorTypeTuplesToDelete := OrderedCollection new.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2645
    
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2646
    "/ collect info on what is to be deleted
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2647
    self withSelectedChangesInOrder:#reverse do:[:changeNr |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2648
        |className selector changeType|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2649
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  2650
        className := self realClassNameOfChange:changeNr.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2651
        selector := self selectorOfMethodChange:changeNr.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2652
        selector notNil ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2653
            changeType := #methodChange.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2654
        ] ifFalse:[    
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2655
            (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2656
                selector := self selectorOfMethodCategoryChange:changeNr.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2657
                selector notNil ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2658
                    changeType := #methodCategoryChange.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2659
                ]
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2660
            ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2661
                (self isClassDefinitionChange:changeNr) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2662
                    changeType := #classDefinitionChange.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2663
                ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2664
                    (self changeIsCheckinInfo:changeNr) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2665
                        changeType := #checkinInfo.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2666
                        hasCheckinInfoSelected := true.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2667
                    ]    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2668
                ]    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2669
            ].    
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2670
        ].
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2671
        changeType notNil ifTrue:[
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2672
            classNameSelectorTypeTuplesToDelete add:{ className . selector . changeType . changeNr}.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2673
        ].    
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2674
        lastChangeNr := lastChangeNr max:changeNr.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2675
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2676
        
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2677
    overAllNumDeletedBefore := 0.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2678
    self unselect.
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2679
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2680
    self withExecuteCursorDo:[
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2681
        classNameSelectorTypeTuplesToDelete do:[:tuple |
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2682
            |numDeletedBefore className selector changeType lastToDelete|
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2683
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2684
            className := tuple at:1.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2685
            selector  := tuple at:2.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2686
            changeType  := tuple at:3.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2687
            lastToDelete := (tuple at:4) - overAllNumDeletedBefore.
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2688
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2689
            changeType == #methodCategoryChange ifTrue:[
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2690
                numDeletedBefore := self
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2691
                                       silentDeleteMethodCategoryChangesFor:className selector:selector
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2692
                                       from:1 to:lastToDelete.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2693
            ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2694
                changeType == #classDefinitionChange ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2695
                    numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2696
                                           silentDeleteClassDefinitionChangesFor:className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2697
                                           from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2698
                ] ifFalse:[  
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2699
                    changeType == #checkinInfo ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2700
                        numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2701
                                           silentDeleteCheckinInfosFor:className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2702
                                           from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2703
                    ] ifFalse:[    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2704
                        changeType == #methodChange ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2705
                            numDeletedBefore := self
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2706
                                               silentDeleteChangesFor:className selector:selector
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2707
                                               from:1 to:lastToDelete.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2708
                        ] ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2709
                            numDeletedBefore := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2710
                            self halt:'oops'.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2711
                        ].    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2712
                    ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2713
                ]
18232
56fa2d552804 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18186
diff changeset
  2714
            ].
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2715
            lastChangeNr := lastChangeNr - numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2716
            overAllNumDeletedBefore := overAllNumDeletedBefore + numDeletedBefore.
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2717
        ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2718
    ].
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2719
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2720
    self updateChangeList.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2721
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2722
    hasCheckinInfoSelected ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2723
        "/ skip over info chunks
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2724
        [
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2725
            lastChangeNr > 1 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2726
            and:[ self changeIsSpecialInfo:lastChangeNr anyOf:#('snapshot' 'checkin')]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2727
        ] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2728
            lastChangeNr := lastChangeNr - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2729
        ].    
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2730
    ].
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2731
    self autoSelectOrEnd:lastChangeNr
17597
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2732
c36a8ef26897 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17579
diff changeset
  2733
    "Modified: / 25-07-2017 / 10:57:31 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  2734
    "Modified: / 15-02-2019 / 12:26:02 / Claus Gittinger"
16475
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2735
!
5206032f1a19 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 16467
diff changeset
  2736
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2737
doDeleteFromBeginning
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2738
    "delete all changes from 1 to the current"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2739
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2740
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2741
	self deleteChangesFrom:1 to:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2742
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2743
	self autoSelectOrEnd:changeNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2744
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2745
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2746
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2747
doDeleteRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2748
    "delete all changes from current to the end"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2749
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2750
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2751
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2752
	self clearCodeView.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2753
	self autoSelectOrEnd:changeNr-1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2754
    ]
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
doFileoutAndDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2758
    "first fileOut the selected changes class then delete all changes
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2759
     for it."
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2760
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2761
    self withSingleSelectedChangeDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2762
	| className class |
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
	className := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2765
	className notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2766
	    class := Smalltalk classNamed:className.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2767
	    class notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2768
		Class fileOutErrorSignal handle:[:ex |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2769
		    self warn:('fileout failed: ' , ex description).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2770
		] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2771
		    class fileOut.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2772
		    self doDeleteClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2773
		].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2774
	    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2775
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2776
	].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2777
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2778
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2779
    "Modified: 6.9.1995 / 17:11:16 / claus"
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
doMakePatch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2783
    "user wants a change to be made a patch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2784
     - copy it over to the patches 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
    self withSelectedChangesDo:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2787
	self makeChangeAPatch:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2788
	self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2789
    ]
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2792
doMakePermanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2793
    "user wants a change to be made permanent
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2794
     - rewrite the source file where this change has to go"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2795
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2796
    |yesNoBox|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2797
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2798
    self checkSingleSelectedChange.
11499
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
    yesNoBox := YesNoBox new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2801
    yesNoBox title:(resources string:'Warning: this operation cannot be undone').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2802
    yesNoBox okText:(resources string:'continue') noText:(resources string:'abort').
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2803
    yesNoBox okAction:[   |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2804
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2805
                          changeNr := self theSingleSelection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2806
                          changeNr notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2807
                              self makeChangePermanent:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2808
                              self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2809
                          ]
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
    yesNoBox showAtPointer.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2812
    yesNoBox destroy
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2813
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2814
    "Modified: 7.1.1997 / 23:03:33 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2815
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2816
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2817
doSave
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2818
    "user wants a change to be appended to a file"
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
    |fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2821
13651
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2822
    fileName := Dialog
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2823
                    requestFileNameForSave:(resources string:'Append change to:')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2824
                    default:(lastSaveFileName ? '')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2825
                    ok:(resources string:'Append')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2826
                    abort:(resources string:'Abort')
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2827
                    pattern:'*.chg'.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2828
    fileName isEmptyOrNil ifTrue:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2829
        ^ self
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2830
    ].
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2831
    lastSaveFileName := fileName.
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2832
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2833
    self withWriteCursorDo:[
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2834
        self withSelectedChangesDo:[:changeNr |
9c794484107a class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13440
diff changeset
  2835
            self appendChange:changeNr toFile:fileName.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2836
            self autoSelect:(changeNr + 1)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2837
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2838
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2839
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2840
    "Modified: / 27-07-2012 / 09:46:14 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2841
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2842
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2843
doSaveClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2844
    "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
  2845
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2846
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2847
    self doSaveClassFrom:1
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
doSaveClassAll
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2851
    "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
  2852
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2853
    self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2854
    self doSaveClassFrom:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2855
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2856
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2857
doSaveClassFrom:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2858
    "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
  2859
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2860
    |changeNr classNameToSave|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2861
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2862
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2863
    classNameToSave := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2864
    classNameToSave notNil ifTrue:[
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2865
        self saveClass:classNameToSave from:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2866
    ]
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2869
doSaveClassRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2870
    "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
  2871
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2872
    |changeNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2873
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  2874
    changeNr := self checkSingleSelectedChange.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2875
    self doSaveClassFrom:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2876
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2877
    changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2878
    "/ self changeSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2879
!
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
doSaveRest
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2882
    "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
  2883
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2884
    |changeNr fileName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2885
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2886
    (changeNr := self theSingleSelection) isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2887
        ^ self information:(resources string:'Only possible if a single change is selected.').
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2890
    fileName := Dialog
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2891
                    requestFileNameForSave:(resources string:'Append changes to:')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2892
                    default:(lastSaveFileName ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2893
                    ok:(resources string:'Append')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2894
                    abort:(resources string:'Abort')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2895
                    pattern:'*.chg'.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2896
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2897
    fileName notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2898
        lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2899
        self withWriteCursorDo:[
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2900
            changeNr to:(self numberOfChanges) do:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2901
                changeListView setSelection:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2902
                (self appendChange:changeNr toFile:fileName) ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2903
                    ^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2904
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2905
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2906
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2907
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2908
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  2909
    "Modified: / 27-07-2012 / 09:46:09 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2910
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2911
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2912
doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2913
    "reread the changes-file"
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
    self readChangesFileInBackground:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2916
    self newLabel:''.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2917
    realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2918
        self updateChangeList.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2919
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2920
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2921
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2922
doWriteBack
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2923
    "write back the list onto the changes file"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2924
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2925
    anyChanges ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2926
        (self writeBackChanges) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2927
            realized ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2928
                self readChangesFile.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2929
                realized ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  2930
                    self updateChangeList
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2931
                ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2932
            ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2933
        ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2934
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2935
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2936
    "Modified: 5.9.1996 / 17:19:46 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2937
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2938
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2939
findClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2940
    "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
  2941
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2942
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2943
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2944
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2945
        current := self classNameOfChange:changeNrShown.
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2948
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2949
        askForSearch:'Class to search for:'
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2950
        initialAnswer:(current ? lastSearchString)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2951
        thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2952
                            |thisClassName|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2953
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2954
                            thisClassName := self classNameOfChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2955
                            thisClassName notNil
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2956
                            and:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2957
                                (thisClassName sameAs: searchString)
13440
3414d47da4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13373
diff changeset
  2958
                                or:[searchString includesMatchCharacters and:[searchString match:thisClassName caseSensitive:false]]]
11499
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
        onCancel:[^ self].
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
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2963
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  2964
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  2965
    "Modified: / 12-02-2017 / 11:31:47 / cg"
11499
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2968
findFirstForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2969
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2970
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2971
    self findNextForClassStartingAt:1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2972
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2973
    "Created: / 20-11-2006 / 16:37:56 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2974
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2975
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2976
findFirstForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2977
    "findNextForClass menu action: select the next change for the selected changes class"
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
    self findNextForClass:className startingAt:1
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2980
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2981
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2982
findLastForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2983
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2984
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2985
    self findPreviousForClassStartingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2986
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2987
    "Created: / 20-11-2006 / 16:39:15 / cg"
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
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2990
findLastForClass:className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2991
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2992
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2993
    self findPreviousForClass:className startingAt:(self numberOfChanges)
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2994
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2995
    "Created: / 20-11-2006 / 16:39:15 / cg"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2996
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  2997
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2998
findLastSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  2999
    "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
  3000
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3001
    "/ lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3002
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3003
    self 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3004
        findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3005
        startingAt:(self numberOfChanges)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3006
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3007
    "Created: / 06-10-2006 / 11:03:39 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3010
findNext
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3011
    "findNext menu action: select the next change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3012
     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
  3013
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3014
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3015
	^ self findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3016
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3017
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3018
	^ self findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3019
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3020
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3021
	^ self findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3022
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3023
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3024
	^ self findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3025
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3026
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3027
    ^ self findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3028
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3029
    "Created: / 18.6.1998 / 22:15:00 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3030
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3031
!
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
findNextDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3034
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3035
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3036
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3037
    self findNextForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3038
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3039
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3040
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3041
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3042
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3043
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3044
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3045
	]
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3048
findNextForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3049
    "findNextForClass menu action: select the next change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3050
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3051
    self findNextForClassStartingAt: changeNrShown + 1
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3052
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3053
    "Modified: / 20-11-2006 / 16:37:49 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3054
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3055
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3056
findNextForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3057
    "findNextForClass menu action: select the next change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3058
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3059
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3060
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3061
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3062
        findNextForWhich:[:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3063
                |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3064
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3065
                thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3066
                (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3067
                or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3068
                    and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3069
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3070
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3071
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3072
findNextForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3073
    "findNextForClass menu action: select the next change for the selected changes class"
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
    |cls|
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
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3078
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3079
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3080
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3081
    cls isNil ifTrue:[^ self].
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3082
    self findNextForClass:cls startingAt:startNr.
11499
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
    "Created: / 20-11-2006 / 16:37:37 / cg"
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
findNextForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3088
    "findNextForSelector menu action: select the next change for the selected changes selector"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3089
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3090
    |sel|
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
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3093
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3094
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3095
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3096
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3097
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3098
    self findNextForWhich: [:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3099
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3100
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3101
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3102
		(thisSelector = sel or:[sel includesMatchCharacters and:[sel match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3103
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3104
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3105
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3106
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3107
findNextForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3108
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3109
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3110
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3111
    self findNextWithString:lastSearchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3112
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3113
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3114
findNextForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3115
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3116
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3117
    ^ self findNextForWhich:aBlock startingAt:changeNrShown + 1
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
    "Modified: / 20-11-2006 / 16:34:23 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3120
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3121
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3122
findNextForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3123
    "helper: select the next change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3124
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3125
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3126
        findNextOrPrevious:#next 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3127
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3128
        startingAt:changeNrToStartSearch
11499
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
    "Created: / 20-11-2006 / 16:34:06 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3131
!
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
findNextOrPrevious:direction forWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3134
    "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
  3135
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3136
    self withCursor:Cursor questionMark do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3137
        Object userInterruptSignal handle:[:ex |
17941
10c46b4dbc59 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17924
diff changeset
  3138
            self beepInEditor.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3139
            ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3140
        ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3141
            |increment nr lastNr|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3142
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3143
            increment := (direction == #previous) ifTrue:[-1] ifFalse:[1].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3144
            lastNr := self numberOfChanges.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3145
            nr := changeNrToStartSearch.
19263
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
  3146
            [ (direction == #previous and:[nr > 0])
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3147
              or:[ direction == #next and:[ nr <= lastNr]] 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3148
            ] whileTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3149
                (aBlock value:nr) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3150
                    self selectChange:nr.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3151
                    ^ nr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3152
                ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3153
                nr := nr + increment.
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
    self showNotFound.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3158
    self windowGroup sensor flushKeyboard. "/ avoid multiple beeps, in case of type ahead
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3159
    ^ 0
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3160
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3161
    "Created: / 08-03-2012 / 11:57:26 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3162
!
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
findNextSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3165
    "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
  3166
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3167
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3168
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3169
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3170
    self findNextForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3171
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3172
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3173
findNextWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3174
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3175
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3176
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3177
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3178
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3179
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3180
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3181
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3182
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3183
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3184
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3185
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3186
    self findNextForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3187
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3188
            |s|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3189
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3190
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3191
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3192
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3193
                or:[ includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3194
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3195
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3196
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
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
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3199
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3200
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3201
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3202
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3203
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3204
!
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
findPrevious
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3207
    "findPrevious menu action: select the previous change.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3208
     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
  3209
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3210
    lastSearchType == #selector ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3211
	^ self findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3212
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3213
    lastSearchType == #snapshot ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3214
	^ self findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3215
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3216
    lastSearchType == #string ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3217
	^ self findPreviousForString
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
    lastSearchType == #difference ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3220
	^ self findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3221
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3222
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3223
    ^ self findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3224
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3225
    "Created: / 18.6.1998 / 22:15:15 / cg"
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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3228
findPreviousDifference
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3229
    lastSearchType := #difference.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3230
    changeNrShown isNil ifTrue:[^ self].
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
    self findPreviousForWhich:[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3233
	    (self compareChange:changeNr showResult:false) == true ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3234
		"/ same
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3235
		false
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3236
	    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3237
		"/ different
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3238
		true
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3239
	    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3240
	]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3241
!
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
findPreviousForClass
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3244
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3245
12738
fcad7d2eec44 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12704
diff changeset
  3246
    self findPreviousForClassStartingAt:((changeNrShown ? 1) - 1)
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3247
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3248
    "Modified: / 20-11-2006 / 16:39:04 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3249
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3250
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3251
findPreviousForClass:className startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3252
    "findPreviousForClass menu action: select the previous change for the selected changes class"
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3253
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3254
    lastSearchType := #class.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3255
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3256
    self 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3257
        findPreviousForWhich:
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3258
            [:changeNr |
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3259
                    |thisClass|
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3260
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3261
                    thisClass := self classNameOfChange:changeNr.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3262
                    (thisClass = className
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3263
                    or:[className includesMatchCharacters 
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3264
                        and:[className match:thisClass]])]
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3265
        startingAt:startNr
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3266
!
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3267
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3268
findPreviousForClassStartingAt:startNr
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3269
    "findPreviousForClass menu action: select the previous change for the selected changes class"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3270
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3271
    |cls|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3272
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3273
    lastSearchType := #class.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3274
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3275
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3276
    cls := self classNameOfChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3277
    cls isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3278
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  3279
    self findPreviousForClass:cls startingAt:startNr
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3280
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3281
    "Created: / 20-11-2006 / 16:38:37 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3282
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3283
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3284
findPreviousForSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3285
    "findPreviousForSelector menu action: select the previous change for the selected changes selector"
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
    |sel|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3288
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3289
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3290
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3291
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3292
    sel := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3293
    sel isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3294
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3295
    self findPreviousForWhich:
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3296
	[:changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3297
		|thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3298
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3299
		thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3300
		(thisSelector = sel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3301
		or:[sel includesMatchCharacters and:[sel match: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
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3304
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3305
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3306
findPreviousForString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3307
    lastSearchString isNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3308
	^ self findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3309
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3310
    self findPreviousWithString:lastSearchString
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
findPreviousForWhich:aBlock
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3314
    "helper: select the previous change for which aBlock evaluates to true"
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
    ^ self findPreviousForWhich:aBlock startingAt:(changeNrShown - 1)
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
    "Modified: / 06-10-2006 / 11:01:38 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3319
!
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
findPreviousForWhich:aBlock startingAt:changeNrToStartSearch
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3322
    "helper: select the previous change for which aBlock evaluates to true"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3323
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3324
    ^ self     
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3325
        findNextOrPrevious:#previous 
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3326
        forWhich:aBlock 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3327
        startingAt:changeNrToStartSearch
11499
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
    "Created: / 06-10-2006 / 11:01:09 / cg"
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3330
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3331
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3332
findPreviousSnapshot
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3333
    "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
  3334
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3335
    lastSearchType := #snapshot.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3336
    changeNrShown isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3337
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3338
    self findPreviousForWhich: [:changeNr | self changeIsSnapShotInfo:changeNr ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3339
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3340
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3341
findPreviousWithString:searchString
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3342
    |includesMatchCharacters|
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3343
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3344
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3345
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3346
    lastSearchString := searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3347
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3348
    changeNrShown isNil ifTrue:[
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3349
        changeNrShown := 0.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3350
    ].
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3351
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3352
    includesMatchCharacters := searchString includesMatchCharacters.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3353
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3354
    self findPreviousForWhich:
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3355
        [:changeNr |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3356
            |s |
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3357
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3358
            s := self sourceOfMethodChange:changeNr.
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3359
            s notNil and:[
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3360
                (includesMatchCharacters not and:[(s findString:searchString) ~~ 0])
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3361
                or:[includesMatchCharacters and:[('*' , searchString , '*') match:s ]]]
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3362
        ].
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3363
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3364
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3365
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3366
    codeView setSearchPattern:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3367
    codeView
14939
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3368
        searchFwd:searchString
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3369
        ignoreCase:false
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3370
        startingAtLine:1 col:0
dfe559aef66e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14867
diff changeset
  3371
        ifAbsent:nil.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3372
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3373
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3374
findSelector
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3375
    "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
  3376
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3377
    |current|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3378
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3379
    changeNrShown notNil ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3380
	current := self selectorOfMethodChange:changeNrShown.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3381
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3382
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3383
    self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3384
	askForSearch:'Selector to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3385
	initialAnswer:current
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3386
	thenSearchUsing:[:searchString :changeNr |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3387
			    |thisSelector|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3388
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3389
			    thisSelector := self selectorOfMethodChange:changeNr.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3390
			    (thisSelector = searchString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3391
			    or:[searchString includesMatchCharacters and:[searchString match:thisSelector]])
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3392
			]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3393
	onCancel:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3394
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3395
    lastSearchType := #selector.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3396
    changeNrShown == 0 ifTrue:[changeNrShown := nil].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3397
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3398
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3399
findString
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3400
    |searchString directionHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3401
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3402
    lastSearchType := #string.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3403
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3404
    searchString := codeView selection.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3405
    searchString size == 0 ifTrue:[searchString := lastSearchString].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3406
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3407
    searchString := self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3408
	askForSearchString:'String to search for:'
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3409
	initialAnswer:(searchString ? '')
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3410
	directionInto:(directionHolder := ValueHolder new).
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
    searchString size == 0 ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3413
	^ self
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3414
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3415
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3416
    directionHolder value == #backward ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3417
	self findPreviousWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3418
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3419
	self findNextWithString:searchString.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3420
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3421
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3422
10719
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3423
ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3424
    UserPreferences current ignorePublicPrivateCategories:aBoolean
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3425
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3426
    "Created: / 23-09-2011 / 19:52:21 / cg"
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3427
!
433a7f80d067 class definition
Claus Gittinger <cg@exept.de>
parents: 10681
diff changeset
  3428
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3429
menuExit
3204
f3efd0865b8c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3203
diff changeset
  3430
    self closeRequest
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3431
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3432
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3433
openAboutThisApplication
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3434
    "opens an about box for this application."
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3435
7115
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3436
    Dialog aboutClass:self class.
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3437
96695bd707d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7096
diff changeset
  3438
    "Modified: / 12-09-2006 / 17:20:22 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3439
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3440
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3441
openHTMLDocument:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3442
    HTMLDocumentView openFullOnDocumentationFile:relativeDocPath
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3443
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3444
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3445
openSettingsDialog
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3446
    |settingsList|
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3447
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3448
    settingsList := 
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3449
        #(
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3450
            #('Editor'                  #'AbstractSettingsApplication::EditSettingsAppl'                )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3451
"/            #('Syntax Color'            #'AbstractSettingsApplication::SyntaxColorSettingsAppl'         )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3452
"/            #('Code Format'             #'AbstractSettingsApplication::SourceCodeFormatSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3453
"/            #('System Browser'          #'AbstractSettingsApplication::SystemBrowserSettingsAppl'       )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3454
            #('Compiler'                #'AbstractSettingsApplication::GeneralCompilerSettingsAppl'     )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3455
            #('Compiler/ByteCode'       #'AbstractSettingsApplication::ByteCodeCompilerSettingsAppl'    )
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3456
"/            #('Source Code Management'  #'AbstractSettingsApplication::SourceCodeManagementSettingsAppl')
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3457
        ).
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3458
14558
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3459
    SettingsDialog 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3460
        openWithList:settingsList 
40683cf4fe03 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14483
diff changeset
  3461
        label:(resources string:'Change Browser Settings').
9055
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3462
!
7ec3c8b70a2e added: #openSettingsDialog
Claus Gittinger <cg@exept.de>
parents: 9020
diff changeset
  3463
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3464
setEnforcedNameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3465
    |nsName listOfKnownNameSpaces keepAsDefaultHolder|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3466
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3467
    listOfKnownNameSpaces := Set new.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3468
    NameSpace
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3469
        allNameSpaces
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3470
            do:[:eachNameSpace |
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3471
                listOfKnownNameSpaces add:eachNameSpace name
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3472
            ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3473
    listOfKnownNameSpaces := listOfKnownNameSpaces asOrderedCollection sort.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3474
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3475
    Dialog modifyingBoxWith:[:box |
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3476
        keepAsDefaultHolder := true asValue.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3477
        box verticalPanel
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3478
            add:((CheckBox 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3479
                    label:(resources string:'Use this as default in the future')) 
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3480
                    model:keepAsDefaultHolder).
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3481
    ] do:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3482
        nsName := Dialog
15450
7cb80bb7af43 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15449
diff changeset
  3483
                request:(resources string:'When applying, new classes are created in nameSpace:')
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3484
                initialAnswer:(enforcedNameSpace ? LastEnforcedNameSpace ? Class nameSpaceQuerySignal query name)
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3485
                list:listOfKnownNameSpaces.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3486
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3487
    nsName isNil ifTrue:[^ self].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3488
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3489
    (nsName isEmpty or:[nsName = 'Smalltalk']) ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3490
        applyInOriginalNameSpace value:true.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3491
        LastEnforcedNameSpace := enforcedNameSpace := nil.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3492
    ] ifFalse:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3493
        applyInOriginalNameSpace value:false.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3494
        LastEnforcedNameSpace := enforcedNameSpace := NameSpace name:nsName.
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3495
        autoCompare value ifTrue:[
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3496
            self doUpdate
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3497
        ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3498
    ].
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3499
    KeepEnforcedNameSpace := keepAsDefaultHolder value.
11680
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3500
    codeView nameSpaceForDoits:enforcedNameSpace.
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3501
    diffView textViews do:[:each | each nameSpaceForDoits:enforcedNameSpace].
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3502
5b1a15736f97 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11499
diff changeset
  3503
    "Modified: / 26-07-2012 / 23:06:23 / cg"
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3504
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3505
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3506
setEnforcedPackage
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3507
    |pkg listOfKnownPackages|
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3508
16207
2a88932c5bbf #REFACTORING
Claus Gittinger <cg@exept.de>
parents: 16092
diff changeset
  3509
    listOfKnownPackages := Smalltalk allPackageIDs.
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3510
"/    Smalltalk allClassesDo:[:eachClass |
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3511
"/                                |package|
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3512
"/
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3513
"/                                package := eachClass package.
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3514
"/                                package size > 0 ifTrue:[
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3515
"/                                    listOfKnownPackages add:package
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3516
"/                                ]
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3517
"/                           ].
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3518
    listOfKnownPackages := listOfKnownPackages asNewOrderedCollection sort.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3519
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3520
    pkg := Dialog
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3521
                request:'When applying, changes go into package:'
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3522
                initialAnswer:(enforcedPackage ? Class packageQuerySignal query)
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3523
                list:listOfKnownPackages.
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3524
    pkg size ~~ 0 ifTrue:[
12645
9340675126c2 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12635
diff changeset
  3525
        enforcedPackage := pkg
11499
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3526
    ]
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3527
!
dcd14a0cdbc5 changed: #setEnforcedNameSpace
Claus Gittinger <cg@exept.de>
parents: 11477
diff changeset
  3528
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3529
showAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3530
    ToolApplicationModel openAboutSTX
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3531
! !
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  3532
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3533
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3534
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3535
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3536
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3537
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3538
    self class autoSelectNext ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3539
        (changeNr <= self numberOfChanges) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3540
            self selectChange:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3541
            ^ self
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3542
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3543
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3544
    self clearCodeView.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3545
    self unselect.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3546
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3547
    "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
  3548
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3549
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3550
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3551
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3552
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3553
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3554
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3555
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3556
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3557
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3558
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3559
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3560
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3561
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3562
    changeNr < last ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3563
        self autoSelect:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3564
    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3565
        last == 0 ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3566
            last := nil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3567
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3568
        self selectChange:last.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3569
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3570
3406
8fe22b36fbc2 fixed autoselectNext if list is empty
Claus Gittinger <cg@exept.de>
parents: 3392
diff changeset
  3571
    "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
  3572
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3573
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3574
changeChunkAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3575
    ^ (changeInfoList at:index) chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3576
    "/ ^ changeChunks at:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3577
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3578
    "Created: / 01-05-2016 / 18:24:28 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3579
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3580
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3581
changeClassNameAt:index
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3582
    ^ (changeInfoList at:index) className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3583
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3584
    "Created: / 01-05-2016 / 18:28:13 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3585
    "Modified: / 01-05-2016 / 19:32:42 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3586
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  3587
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3588
checkClassIsLoaded:aClass
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3589
    "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
  3590
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3591
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3592
3359
2cc7eff866e4 isMeta/soleInstance -> theNonMetaclass
Claus Gittinger <cg@exept.de>
parents: 3341
diff changeset
  3593
    cls := aClass theNonMetaclass.
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3594
    cls isLoaded ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3595
        ^ true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3596
    ].
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3597
    (classesNotToBeAutoloaded includes:#all) ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3598
        ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3599
    ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3600
    (classesNotToBeAutoloaded includes:cls) ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3601
        ^ false.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3602
    ].
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3603
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3604
    autoloadAsRequired value == true ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3605
        answer := true
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  3606
    ] ifFalse:[
11805
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3607
        answer := Dialog 
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3608
                confirmWithCancel:(resources
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3609
                    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
  3610
                    with:cls name allBold)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3611
                labels:(resources array:#('Cancel' 'No for All' 'No' 'Yes'))
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3612
                values:#(nil #never false true)
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3613
                default:4.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3614
        answer isNil ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3615
            "cancel the operation"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3616
            AbortAllOperationRequest raise.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3617
            "not reached"
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3618
        ].
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3619
        answer == #never ifTrue:[
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3620
            classesNotToBeAutoloaded add:#all.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3621
            ^ false.
351f5528be25 changed: #checkClassIsLoaded:
Stefan Vogel <sv@exept.de>
parents: 11685
diff changeset
  3622
        ].
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3623
    ].
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3624
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3625
    answer ifTrue:[
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3626
        Autoload autoloadFailedSignal catch:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3627
            ^ cls autoload isLoaded
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  3628
        ]
5825
6ab08872ef18 Streamline autoloading.
Stefan Vogel <sv@exept.de>
parents: 5816
diff changeset
  3629
    ].
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3630
8026
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3631
    classesNotToBeAutoloaded add:cls.
48f053eed5b8 on #compareAndCompress - ask only once for each unloaded class
Stefan Vogel <sv@exept.de>
parents: 8000
diff changeset
  3632
6162
5ab2371c63a1 Compare and Compress: continue comparing even if the user doesn't
Stefan Vogel <sv@exept.de>
parents: 6048
diff changeset
  3633
    ^ false.
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3634
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  3635
    "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
  3636
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3637
11896
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3638
checkSingleSelectedChange
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3639
    "just a helper, check for a single selection"
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3640
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3641
    |changeNr|
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3642
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3643
    (changeNr := self theSingleSelection) isNil ifTrue:[
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3644
        self information:'Only possible if a single change is selected.'.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3645
        AbortSignal raise.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3646
        ^ nil.
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3647
    ].
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3648
    ^ changeNr
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3649
!
627b63f51074 added: #checkSingleSelectedChange
Claus Gittinger <cg@exept.de>
parents: 11805
diff changeset
  3650
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3651
classFromEvaluatingTree:aParseTree
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3652
    |thisClass|
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3653
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3654
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3655
    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3656
        thisClass := Parser undefinedVariableError handle:[:ex | ] do:[ aParseTree evaluate ]. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3657
    ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3658
    ^ thisClass
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3659
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3660
    "Created: / 05-03-2012 / 14:28:01 / cg"
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3661
!
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3662
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3663
clearCodeView
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3664
    "clear the (lower) code view."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  3665
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3666
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3667
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3668
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3669
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3670
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3671
currentSourceForParseTree:parseTree
12845
c8300977f648 Fix stc compiler warnings
Stefan Vogel <sv@exept.de>
parents: 12825
diff changeset
  3672
    |selector thisClass method mClass thisClassSym ownerClass receiver classGlobalNode|
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3673
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3674
    (parseTree isNil
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3675
    or:[parseTree == #Error
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3676
    or:[ parseTree isMessage not ]]) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3677
        ^ nil
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3678
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3679
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3680
    selector := parseTree selector.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3681
    receiver := parseTree receiver.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3682
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3683
    selector == #'removeSelector:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3684
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3685
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3686
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3687
                selector := (parseTree arg1 evaluate).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3688
                (thisClass includesSelector:selector) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3689
                    ^ (thisClass compiledMethodAt:selector) source.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3690
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3691
            ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3692
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3693
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3694
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3695
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3696
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3697
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3698
    selector == #'comment:' ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3699
        thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3700
        thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3701
            thisClass isLoaded ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3702
                ^ thisClass name , ' comment: ' , thisClass comment storeString.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3703
            ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3704
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3705
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3706
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3707
            ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3708
        ].
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3709
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3710
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3711
    (#(#'category:' #'package:') includes:selector) ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3712
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3713
            receiver selector == #compiledMethodAt: ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3714
"/                thisClass := self classFromEvaluatingTree:receiver receiver. 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3715
"/                thisClass isNil ifTrue:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3716
"/                    ^ 'Class does not exist.'.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3717
"/                ].
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3718
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3719
                classGlobalNode := receiver receiver.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3720
                (classGlobalNode isMessage and:[classGlobalNode selector == #class]) ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3721
                    classGlobalNode := classGlobalNode receiver
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
                classGlobalNode isUndeclared ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3724
                    ^ 'Class does not exist.'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3725
                ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3726
                Error handle:[method := nil] do:[method := receiver evaluate].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3727
                method isMethod ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3728
                    ^ 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3729
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3730
                mClass := method mclass.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3731
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3732
                selector == #category: ifTrue:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3733
"/                    method category = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3734
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') category: ' , method category storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3735
"/                    ].
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3736
                ] ifFalse:[
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3737
"/                    method package = parseTree arg1 evaluate ifFalse:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3738
                        ^ '(' , mClass name , ' compiledMethodAt: ' , method selector storeString , ') package: ' , method package storeString.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3739
"/                    ].
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3740
                ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  3741
                ^ nil
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3742
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3743
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3744
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3745
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3746
    selector == #'instanceVariableNames:' ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3747
        receiver isMessage ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3748
            receiver selector == #class ifTrue:[
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  3749
                thisClass := self classFromEvaluatingTree:receiver. 
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3750
                thisClass isBehavior ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3751
                    thisClass isLoaded ifTrue:[
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3752
"/                                varsHere := thisClass instanceVariableString asCollectionOfWords.
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3753
"/                                varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3754
                        ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3755
                    ] ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3756
                        ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3757
                    ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3758
                ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3759
                    ^ 'Cannot compare this change (class not present)'.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3760
                ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3761
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3762
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3763
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3764
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3765
    (Class definitionSelectors includes:selector)
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3766
    "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3767
    ifTrue:[
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3768
"/        Class nameSpaceQuerySignal 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3769
"/            answer:(self nameSpaceForApply)
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3770
"/            do:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3771
"/                superClass := receiver evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3772
"/            ]. 
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3773
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3774
"/            self nameSpaceForApply classNamed:receiver name
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3775
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3776
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3777
"/            |rest matchingKeys superClassName|
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3778
"/
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3779
"/            rest := '::' , receiver name.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3780
"/            matchingKeys := Smalltalk keys select:[:nm | nm endsWith:rest].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3781
"/            superClassName := Dialog choose:'Which Class ?' fromList:matchingKeys lines:10.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3782
"/            superClassName notEmptyOrNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3783
"/                superClass := Smalltalk at:superClassName asSymbol.    
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3784
"/            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3785
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3786
"/        superClass isBehavior ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3787
"/            ^ 'Cannot compare this change\\(no such superclass).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3788
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3789
"/        superClass isLoaded ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3790
"/            ^ 'Cannot compare this change\\(superclass not loaded).' withCRs.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3791
"/        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3792
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3793
        thisClassSym := (parseTree arguments at:1) evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3794
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3795
        (selector endsWith:':privateIn:') ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3796
            ownerClass := (parseTree arguments at:5).
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3797
            ownerClass isUndeclared ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3798
                ownerClass := ownerClass evaluate.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3799
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3800
                ownerClass := nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3801
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3802
            ownerClass isNil ifTrue:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3803
                ^ c'Cannot compare this change\n\n(owning class is not loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3804
            ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3805
            thisClass := ownerClass privateClassesAt:thisClassSym.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3806
        ] ifFalse:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3807
            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3808
        ].
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3809
        thisClass notNil ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3810
            thisClass isLoaded ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  3811
                ^ c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6614
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3812
            ] ifTrue:[
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3813
                ^ thisClass definition.
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3814
            ]
8038dccaf059 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6605
diff changeset
  3815
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3816
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3817
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3818
    ^ nil.
9570
f81993219003 changed: #oldSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 9548
diff changeset
  3819
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3820
    "Created: / 15-02-2012 / 15:11:15 / cg"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3821
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3822
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3823
isChangeSetBrowser
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3824
    ^ false
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3825
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3826
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3827
makeDiffViewInvisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3828
    diffViewBox lower
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3829
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3830
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3831
makeDiffViewVisible
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3832
    diffViewBox raise
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3833
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3834
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3835
nameSpaceForApply
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3836
    applyInOriginalNameSpace value ifFalse:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3837
	^ enforcedNameSpace ? Class nameSpaceQuerySignal query.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3838
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3839
    ^ Smalltalk.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3840
!
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3841
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3842
newLabel:how
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3843
    |l|
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3844
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3845
    l := self class defaultLabel.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3846
    (changeFileName notNil and:[changeFileName ~= 'changes']) ifTrue:[
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3847
        l := l , ': ', changeFileName
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3848
    ].
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3849
    l := l , ' ' , how.
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3850
    self label:l
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3851
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3852
    "Created: / 08-09-1995 / 19:32:04 / claus"
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  3853
    "Modified: / 12-11-2006 / 16:23:53 / cg"
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3854
!
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  3855
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3856
parseExpression:chunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3857
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3858
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3859
    ^ self parseExpression:chunk inNameSpace:(self nameSpaceForApply).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3860
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3861
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3862
parseExpression:text inNameSpace:nameSpace
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3863
    "parse an expression; return a parseTree"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3864
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3865
    |parser parseTree|
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3866
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3867
    "/ old:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3868
    "/ does not care for VW qualified names
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3869
    "/ ^ Parser parseExpression:text inNameSpace:nameSpace.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3870
19263
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
  3871
    (text includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3872
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  3873
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3874
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3875
    "/ new:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3876
    parser := Parser for:(ReadStream on:text).
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3877
    parser parserFlags 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3878
        allowQualifiedNames:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3879
        allowDollarInIdentifier:true;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3880
        allowParagraphInIdentifier:true.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3881
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3882
    Error handle:[:ex |
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3883
        ^ nil
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3884
    ] do:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3885
        parseTree := parser 
9228
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3886
            parseExpressionWithSelf:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3887
            notifying:nil 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3888
            ignoreErrors:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3889
            ignoreWarnings:true 
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3890
            inNameSpace:nameSpace.
c99c25eb54db changed: #parseExpression:inNameSpace:
Claus Gittinger <cg@exept.de>
parents: 9168
diff changeset
  3891
    ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3892
    ^ parseTree
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3893
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  3894
    "Modified: / 21-11-2016 / 23:25:48 / cg"
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3895
!
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  3896
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3897
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3898
    "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
  3899
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3900
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3901
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3902
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3903
selectChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3904
    changeListView setSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3905
    self changeSelection:changeNr.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3906
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3907
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3908
selectedClassNames
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3909
    |classes|
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3910
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3911
    classes := Set new.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3912
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3913
	| classNameToCompress |
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3914
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3915
	classNameToCompress := self classNameOfChange:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3916
	classNameToCompress notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3917
	    classes add:classNameToCompress.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3918
	]
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3919
    ].
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3920
    ^ classes
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3921
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3922
    "Created: / 19.11.2001 / 21:54:59 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3923
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  3924
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3925
setChangeList
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3926
    <resource: #obsolete>
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3927
    "update the selection-list;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3928
     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
  3929
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3930
    self updateChangeList
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3931
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3932
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3933
setSingleSelection:changeNr
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3934
    changeListView multipleSelectOk ifFalse:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3935
	changeListView setSelection:changeNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3936
    ] ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3937
	changeListView setSelection:(Array with:changeNr).
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3938
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3939
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3940
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3941
showNumberOfChanges
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3942
    infoHolder value:(resources string:'%1 changes.' with:changeInfoList size).
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3943
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  3944
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3945
sourceOfChange:changeNr
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3946
    |aStream sawExcla chunk|
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3947
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3948
    aStream := self streamForChange:changeNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3949
    aStream isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3950
	^ nil
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3951
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3952
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3953
    chunk := aStream nextChunk.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3954
    sawExcla ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  3955
	chunk := aStream nextChunk
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3956
    ].
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3957
    aStream close.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3958
    ^ chunk
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3959
!
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  3960
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3961
timeStampPrintStringOf:ts
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3962
    ^ ts printString
17838
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3963
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3964
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3965
     self basicNew timeStampPrintStringOf:(Timestamp now)
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3966
    "
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3967
9f3c979d7788 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17723
diff changeset
  3968
    "Modified (format): / 05-12-2017 / 15:08:48 / cg"
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3969
!
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  3970
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3971
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3972
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3973
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3974
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3975
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3976
    "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
  3977
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  3978
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3979
updateChangeList
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3980
    "update the selection-list;
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3981
     called after the changeList has been modified"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3982
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3983
    |headerList|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3984
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3985
    headerList := changeInfoList collect:[:info | info headerLine].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3986
    changeListView setList:headerList expandTabs:false redraw:false.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3987
    changeListView invalidate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3988
    self showNumberOfChanges.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3989
    
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3990
    "/ changeListView deselect.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3991
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3992
    "Modified: / 01-05-2016 / 19:27:35 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3993
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  3994
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3995
withSelectedChangesDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3996
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3997
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3998
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  3999
    self withSelectedChangesInOrder:nil do:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4000
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4001
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4002
withSelectedChangesInOrder:order do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4003
    "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
  4004
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4005
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4006
    |changeNrSelection|
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4007
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4008
    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
  4009
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4010
    "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
  4011
     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
  4012
    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
  4013
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4014
    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
  4015
        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
  4016
            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
  4017
                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
  4018
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4019
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4020
    ] 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
  4021
        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
  4022
            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
  4023
                |changeNumbers|
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4024
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4025
                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
  4026
                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
  4027
                    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
  4028
                ].
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4029
                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
  4030
            ]
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  4031
        ]
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4032
    ].
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4033
!
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4034
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4035
withSelectedChangesReverseDo:aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4036
    "just a helper, check for a selected change and evaluate aBlock
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4037
     with busy cursor"
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4038
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  4039
    self withSelectedChangesInOrder:#reverse do:aBlock
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4040
!
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4041
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4042
withSingleSelectedChangeDo:aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4043
    "just a helper, check for a single selection, and evaluate aBlock
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4044
     with busy cursor"
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4045
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4046
    self theSingleSelection isNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4047
	^ self information:'Only possible if a single change is selected.'.
3668
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4048
    ].
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4049
635cb7c9fdcd added applyFromBeginning
Claus Gittinger <cg@exept.de>
parents: 3633
diff changeset
  4050
    self withSelectedChangesInOrder:nil do:aBlock
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4051
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4052
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4053
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4054
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4055
changeIsCheckinInfo:changeNr
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4056
    "return true, if a change is a snapShot info chunk"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4057
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4058
    ^ self changeIsSpecialInfo:changeNr anyOf:#('checkin')
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4059
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4060
    "Created: / 15-02-2019 / 11:44:33 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4061
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4062
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4063
changeIsFollowupMethodChange:changeNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4064
    "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
  4065
     in a bunch of methodsFor-changes)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4066
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4067
    ^ (changeInfoList at:changeNr) isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4068
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4069
    "Created: / 06-02-1998 / 13:03:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4070
    "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
  4071
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4072
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4073
changeIsSnapShotInfo:changeNr
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4074
    "return true, if a change is a snapShot info chunk"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4075
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4076
    ^ self changeIsSpecialInfo:changeNr anyOf:#('snapshot')
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4077
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4078
    "Modified: / 01-05-2016 / 18:25:25 / cg"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4079
    "Modified: / 15-02-2019 / 11:46:55 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4080
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4081
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4082
changeIsSpecialInfo:changeNr anyOf:wordsToCheck
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4083
    "return true, if a change is an info chunk
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4084
     with info being any from wordsToCheck 
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4085
     (i.e. this should contain something like 'checkin', snapshot' etc.)"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4086
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4087
    |words chunk|
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4088
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4089
    (changeInfoList at:changeNr) className
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4090
    "(self classNameOfChange:changeNr)" isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4091
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4092
         get the chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4093
        "
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4094
        chunk := self changeChunkAt:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4095
        "mhmh - empty ??"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4096
        chunk notNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4097
            (chunk startsWith:'''---') ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4098
                words := chunk asCollectionOfWords.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4099
                words size > 2 ifTrue:[
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4100
                    (wordsToCheck includes:(words at:2)) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4101
                        ^ true
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4102
                    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4103
                ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4104
            ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4105
        ].
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4106
    ].
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4107
    ^ false
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4108
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4109
    "Created: / 15-02-2019 / 11:46:36 / Claus Gittinger"
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4110
!
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4111
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4112
classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4113
    "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
  4114
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4115
    |recTree isMeta name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4116
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4117
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4118
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4119
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4120
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4121
    and:[recTree isMessage
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4122
    and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4123
        isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4124
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4125
        recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4126
            (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4127
            "id class "
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4128
            recTree := recTree receiver
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
        recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4131
            name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4132
            isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4133
                ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4134
            ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4135
            ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4136
        ]
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4137
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4138
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4139
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4140
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4141
    "Created: / 08-03-2012 / 09:42:36 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4142
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4143
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4144
classNameFromClassDefinitionChange:changeNr
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4145
    |changeStream chunk fullParseTree sel arg1Tree ownerTree ownerName name|
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4146
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4147
    "/ must parse the full changes text, to get privacy information.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4148
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4149
    changeStream := self streamForChange:changeNr.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4150
    changeStream isNil ifTrue:[ ^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4151
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4152
    chunk := changeStream nextChunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4153
    changeStream close.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4154
    fullParseTree := self parseExpression:chunk.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4155
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4156
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4157
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4158
    fullParseTree isMessage ifFalse:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4159
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4160
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4161
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4162
    sel := fullParseTree selector.
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4163
"/    (Class definitionSelectors includes:sel) ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4164
"/        ^ nil
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4165
"/    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4166
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4167
    arg1Tree := fullParseTree arg1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4168
    (arg1Tree notNil and:[arg1Tree isLiteral]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4169
        name := arg1Tree value asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4170
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4171
        "/ is it a private-class ?
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4172
        ('*privateIn:' match:sel) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4173
            ownerTree := fullParseTree args last.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4174
            ownerName := ownerTree name asString.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4175
            ^ ownerName , '::' , name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4176
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4177
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4178
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4179
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4180
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4181
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4182
    "Created: / 08-03-2012 / 09:34:04 / cg"
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4183
    "Modified: / 15-02-2019 / 12:08:55 / Claus Gittinger"
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4184
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4185
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4186
classNameFromReceiverInParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4187
    "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
  4188
     parse tree"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4189
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4190
    |recTree isMeta cls name|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4191
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4192
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4193
    (recTree isNil or:[recTree == #Error]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4194
        "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4195
        ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4196
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4197
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4198
    isMeta := false.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4199
    recTree isUnaryMessage ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4200
        (recTree selector ~~ #class) ifTrue:[^ nil].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4201
        "id class methodsFor:..."
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4202
        recTree := recTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4203
        isMeta := true.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4204
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4205
    recTree isPrimary ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4206
        cls := self classFromEvaluatingTree:recTree.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4207
        cls notNil ifTrue:[^ cls name].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4208
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4209
        name := recTree name.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4210
        isMeta ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4211
            ^ name , ' class'.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4212
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4213
        ^ name
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4214
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4215
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4216
    "more strange things"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4217
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4218
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4219
    "Created: / 08-03-2012 / 09:26:57 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4220
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4221
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4222
classNameFromRemoveClassParseTree:aParseTree
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4223
    "tree is: Smalltalk removeClass: class"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4224
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4225
    |recTree arg1Tree|
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4226
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4227
    recTree := aParseTree receiver.
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4228
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4229
    (recTree notNil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4230
    and:[recTree ~~ #Error
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4231
    and:[recTree isPrimary
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4232
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4233
        arg1Tree := aParseTree arg1.
13663
497ca003a6dc class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13651
diff changeset
  4234
        (arg1Tree notNil and:[arg1Tree isVariable]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4235
            ^ arg1Tree name.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4236
        ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4237
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4238
    "very strange"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4239
    ^ nil
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4240
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4241
    "Created: / 08-03-2012 / 09:36:59 / cg"
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4242
!
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4243
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4244
classNameFromRenameClassParseTree:aParseTree
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4245
    "tree is: Smalltalk renameClass: oldClass to: 'newName'"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4246
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4247
    |recTree arg1Tree arg2Tree oldName newName|
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4248
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4249
    recTree := aParseTree receiver.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4250
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4251
    (recTree notNil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4252
    and:[recTree ~~ #Error
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4253
    and:[recTree isPrimary
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4254
    and:[recTree name = 'Smalltalk']]]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4255
        arg1Tree := aParseTree arg1.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4256
        (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4257
            oldName := arg1Tree name.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4258
            arg2Tree := aParseTree arg2.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4259
            (arg2Tree notNil and:[arg2Tree isLiteral]) ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4260
                newName := arg2Tree evaluate.
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4261
                (Smalltalk classNamed:oldName) notNil ifTrue:[^ oldName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4262
                (Smalltalk classNamed:newName) notNil ifTrue:[^ newName ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4263
            ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4264
        ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4265
    ].
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4266
    "very strange"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4267
    ^ nil
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4268
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4269
    "Created: / 08-03-2012 / 11:42:25 / cg"
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4270
!
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4271
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4272
classNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4273
    "return the classname of a change
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4274
     (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
  4275
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4276
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4277
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4278
    name := self realClassNameOfChange:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4279
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4280
    (name endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  4281
        name := name copyButLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4282
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4283
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4284
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4285
    "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
  4286
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4287
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4288
extractSelectorOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4289
    "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
  4290
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4291
    |source parser sel chunk aParseTree |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4292
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4293
    source := self sourceOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4294
    source isNil ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4295
        (self classNameOfChange:changeNr) notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4296
            chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4297
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4298
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4299
            aParseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4300
            (aParseTree isNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4301
            or:[aParseTree == #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4302
            or:[aParseTree isMessage not]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4303
                ^ nil        "seems strange ... (could be a comment)"
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4304
            ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4305
            sel := aParseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4306
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4307
                #'removeSelector:'
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4308
            ) includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4309
                sel := aParseTree arguments at:1.
16390
fe087710202d #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 16372
diff changeset
  4310
                sel isLiteral ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4311
                    sel := sel evaluate.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4312
                    sel isSymbol ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4313
                        ^ sel
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4314
                    ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4315
                ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4316
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4317
        ].
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4318
        ^ nil
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4319
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4320
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4321
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4322
    parser := Parser
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4323
                parseMethodArgAndVarSpecification:source
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4324
                in:nil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4325
                ignoreErrors:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4326
                ignoreWarnings:true
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4327
                parseBody:false.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4328
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4329
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4330
        sel := parser selector.
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4331
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4332
    ^ sel
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4333
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4334
    "Created: / 24-11-1995 / 14:30:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4335
    "Modified: / 01-05-2016 / 18:25:39 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4336
    "Modified (comment): / 13-02-2017 / 19:57:20 / cg"
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4337
!
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4338
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4339
fullClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4340
    "return the full classname of a change
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4341
     (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
  4342
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4343
    |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
  4344
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4345
    changeNr isNil ifTrue:[^ nil].
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
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4348
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4349
    name := self changeClassNameAt:changeNr.
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4350
    name notNil ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4351
        name == #nil ifTrue:[^ nil].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4352
        ^ name
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4353
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4354
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4355
    prevMethodDefNr := changeNr.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4356
    [ (changeInfoList at:prevMethodDefNr) isFollowupChange ] whileTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4357
        prevMethodDefNr := prevMethodDefNr - 1.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4358
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4359
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4360
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4361
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4362
    "
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4363
    chunk := self changeChunkAt:prevMethodDefNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4364
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4365
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4366
    (chunk startsWith:'''---') ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4367
        words := chunk asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4368
        words size > 2 ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4369
            (words at:2) = 'checkin' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4370
                name := words at:3.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4371
                ^ name
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4372
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4373
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4374
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4375
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4376
    "/ fix it - otherwise, it cannot be parsed
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4377
    ((chunk endsWith:'primitiveDefinitions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4378
    or:[(chunk endsWith:'primitiveFunctions:')
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4379
    or:[(chunk endsWith:'primitiveVariables:')]]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4380
        chunk := chunk , ''''''
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4381
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4382
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4383
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4384
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4385
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4386
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4387
    [
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4388
        Parser allowDollarInIdentifier:true.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4389
"/        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4390
"/        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4391
            aParseTree := self parseExpression:chunk.
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  4392
"/        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4393
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4394
        aParseTree == #Error ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4395
            (chunk includesString:'comment') ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4396
                "/ could be a comment ...
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4397
                aParseTree := self parseExpression:chunk , ''''.
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4398
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4399
        ].
3597
2e7fc0ae28c9 #valueNowOrOnUnwindDo: -> #ensure:
Claus Gittinger <cg@exept.de>
parents: 3586
diff changeset
  4400
    ] ensure:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4401
        Parser allowDollarInIdentifier:oldDollarSetting
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4402
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4403
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4404
        ^ 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
  4405
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4406
    aParseTree isMessage ifFalse:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4407
        ^ nil        "very strange ... (whats that ?)"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4408
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4409
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4410
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4411
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4412
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4413
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4414
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4415
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4416
     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
  4417
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4418
    (#(#'methodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4419
       #'privateMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4420
       #'protectedMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4421
       #'ignoredMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4422
       #'publicMethodsFor:'
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4423
       #'removeSelector:'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4424
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4425
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4426
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4427
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4428
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4429
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4430
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4431
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4432
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4433
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  4434
       #methodsFor                   "/ Dolphin support
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4435
       #categoriesForClass           "/ Dolphin support
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  4436
       #categoriesFor:               "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  4437
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4438
    ) includes:sel) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4439
        "
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4440
         yes, the className is the receiver
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4441
        "
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4442
        ^ self classNameFromReceiverInParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4443
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4444
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4445
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4446
     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
  4447
    "
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4448
    (('subclass:*' match:sel)
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
  4449
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4450
        "/ must parse the full changes text, to get
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4451
        "/ privacy information.
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4452
        ^ self classNameFromClassDefinitionChange:changeNr
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4453
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4454
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4455
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4456
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4457
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4458
    (sel == #removeClass:) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4459
        ^ self classNameFromRemoveClassParseTree:aParseTree
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4460
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4461
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4462
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4463
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4464
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4465
    ((sel == #category:)
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4466
    or:[sel == #package:
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  4467
    or:[sel == #privacy:]]) ifTrue:[
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4468
        ^ self classNameFromAttributeChangeParseTree:aParseTree
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4469
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4470
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4471
    sel == #renameClass:to: ifTrue:[
11397
5b04140c959f refactored common code
Claus Gittinger <cg@exept.de>
parents: 11396
diff changeset
  4472
        ^ self classNameFromRenameClassParseTree:aParseTree
11396
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4473
    ].
c0b421d2e7aa added:5 methods
Claus Gittinger <cg@exept.de>
parents: 11362
diff changeset
  4474
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4475
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4476
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4477
    "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
  4478
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4479
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4480
isClassDefinitionChange:changeNr
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4481
    |changeStream chunk fullParseTree sel|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4482
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4483
    "/ must parse the full changes text, to get privacy information.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4484
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4485
    changeStream := self streamForChange:changeNr.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4486
    changeStream isNil ifTrue:[ ^ false].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4487
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4488
    chunk := changeStream nextChunk.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4489
    changeStream close.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4490
    fullParseTree := self parseExpression:chunk.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4491
    (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4492
        ^ false
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4493
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4494
    fullParseTree isMessage ifFalse:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4495
        ^ false
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4496
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4497
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4498
    sel := fullParseTree selector.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4499
    ^ (Class definitionSelectors includes:sel).
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4500
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4501
    "Created: / 15-02-2019 / 12:08:44 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4502
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  4503
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4504
namespaceOfChange:changeNr
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4505
    "return the namespace of a change or nil"
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4506
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4507
    |className namespace idx|
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4508
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4509
    className := self classNameOfChange:changeNr.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4510
    className isNil ifTrue:[ ^ nil ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4511
15116
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4512
    idx := className indexOfSubCollection:'::'.
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4513
    idx == 0 ifTrue:[ ^ nil ].
065fdf5a3c78 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15090
diff changeset
  4514
    namespace := className copyTo:idx-1.
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4515
    ^  namespace
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4516
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  4517
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4518
numberOfChanges
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4519
    ^ changeInfoList size
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4520
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4521
    "Created: / 03-12-1995 / 18:15:39 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4522
    "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
  4523
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4524
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4525
ownerClassNameOfChange:changeNr
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4526
    "return the owner classname of a change
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4527
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4528
     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
  4529
4706
1493f8e6edb8 unused vars removed
Claus Gittinger <cg@exept.de>
parents: 4699
diff changeset
  4530
    |name "ns idx" cls|
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4531
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4532
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4533
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4534
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4535
    (cls notNil and:[cls isBehavior]) ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4536
	cls owningClass notNil ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4537
	    ^ cls owningClass name
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4538
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4539
	^ cls name
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4540
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4541
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4542
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4543
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4544
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4545
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4546
"/        ns notNil ifTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4547
"/
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4548
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4549
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4550
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4551
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4552
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4553
"/        ].
13851
6a1a69cacb7b merged in jv's chenges
Claus Gittinger <cg@exept.de>
parents: 13663
diff changeset
  4554
"/        ^ name copyButLast:6
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4555
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4556
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4557
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4558
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4559
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  4560
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4561
realClassNameOfChange:changeNr
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4562
    "return the classname of a change.
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4563
     - 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
  4564
       changeClassNames for the next query"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4565
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4566
    |name|
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4567
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4568
    name := self changeClassNameAt:changeNr.
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4569
    name isNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4570
        name := self fullClassNameOfChange:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4571
        name isNil ifTrue:[
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4572
            (changeInfoList at:changeNr) className:#nil.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4573
        ].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4574
    ].
5806
eaaab48a7e8b tuning (cache class name of change)
Claus Gittinger <cg@exept.de>
parents: 5735
diff changeset
  4575
    name == #nil ifTrue:[^ nil].
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4576
    ^ name
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4577
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4578
    "Created: / 05-11-2001 / 18:09:46 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4579
    "Modified: / 01-05-2016 / 19:24:53 / cg"
3364
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4580
!
8276ce475f4c className for metaClasses
Claus Gittinger <cg@exept.de>
parents: 3359
diff changeset
  4581
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4582
selectorOfMethodCategoryChange:changeNr
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4583
    "return a methodCategory-change's selector, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4584
     or nil if it's not a methodCategoryChange"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4585
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4586
    (changeInfoList at:changeNr) isMethodCategoryChange ifFalse:[^ nil].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4587
    ^ (changeInfoList at:changeNr) selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4588
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4589
    "Modified: / 01-05-2016 / 19:26:21 / cg"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4590
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4591
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4592
selectorOfMethodChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4593
    "return a method-change's selector, 
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4594
     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
  4595
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4596
    |sel |
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4597
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4598
    changeInfoList size >= changeNr ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4599
        (changeInfoList at:changeNr) isMethodCategoryChange ifTrue:[^ nil].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4600
        sel := (changeInfoList at:changeNr) selector.
15652
788f4c9d0b07 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15450
diff changeset
  4601
        sel notNil ifTrue:[ ^ sel ].
3202
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4602
    ].
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4603
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4604
    sel := self extractSelectorOfMethodChange:changeNr.
9f6e0824af37 added a pullDownMenu
Claus Gittinger <cg@exept.de>
parents: 3140
diff changeset
  4605
    sel notNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  4606
        self assert:(changeInfoList at:changeNr) isMethodCategoryChange not.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4607
        (changeInfoList at:changeNr) selector:sel.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4608
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4609
    ^ sel
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4610
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4611
    "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
  4612
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4613
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4614
sourceOfMethodChange:changeNr
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4615
    "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
  4616
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4617
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4618
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4619
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4620
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4621
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4622
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4623
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4624
        chunk := aStream nextChunk.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4625
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4626
        chunk := self changeChunkAt:changeNr.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4627
        sawExcla := true.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4628
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4629
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4630
    sawExcla ifTrue:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4631
        parseTree := self parseExpression:chunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4632
        (parseTree notNil
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4633
        and:[parseTree ~~ #Error
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4634
        and:[parseTree isMessage]]) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4635
            sel := parseTree selector.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4636
            (#(
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4637
               #methodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4638
               #privateMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4639
               #publicMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4640
               #ignoredMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4641
               #protectedMethodsFor:
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4642
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4643
               #methodsFor:stamp:             "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4644
               #commentStamp:prior:           "/ Squeak support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4645
               #methodsFor                    "/ Dolphin support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4646
               #methods                       "/ STV support
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4647
              )
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4648
            includes:sel) ifTrue:[
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4649
                sourceChunk := aStream nextChunk.
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4650
            ]
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  4651
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4652
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4653
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4654
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4655
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4656
    "Created: / 05-09-1996 / 17:11:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4657
    "Modified: / 01-05-2016 / 18:25:53 / cg"
17400
864c10ab558a #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17394
diff changeset
  4658
    "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
  4659
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4660
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4661
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4662
    "answer a stream for change"
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  4663
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4664
    |aStream encoding|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4665
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4666
    (changeNr between:1 and:changeInfoList size) ifFalse:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4667
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4668
    aStream := changeFileName asFilename readStreamOrNil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4669
    aStream isNil ifTrue:[^ nil].
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4670
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4671
    encodingIfKnown isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4672
        encoding := CharacterEncoder guessEncodingOfStream:aStream.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4673
        encodingIfKnown := encoding ? #none
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4674
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4675
    (encodingIfKnown notNil and:[encodingIfKnown ~~ #none]) ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4676
        aStream := EncodedStream stream:aStream encoding:encodingIfKnown.
5702
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4677
    ].
065d7f151b11 utf8 handling
Claus Gittinger <cg@exept.de>
parents: 5696
diff changeset
  4678
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4679
    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
  4680
    ^ aStream
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4681
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4682
    "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
  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
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4686
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4687
changeFileName:aFileName
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4688
    "set the name of the changeFile"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4689
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4690
    changeFileName := aFileName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  4691
    encodingIfKnown := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4692
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4693
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4694
checkIfFileHasChanged
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4695
    "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
  4696
     install a timeout for rechecking after some time."
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  4697
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4698
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4699
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4700
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4701
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4702
    (info := f info) isNil ifTrue:[
16092
mawalch
parents: 16022
diff changeset
  4703
        self newLabel:'(unaccessible)'
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4704
    ] ifFalse:[
16092
mawalch
parents: 16022
diff changeset
  4705
        (info modificationTime) > changeFileTimestamp ifTrue:[
mawalch
parents: 16022
diff changeset
  4706
            self newLabel:'(outdated)'.
mawalch
parents: 16022
diff changeset
  4707
            autoUpdate value ifTrue:[
mawalch
parents: 16022
diff changeset
  4708
                self doUpdate
mawalch
parents: 16022
diff changeset
  4709
            ]
mawalch
parents: 16022
diff changeset
  4710
        ] ifFalse:[
mawalch
parents: 16022
diff changeset
  4711
            self newLabel:''
mawalch
parents: 16022
diff changeset
  4712
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4713
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4714
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4715
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4716
    "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
  4717
    "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
  4718
    "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
  4719
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4720
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4721
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4722
    "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
  4723
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4724
5178
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4725
    self readChangesFileInBackground:false.
ccf3ab0d6cb1 dont change the label
Claus Gittinger <cg@exept.de>
parents: 5145
diff changeset
  4726
    self newLabel:''.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4727
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4728
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4729
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4730
    "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
  4731
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4732
     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
  4733
     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
  4734
        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
  4735
                '+' -> 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
  4736
                '-' -> 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
  4737
                '?' -> class does not exist currently
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4738
                '=' -> 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
  4739
                '~' -> 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
  4740
        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
  4741
        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
  4742
                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
  4743
                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
  4744
                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
  4745
        4   timestamp
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4746
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4747
     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
  4748
     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
  4749
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4750
    |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
  4751
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4752
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  4753
    askedForEditingClassSource := false.
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4754
    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
  4755
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4756
"/    maxLen := 60.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4757
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4758
    self newLabel:'updating ...'.
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4759
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4760
    (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
  4761
        ^ self class readXMLChangesFromFile:changeFileName inBackground:inBackground
3674
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4762
    ].
d5dac05f2892 xml: first attempt
Claus Gittinger <cg@exept.de>
parents: 3668
diff changeset
  4763
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4764
    f := changeFileName asFilename.
7346
a5129e941e23 catch none existing changefile
ca
parents: 7115
diff changeset
  4765
    f exists ifFalse:[^ self].
12635
3fea79e9a79b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12599
diff changeset
  4766
    inStream := EncodedStream decodedStreamFor:(f readStream).
5696
a9963eab6967 care for utf8-changefile
Claus Gittinger <cg@exept.de>
parents: 5527
diff changeset
  4767
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4768
    i := f info.
3965
e499c0dae8fc use #fileSize instead of #size
Claus Gittinger <cg@exept.de>
parents: 3962
diff changeset
  4769
    changeFileSize := i fileSize.
3962
3906b10c42fd modified -> modificationTime
Claus Gittinger <cg@exept.de>
parents: 3930
diff changeset
  4770
    changeFileTimestamp := i modificationTime.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4771
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4772
    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
  4773
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4774
         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
  4775
         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
  4776
        "
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4777
        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
  4778
            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
  4779
            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
  4780
            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
  4781
            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
  4782
        ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4783
3b2616b53ab3 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
        [
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4785
            |reader|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4786
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4787
            reader := ChangeFileReader new.
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  4788
            reader changeFileName:changeFileName.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4789
            reader browser:self.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4790
            reader enforcedNameSpace:enforcedNameSpace.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4791
            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
  4792
            reader autoloadAsRequired:autoloadAsRequired.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4793
            reader tabSpec:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4794
            reader inStream:inStream.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4795
            reader noColoring:(NoColoring == true).
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4796
            
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4797
            reader readChangesFile.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4798
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  4799
            editingClassSource := reader thisIsAClassSource.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4800
            changeInfoList := reader changeInfo.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4801
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  4802
            self showNumberOfChanges.
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4803
            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
  4804
        ] 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
  4805
            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
  4806
            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
  4807
                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
  4808
                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
  4809
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4810
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4811
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4812
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4813
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4814
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  4815
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4816
    "Modified: / 01-05-2016 / 19:13:09 / cg"
17953
cc8de7fac692 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17941
diff changeset
  4817
    "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
  4818
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4819
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4820
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4821
    "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
  4822
     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
  4823
     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
  4824
     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
  4825
     tempfile back to the change-file.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4826
     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
  4827
     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
  4828
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4829
    |inFilename inStream outStream stamp encoding tempFilename|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4830
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4831
    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
  4832
        (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
  4833
        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
  4834
            ^ 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
  4835
        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4836
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4837
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4838
    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
  4839
    [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4840
        inStream := inFilename readStream.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4841
    ] on:OpenError do:[:ex|
6415
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4842
        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
  4843
        ^ 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
  4844
    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4845
    [
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4846
        [
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4847
            outStream := FileStream newTemporaryIn:inFilename directory.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4848
            tempFilename := outStream fileName.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4849
        ] on:OpenError do:[:ex|
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4850
            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
  4851
            ^ false
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4852
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4853
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  4854
        outStream nextPutLine:'''---- encoding: utf8 ----''!!'.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4855
        outStream := EncodedStream stream:outStream encoder:(CharacterEncoder encoderForUTF8).
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4856
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4857
        encoding := CharacterEncoder guessEncodingOfStream:inStream.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4858
        encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4859
            inStream := EncodedStream stream:inStream encoding:encoding.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4860
        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4861
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  4862
        self withWriteCursorDo:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4863
            |excla sawExcla done first chunk
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4864
             nChanges "{Class:SmallInteger}" |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4865
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4866
            Stream writeErrorSignal handle:[:ex |
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4867
                self warn:('Could not update the changes file.\\' , ex description) withCRs.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4868
                outStream close.
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4869
                tempFilename remove.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4870
                ^ false
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4871
            ] do:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4872
                excla := inStream class chunkSeparator.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4873
                nChanges := self numberOfChanges.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4874
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4875
                1 to:nChanges do:[:index |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4876
                    inStream position:((changeInfoList at:index) position)-1.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4877
                    sawExcla := inStream peekFor:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4878
                    chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4879
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4880
                    (chunk notNil
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4881
                    and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4882
                        (stamp := (changeInfoList at:index) timestamp) notNil ifTrue:[
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4883
                            outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4884
                            outStream nextPut:excla; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4885
                        ].
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
  4886
                    ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4887
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4888
                    sawExcla ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4889
                        outStream nextPut:excla.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4890
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4891
                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4892
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4893
                         a method-definition chunk - output followups
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4894
                        "
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4895
                        done := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4896
                        first := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4897
                        [done] whileFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4898
                            chunk := inStream nextChunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4899
                            chunk isNil ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4900
                                outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4901
                                done := true
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4902
                            ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4903
                                chunk isEmpty ifTrue:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4904
                                    outStream space; nextChunkPut:chunk; cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4905
                                    done := true.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4906
                                ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4907
                                    first ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4908
                                        outStream cr; cr.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4909
                                    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4910
                                    outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4911
                                ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4912
                            ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4913
                            first := false.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4914
                        ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4915
                    ] ifFalse:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4916
                        outStream nextChunkPut:chunk.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4917
                        outStream cr
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4918
                    ]
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
  4919
                ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4920
                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
  4921
            ].
3b2616b53ab3 utf-8 characters have been destroyed if changes were written back to the change file
Stefan Vogel <sv@exept.de>
parents: 6386
diff changeset
  4922
            inStream close.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4923
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4924
            inFilename renameTo:inFilename asBackupFilename.
13123
4b8d430a503d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13078
diff changeset
  4925
            tempFilename renameTo:changeFileName.
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4926
            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
  4927
        ].
9020
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4928
    ] ensure:[
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4929
        inStream close.
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4930
    ].
e5a95e26ed83 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 9019
diff changeset
  4931
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4932
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4933
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4934
    "Modified: / 01-05-2016 / 19:30:34 / cg"
17376
58fdfc6f1652 #REFACTORING by stefan
Stefan Vogel <sv@exept.de>
parents: 17172
diff changeset
  4935
    "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
  4936
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4937
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4938
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  4939
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4940
appendChange:changeNr toFile:aFileNameOrFileNameString
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4941
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4942
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4943
    |fileName changeInStream outStream chunk chunk2 sawExcla separator encoding|
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4944
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4945
    changeInStream := self streamForChange:changeNr.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4946
    changeInStream isNil ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4947
        self warn:'Cannot read change'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4948
        ^ false
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4949
    ].
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4950
    changeInStream skipSeparators.
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4951
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4952
    separator := changeInStream class chunkSeparator.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4953
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4954
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4955
        sawExcla := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  4956
        chunk := self changeChunkAt:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  4957
    ] ifFalse:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4958
        sawExcla := changeInStream peekFor:separator.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4959
        chunk := changeInStream nextChunk.
3991
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4960
    ].
2cc69345bcd6 Use #error: insead of #halt.
Stefan Vogel <sv@exept.de>
parents: 3965
diff changeset
  4961
    chunk withoutSeparators isEmpty ifTrue:[
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  4962
        self proceedableError:'Empty chunk - should not happen'.
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4963
        ^ false.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4964
    ].
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4965
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4966
    fileName := aFileNameOrFileNameString asFilename.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4967
4632
c16dc83e3972 Handle openErrorSignal in preparition for change openErrorSignal
Stefan Vogel <sv@exept.de>
parents: 4599
diff changeset
  4968
    [
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4969
        outStream := fileName readWriteStream.
19395
e269a7cf908a #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19288
diff changeset
  4970
    ] on:OpenError do:[:ex|
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4971
        self warn:'Cannot update file: ''%1''' with:fileName.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4972
        ^ false
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  4973
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4974
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  4975
    outStream fileSize == 0 ifTrue:[
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4976
        encoding := #utf8.
15090
27f730f4fd5b class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15087
diff changeset
  4977
        outStream nextPutLine:'"{ Encoding: utf8 }" !!'.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4978
    ] ifFalse:[
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4979
        encoding := CharacterEncoder guessEncodingOfStream:outStream.
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4980
    ].
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4981
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  4982
    encoding notNil ifTrue:[
15858
720be96ab3bd #REFACTORING
Stefan Vogel <sv@exept.de>
parents: 15683
diff changeset
  4983
        outStream := EncodedStream stream:outStream encoding:encoding.
11476
a4678acc1e78 changed: #appendChange:toFile:
Stefan Vogel <sv@exept.de>
parents: 11475
diff changeset
  4984
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4985
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4986
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  4987
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4988
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4989
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4990
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4991
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4992
        chunk2 := changeInStream nextChunk.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4993
        chunk2 withoutSeparators isEmpty ifTrue:[
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4994
            self error:'Empty chunk - should not happen'.
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4995
        ].
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4996
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4997
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  4998
    sawExcla ifTrue:[
7618
92c7128604a4 changed #appendChange:toFile: Make error proceedable
Stefan Vogel <sv@exept.de>
parents: 7528
diff changeset
  4999
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5000
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5001
    outStream cr.
5735
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  5002
f550dbf1abd0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 5733
diff changeset
  5003
    changeInStream close.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5004
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5005
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5006
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5007
    "Modified: / 01-05-2016 / 18:25:00 / cg"
18152
10a1fcf3d9ec #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18136
diff changeset
  5008
    "Modified: / 24-05-2018 / 14:54:56 / Claus Gittinger"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5009
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5010
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5011
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
  5012
    "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
  5013
     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
  5014
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  5015
    |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
  5016
     alternativeClass shortName orgClassName nsClass aborted|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5017
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5018
    aStream := self streamForChange:changeNr.
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  5019
    aStream isNil ifTrue:[^ false].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5020
2965
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  5021
    className := self classNameOfChange:changeNr.
4ca3db1708a1 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2888
diff changeset
  5022
    className notNil ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5023
        className := className asSymbol.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5024
        enforcedNameSpace notNil ifTrue:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5025
            changeClass := enforcedNameSpace at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5026
        ] ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5027
            changeClass := Smalltalk at:className ifAbsent:nil.
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  5028
        ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5029
        changeClass isNil ifTrue:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5030
            changeClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5031
        ].
8351
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5032
        changeClass notNil ifTrue:[
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5033
            "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
  5034
             will create a class without methods"
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5035
            changeClass autoload.
e99a28a6288b changed #applyChange: load class before applying a change
Stefan Vogel <sv@exept.de>
parents: 8320
diff changeset
  5036
        ].
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5037
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5038
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5039
    changeNrProcessed := changeNr.
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5040
    aborted := false.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5041
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5042
    applyAction :=
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5043
        [
7783
a0c1578e65fb "Cancel all" did not work, when an error occured while applying multiple changes
Stefan Vogel <sv@exept.de>
parents: 7710
diff changeset
  5044
            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
  5045
                "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
  5046
                 Send AbortAllOperationRequest to abort multiple operations"
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5047
                aborted := true.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5048
                ex return.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5049
            ] do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5050
                nameSpace := self nameSpaceForApply.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5051
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5052
                pkg := enforcedPackage ? Class packageQuerySignal query.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5053
                Class packageQuerySignal answer:pkg
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5054
                do:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5055
                    Class nameSpaceQuerySignal answer:nameSpace
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5056
                    do:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5057
                        Class defaultApplicationQuerySignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5058
                            ex proceedWith:defaultApplicationForVAGEClasses
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5059
                        ] do:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5060
                            Class changeDefaultApplicationNotificationSignal handle:[:ex |
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5061
                                defaultApplicationForVAGEClasses := ex parameter.    
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5062
                            ] do:[
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5063
                                |skip|
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5064
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5065
                                skip := false.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5066
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5067
                                "/ a followup methodsFor: chunk ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5068
                                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5069
                                    methodsForChunk := self changeChunkAt:changeNr.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5070
                                ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5071
                                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5072
                                    doItChunk notEmpty ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5073
                                        doItChunk first = (Character value:16rFEFF) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5074
                                            doItChunk := doItChunk copyFrom:2.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5075
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5076
                                        Compiler evaluate:doItChunk notifying:self.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5077
                                    ] ifFalse:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5078
                                        methodsForChunk := aStream nextChunk.   "/ the real one
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5079
                                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5080
                                ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5081
                                methodsForChunk notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5082
                                    changeClass isNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5083
                                        orgClassName := className.
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5084
                                        classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5085
                                            className := classNameMap at:className ifAbsent:[className]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5086
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5087
                                        (className includes:$:) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5088
                                            ownerName := className copyTo:(className lastIndexOf:$:) - 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5089
                                            (ownerName endsWith:$:) ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  5090
                                                ownerName := ownerName copyButLast:1.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5091
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5092
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5093
                                            ownerClass := Smalltalk at:(ownerName asSymbol) ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5094
                                            ownerClass notNil ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5095
                                                ownerClass autoload
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5096
                                            ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5097
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5098
                                        (nameSpace notNil and:[nameSpace ~~ Smalltalk]) ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5099
                                            changeClass := nameSpace at:className ifAbsent:[].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5100
                                        ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5101
                                        changeClass isNil ifTrue:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5102
                                            changeClass := Smalltalk classNamed:className.
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5103
                                        ].
18975
7e6179cc8f17 #BUGFIX by alkurz
alkurz
parents: 18596
diff changeset
  5104
                                        [changeClass isNil and:[className notNil]] whileTrue:[
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5105
                                            (NameSpace allNameSpaces
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  5106
                                                contains:[:ns | (nsClass := (ns at:className asSymbol)) notNil])
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5107
                                            ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5108
                                                shortName := nsClass name.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5109
                                            ] ifFalse:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5110
                                                shortName := className copyFrom:(className lastIndexOf:$:) + 1.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5111
                                                shortName = className ifTrue:[
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5112
                                                     shortName := ''
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5113
                                                ].
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5114
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5115
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5116
                                            skip := false.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5117
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5118
                                            Dialog modifyingBoxWith:[:box |
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  5119
                                                "/ self halt.
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5120
                                                box 
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5121
                                                    addButton:(Button label:'Skip' action:[skip := true. box hide])
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5122
                                                    after:box noButton
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5123
                                            ] do:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5124
                                                className := Dialog
12973
5639ba869f9d class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 12946
diff changeset
  5125
                                                            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
  5126
                                                            initialAnswer:shortName.
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5127
                                            ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5128
                                            skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5129
                                                className isNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5130
                                                    AbortAllOperationRequest raise.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5131
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5132
                                                className isEmpty ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5133
                                                    ^ false
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5134
                                                ].
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5135
                                                alternativeClass := Smalltalk classNamed:className.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5136
                                                alternativeClass notNil ifTrue:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5137
                                                    changeClass := alternativeClass
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5138
                                                ]
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5139
                                            ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5140
                                        ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5141
                                        skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5142
                                            methodsForChunk := methodsForChunk copyFrom:(methodsForChunk indexOfSeparator).
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5143
                                            methodsForChunk := changeClass name , methodsForChunk.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5144
                                        ].
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5145
                                    ].
17899
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5146
                                    skip ifFalse:[
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5147
                                        reader := Compiler evaluate:methodsForChunk notifying:self.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5148
                                        reader fileInFrom:aStream notifying:self passChunk:false single:true.
fd1e7993ab71 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 17848
diff changeset
  5149
                                    ]                        
11244
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5150
                                ]
0b40d366b57c class definition
Claus Gittinger <cg@exept.de>
parents: 11243
diff changeset
  5151
                            ]
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5152
                        ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5153
                    ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5154
                ]
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5155
            ].
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5156
            changeNrProcessed := nil.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5157
        ].
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5158
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5159
    "/
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  5160
    "/ 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
  5161
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5162
    changeFileName = ObjectMemory nameForChanges ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5163
        Class withoutUpdatingChangesDo:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5164
            Class updateChangeListQuerySignal answer:updateChangeSet value do:applyAction
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5165
        ]
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5166
    ] ifFalse:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  5167
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5168
    ].
4877
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5169
    aStream close.
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5170
afb0c431cb4b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 4869
diff changeset
  5171
    ^ aborted not
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  5172
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5173
    "Modified: / 01-05-2016 / 18:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5174
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5175
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5176
compareCategoryChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5177
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5178
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5179
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5180
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5181
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5182
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5183
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5184
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5185
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5186
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5187
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5188
                method category = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5189
                    ^ true -> 'Change has no effect\\(same category)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5190
                ] ifFalse:[
8173
ec8bc991650c #compareCategoryChange: fix
Stefan Vogel <sv@exept.de>
parents: 8164
diff changeset
  5191
                    ^ false -> ('Category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')').
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5192
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5193
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5194
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5195
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5196
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5197
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5198
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5199
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5200
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5201
compareChange:changeNr
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5202
    "compare a change with the current (in-image) version; 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5203
     show the result of the compare (as dialog)"
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5204
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5205
    ^ self compareChange:changeNr showResult:true
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5206
!
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5207
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5208
compareChange:changeNr showResult:doShowResult
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5209
    "compare a change with current version.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5210
     Return the result of the compare 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5211
        same -> true, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5212
        different -> false, 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5213
        uncomparable -> nil.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5214
     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
  5215
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5216
    |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
  5217
     isSame ownerClass superClassHere superClassInChange sameAndOutcome|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5218
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5219
    aStream := self streamForChange:changeNr.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5220
    aStream isNil ifTrue:[^ nil].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5221
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5222
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  5223
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  5224
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5225
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5226
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5227
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5228
        chunk := self changeChunkAt:changeNr.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5229
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5230
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  5231
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5232
    isSame := nil.
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5233
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  5234
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5235
    sawExcla ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5236
        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
  5237
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5238
        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5239
        do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5240
            parseTree := self parseExpression:chunk.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5241
        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5242
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5243
            selector := parseTree selector.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5244
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5245
            selector == #'removeSelector:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5246
                sameAndOutcome := self compareRemoveSelectorChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5247
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5248
                outcome := sameAndOutcome value.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5249
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5250
            selector == #'package:' ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5251
                sameAndOutcome := self comparePackageChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5252
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5253
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5254
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5255
            selector == #'category:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5256
                sameAndOutcome := self compareCategoryChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5257
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5258
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5259
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5260
            selector == #'comment:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5261
                sameAndOutcome := self compareCommentChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5262
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5263
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5264
            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5265
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5266
            selector == #'instanceVariableNames:' ifTrue:[
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5267
                sameAndOutcome := self compareInstanceVariableNamesChange:parseTree.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5268
                isSame := sameAndOutcome key.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5269
                outcome := sameAndOutcome value.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5270
            ].
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
            (Class definitionSelectors includes:selector)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5273
            "/ selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5274
            ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5275
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5276
                    superClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5277
                ] on:Parser undefinedVariableError do:[:ex| ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5278
                superClass isBehavior ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5279
                    outcome := 'Cannot compare this change\\(superclass not loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5280
                    isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5281
                ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5282
                    (self checkClassIsLoaded:superClass) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5283
                        thisClassSym := (parseTree arguments at:1) evaluate.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5284
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5285
                        (selector endsWith:':privateIn:') ifTrue:[
11475
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5286
                            Parser undefinedVariableError catch:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5287
                                ownerClass := (parseTree arguments at:5) evaluate.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5288
                                ownerClass isBehavior ifTrue:[
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5289
                                    thisClass := ownerClass privateClassesAt:thisClassSym.
b6fdfe902263 changed: #compareChange:showResult:
Stefan Vogel <sv@exept.de>
parents: 11397
diff changeset
  5290
                                ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5291
                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5292
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5293
                            thisClass := (self nameSpaceForApply) at:thisClassSym ifAbsent:nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5294
                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5295
                        thisClass isNil ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5296
                            outcome := 'Change defines the class: ' , thisClassSym allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5297
                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5298
                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5299
                            (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5300
                                outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5301
                                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5302
                            ] ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5303
                                superClassHere := thisClass superclass name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5304
                                superClassInChange := parseTree receiver name.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5305
                                superClassHere ~~ superClassInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5306
                                    outcome := 'Superclass is different.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5307
                                    isSame := false.
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
                                    varsHere := thisClass instanceVariableString asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5310
                                    varsInChange := (parseTree arguments at:2) evaluate asCollectionOfWords.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5311
                                    varsHere = varsInChange ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5312
                                        thisClass classVariableString asCollectionOfWords = (parseTree arguments at:3) evaluate asCollectionOfWords ifTrue:[
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5313
                                            ((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
  5314
                                                ((selector endsWith:':category:')
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5315
                                                and:[thisClass category ~= (parseTree arguments at:5) evaluate]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5316
                                                    outcome := 'Category is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5317
                                                    isSame := false.
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
                                                    outcome := 'Change has no effect\\(same definition)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5320
                                                    isSame := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5321
                                                ]
4296
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5322
    "/                                            thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5323
    "/                                                outcome := 'Change has no effect\\(same definition)'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5324
    "/                                                isSame := true.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5325
    "/                                            ] ifFalse:[
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5326
    "/                                                outcome := 'Category is different'.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5327
    "/                                                isSame := false.
4ad7dde4a3db care for unknown class in doIt;
Claus Gittinger <cg@exept.de>
parents: 4283
diff changeset
  5328
    "/                                            ]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5329
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5330
                                                outcome := 'SharedPool definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5331
                                                isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5332
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5333
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5334
                                            outcome := 'ClassVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5335
                                            isSame := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5336
                                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5337
                                    ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5338
                                        outcome := 'InstanceVariable definition is different'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5339
                                        isSame := false.
12825
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5340
                                        addedVars := varsInChange reject:[:eachVar | (varsHere includes:eachVar)].
5984b1e444d9 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12738
diff changeset
  5341
                                        removedVars := varsHere reject:[:eachVar | (varsInChange includes:eachVar)].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5342
                                        addedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5343
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5344
                                                outcome := 'Change reorders instanceVariable(s)'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5345
                                            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5346
                                                removedVars := removedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5347
                                                outcome := 'Change removes instanceVariable(s): ' , (removedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5348
                                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5349
                                        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5350
                                            removedVars isEmpty ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5351
                                                addedVars := addedVars collect:[:eachVar | '''' , eachVar , ''''].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5352
                                                outcome := 'Change adds instanceVariable(s): ' , (addedVars asStringWith:Character space) allBold.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5353
                                            ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5354
                                        ].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5355
                                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5356
                                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5357
                            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5358
                        ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5359
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5360
                ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5361
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5362
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5363
    ] ifTrue:[
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5364
        Class nameSpaceQuerySignal 
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5365
            answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5366
            do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5367
                parseTree := self parseExpression:chunk.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5368
            ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5369
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5370
        (parseTree notNil
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5371
         and:[parseTree ~~ #Error
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5372
         and:[parseTree isMessage]]) ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5373
            "/ Squeak support (#methodsFor:***)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5374
            (#(
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5375
               #methodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5376
               #privateMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5377
               #publicMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5378
               #ignoredMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5379
               #protectedMethodsFor:
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5380
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5381
               #methodsFor:stamp:             "/ Squeak support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5382
               #methodsFor                    "/ Dolphin support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5383
               #methods                       "/ STV support
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5384
              )
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5385
            includes:parseTree selector) ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5386
                [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5387
                    thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5388
                ] on:Parser undefinedVariableError do:[:ex|   
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5389
                    outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5390
                    isSame := nil.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5391
                ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5392
                thisClass notNil ifTrue:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5393
                    (thisClass isKindOf:UndefinedVariable) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5394
                        |thisName path|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5395
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5396
                        thisName := thisClass name.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5397
                        classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5398
                            thisName := classNameMap at:thisName ifAbsent:[thisName]
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5399
                        ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5400
                        path := thisName asCollectionOfSubstringsSeparatedByAll:'::'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5401
                        1 to:path size do:[:length |
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5402
                            |ownerName owner|
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5403
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5404
                            ownerName := (path copyTo:length) asStringCollection asStringWith:'::'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5405
                            owner := Smalltalk loadedClassNamed:ownerName.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5406
                            (owner notNil and:[owner isBehavior and:[owner isLoaded not]]) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5407
                                self checkClassIsLoaded:owner.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5408
                            ].
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5409
                        ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5410
                        thisClass := parseTree receiver evaluate.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5411
                    ].
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5412
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5413
                    thisClass isBehavior ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5414
                        parseTree selector == #methodsFor ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5415
                            cat := 'Dolphin methods'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5416
                        ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5417
                            parseTree selector == #methods ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5418
                                cat := 'STV methods'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5419
                            ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5420
                                cat := parseTree arg1 evaluate.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5421
                            ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5422
                        ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5423
                        newSource := aStream nextChunk.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5424
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5425
                        isSame := self 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5426
                                    compareMethodSource:newSource 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5427
                                    withVersionInClass:thisClass 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5428
                                    into:[:outcomeResult :beepResult :oldSourceResult| 
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5429
                                        outcome := outcomeResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5430
                                        beep := beepResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5431
                                        oldSource := oldSourceResult.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5432
                                    ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5433
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5434
                        isSame isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5435
                            showDiff := false.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5436
                        ] ifFalse:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5437
                            showDiff := isSame not.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5438
                        ].
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5439
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5440
                        doShowResult ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5441
                            (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5442
                                d := DiffCodeView
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5443
                                        openOn:oldSource label:(resources string:'Current version (in image)')
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5444
                                        and:newSource label:(resources string:'Change version').
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5445
                                d label:'method differences'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5446
                            ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5447
                        ]
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5448
                    ] ifFalse:[
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5449
                        beep := true.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5450
                        outcome := 'Class does not exist.'.
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5451
                        isSame := nil.
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5452
                    ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5453
                ]
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  5454
            ] ifFalse:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5455
                beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5456
                outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5457
                isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5458
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5459
        ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5460
            beep := true.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5461
            outcome := 'Not comparable.'.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5462
            isSame := nil.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5463
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5464
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5465
    aStream close.
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5466
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5467
    doShowResult ifTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5468
        showDiff ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5469
            outcome := (resources stringWithCRs:outcome).
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5470
            beep ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5471
                self warn:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5472
            ] ifFalse:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5473
                self information:outcome.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5474
            ]
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  5475
        ].
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5476
    ].
2835
e78ff6b04c84 added compare&compress
Claus Gittinger <cg@exept.de>
parents: 2834
diff changeset
  5477
    ^ isSame.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5478
9689
72819fbf329a changed: #compareChange:showResult:
Claus Gittinger <cg@exept.de>
parents: 9621
diff changeset
  5479
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5480
    "Modified: / 01-05-2016 / 18:25:32 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5481
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5482
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5483
compareCommentChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5484
    |thisClass|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5485
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5486
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5487
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5488
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5489
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5490
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5491
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5492
            (thisClass comment = parseTree arg1 evaluate) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5493
                ^ true -> 'Change has no effect\\(same comment)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5494
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5495
                ^ false -> 'Comment is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5496
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5497
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5498
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5499
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5500
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5501
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5502
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5503
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5504
compareInstanceVariableNamesChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5505
    |receiverExpression thisClass varsHere varsInChange |
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5506
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5507
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5508
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5509
        receiverExpression selector == #class ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5510
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5511
                thisClass := receiverExpression evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5512
            ] on:Parser undefinedVariableError do:[:ex| 
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5513
                ^ nil -> 'Class is not loaded'.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5514
            ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5515
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5516
            varsHere := thisClass instanceVariableString asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5517
            varsInChange := (parseTree arguments at:1) evaluate asCollectionOfWords.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5518
            varsHere = varsInChange ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5519
                ^ true -> 'Change has no effect\\(same definition)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5520
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5521
                ^ false -> 'Class-instanceVariable definition is different'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5522
            ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5523
        ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5524
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5525
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5526
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5527
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5528
compareMethodSource:newSource withVersionInClass:thisClass into:aThreeArgBlock
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5529
    "returns true/false/nil if same,different,undecided;
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5530
     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
  5531
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5532
    <ignore: RBReturnsBooleanAndOtherRule rationale: 'done by purpose' author: 'cg'>
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5533
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5534
    |parser sel oldMethod oldSource outcome t1 t2 isLoaded|
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5535
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5536
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5537
    do:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5538
        parser := Parser parseMethod:newSource in:thisClass.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5539
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5540
    (parser isNil or:[parser == #Error]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5541
        outcome := 'Change is unparsable (parse error).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5542
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5543
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5544
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5545
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5546
    sel := parser selector.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5547
    oldMethod := thisClass compiledMethodAt:sel.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5548
    oldMethod isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5549
        (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5550
            outcome := 'Cannot compare this change\\(compare requires class to be loaded).'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5551
        ] ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5552
            outcome := 'Method does not exist.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5553
        ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5554
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5555
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5556
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5557
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5558
    oldSource := oldMethod source.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5559
    oldSource isNil ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5560
        outcome := 'No source for compare.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5561
        aThreeArgBlock value:outcome value:true "beep" value:nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5562
        ^ nil.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5563
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5564
    (oldSource = newSource) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5565
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5566
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5567
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5568
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5569
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5570
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5571
    "/ compare for tabulator <-> space changes
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5572
    "/ before showing diff ...
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5573
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5574
    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5575
    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5576
    t1 = t2 ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5577
        outcome := 'Same source'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5578
        aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5579
        ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5580
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5581
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5582
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5583
    "/ check if only historyLine diffs
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5584
    "/
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5585
    (HistoryManager notNil
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5586
    and:[HistoryManager isActive]) ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5587
        (HistoryManager withoutHistoryLines:newSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5588
        =
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5589
        (HistoryManager withoutHistoryLines:oldSource)
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5590
        ifTrue:[
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5591
            outcome := 'Same source (history only)'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5592
            aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5593
            ^ true.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5594
        ]
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5595
    ].
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5596
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5597
    outcome := 'Source changed.'.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5598
    aThreeArgBlock value:outcome value:false "beep" value:oldSource.
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5599
    ^ false.
17579
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5600
b1fc64682aed #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17565
diff changeset
  5601
    "Modified: / 16-07-2017 / 13:32:05 / cg"
15016
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5602
!
2805b669b6ea class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15012
diff changeset
  5603
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5604
comparePackageChange:parseTree
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5605
    |receiverExpression method thisClass|
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5606
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5607
    receiverExpression := parseTree receiver.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5608
    receiverExpression isMessage ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5609
        receiverExpression selector == #compiledMethodAt: ifTrue:[
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5610
            [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5611
                thisClass := receiverExpression receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5612
            ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5613
            (thisClass isBehavior
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5614
             and:[(method := receiverExpression evaluate) isMethod]) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5615
                method package = parseTree arg1 evaluate ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5616
                    ^ true -> 'Change has no effect\\(same package)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5617
                ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5618
                    ^ 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
  5619
                ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5620
            ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5621
                ^ nil -> 'There is no such method'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5622
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5623
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5624
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5625
    ^ nil -> 'Unhandled receiver'
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5626
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5627
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5628
compareRemoveSelectorChange:parseTree
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5629
    |thisClass selector|
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5630
9888
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5631
    [
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5632
        thisClass := parseTree receiver evaluate.
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5633
    ] on:Parser undefinedVariableError do:[:ex| ].
ae852239c170 changed:6 methods
Stefan Vogel <sv@exept.de>
parents: 9718
diff changeset
  5634
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5635
    thisClass isBehavior ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5636
        (self checkClassIsLoaded:thisClass) ifTrue:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5637
            selector := (parseTree arg1 evaluate).
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5638
            (thisClass includesSelector:selector) ifTrue:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5639
                ^ false -> ('Change removes the #' , selector , ' method from ' , thisClass name).
7953
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5640
            ] ifFalse:[
8000
3412bd5bb2dc Fix compare&compress
Stefan Vogel <sv@exept.de>
parents: 7953
diff changeset
  5641
                ^ 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
  5642
            ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5643
        ] ifFalse:[
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5644
            ^ nil -> 'Cannot compare this change (compare requires class to be loaded).'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5645
        ]
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5646
    ].
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5647
    ^ nil -> 'Cannot compare this change (class not present)'.
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5648
!
23bd20d36582 refactored
Claus Gittinger <cg@exept.de>
parents: 7783
diff changeset
  5649
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5650
compressForClass:aClassNameOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5651
    "compress the change-set;
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5652
     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
  5653
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5654
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5655
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5656
    self
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5657
	compressForClass:aClassNameOrNil selector:nil
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5658
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5659
    "Modified: / 19.11.2001 / 22:04:12 / cg"
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5660
!
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5661
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5662
compressForClass:aClassNameOrNil selector:selectorToCompressOrNil
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5663
    "compress the change-set;
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5664
     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
  5665
     If the class argument is nil, compress for all classes.
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5666
     otherwise, only changes for that class are compressed."
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5667
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5668
    |lbl aStream searchIndex anyMore deleteSet index
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5669
     str snapshotProto snapshotPrefix snapshotNameIndex|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5670
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5671
    changeFileName notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5672
        aStream := changeFileName asFilename readStreamOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5673
        aStream isNil ifTrue:[^ self].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5674
    ].
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5675
4762
ff173a690f0f checkin from browser
Claus Gittinger <cg@exept.de>
parents: 4706
diff changeset
  5676
    lbl := 'compressing'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5677
    aClassNameOrNil isNil ifTrue:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5678
        selectorToCompressOrNil notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5679
            lbl := lbl , ' for ' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5680
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5681
    ] ifFalse:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5682
        selectorToCompressOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5683
            lbl := lbl , ' for ' , aClassNameOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5684
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5685
            lbl := lbl , ' for ' , aClassNameOrNil , '>>' , selectorToCompressOrNil.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5686
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5687
    ].
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5688
    lbl := lbl , '...'.
3456
080399eeaab1 added compressForClass-selector function
Claus Gittinger <cg@exept.de>
parents: 3455
diff changeset
  5689
    self newLabel:lbl.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5690
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5691
    CompressSnapshotInfo == true ifTrue:[
7507
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
         get a prototype snapshot record (to be independent of
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5694
         the actual format ..
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5695
        "
16877
06db0d151de3 #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 16478
diff changeset
  5696
        str := WriteStream on:''.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5697
        Class addChangeRecordForSnapshot:'foo' to:str.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5698
        snapshotProto := str contents.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5699
        snapshotPrefix := snapshotProto copyTo:10.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5700
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5701
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5702
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5703
    self withExecuteCursorDo:[
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5704
        |numChanges classes selectors types excla sawExcla
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5705
         chunk aParseTree parseTreeChunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5706
         thisClass thisSelector codeChunk codeParser
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5707
         compressThis fileName|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5708
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5709
        numChanges := self numberOfChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5710
        classes := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5711
        selectors := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5712
        types := Array new:numChanges.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5713
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5714
        "starting at the end, get the change class and change selector;
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5715
         collect all in classes / selectors"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5716
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5717
        aStream notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5718
            excla := aStream class chunkSeparator.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5719
            numChanges to:1 by:-1 do:[:changeNr |
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5720
                aStream position:((changeInfoList at:changeNr) position)-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5721
                sawExcla := aStream peekFor:excla.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5722
                chunk := aStream nextChunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5723
                sawExcla ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5724
                    "optimize a bit if multiple methods for same category arrive"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5725
                    (chunk = parseTreeChunk) ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5726
                        aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5727
                        parseTreeChunk := chunk
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5728
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5729
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5730
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5731
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5732
                        (#(
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5733
                           #methodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5734
                           #privateMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5735
                           #publicMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5736
                           #ignoredMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5737
                           #protectedMethodsFor:
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5738
                           #methodsFor:stamp:             "/ Squeak support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5739
                           #methodsFor                    "/ Dolphin support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5740
                           #methods                       "/ STV support
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5741
                          )
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5742
                        includes:aParseTree selector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5743
                            codeChunk := aStream nextChunk.
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5744
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5745
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5746
                                codeParser := Parser
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5747
                                                  parseMethodSpecification:codeChunk
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5748
                                                  in:thisClass
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5749
                                                  ignoreErrors:true
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5750
                                                  ignoreWarnings:true.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5751
                                (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5752
                                    selectors at:changeNr put:(codeParser selector).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5753
                                    classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5754
                                    types at:changeNr put:#methodsFor
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5755
                                ]
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5756
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5757
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5758
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5759
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5760
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5761
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5762
                ] ifFalse:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  5763
                    aParseTree := self parseExpression:chunk.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5764
                    parseTreeChunk := chunk.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5765
                    (aParseTree notNil
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5766
                    and:[(aParseTree ~~ #Error)
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5767
                    and:[aParseTree isMessage]]) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5768
                        (aParseTree selector == #removeSelector:) ifTrue:[
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5769
                            [
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5770
                                thisClass := aParseTree receiver evaluate.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5771
                                selectors at:changeNr put:(aParseTree arg1 value).
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5772
                                classes at:changeNr put:thisClass.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5773
                                types at:changeNr put:#removeSelector
18133
a60d3e917481 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 18123
diff changeset
  5774
                            ] on:ParseError do:[:ex|
9543
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5775
                                "ignore chunk"        
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5776
                                ex return.
5d4b92f6e483 changed: #compressForClass:selector:
Stefan Vogel <sv@exept.de>
parents: 9527
diff changeset
  5777
                            ].
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5778
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5779
                    ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5780
                        CompressSnapshotInfo == true ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5781
                            (chunk startsWith:snapshotPrefix) ifTrue:[
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  5782
                                str := chunk readStream position:snapshotNameIndex-1.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5783
                                fileName := str upTo:(Character space).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5784
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5785
                                 kludge to allow use of match-check below
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5786
                                "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5787
                                selectors at:changeNr put:snapshotPrefix.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5788
                                classes at:changeNr put:fileName.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5789
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5790
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5791
                    ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5792
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5793
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5794
            aStream close.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5795
        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5796
            numChanges to:1 by:-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5797
                |change|
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5798
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5799
                classes at:changeNr put:(self classOfChange:changeNr ifAbsent:[:className| nil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5800
                selectors at:changeNr put:(self selectorOfMethodChange:changeNr).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5801
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5802
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5803
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5804
        "for all changes, look for another class/selector occurrence later
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5805
         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
  5806
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5807
        deleteSet := OrderedCollection new.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5808
        1 to:self numberOfChanges-1 do:[:changeNr |
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5809
            thisClass := classes at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5810
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5811
            compressThis := false.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5812
            aClassNameOrNil isNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5813
                compressThis := true
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5814
            ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5815
                "/ skipping unloaded/unknown classes
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5816
                thisClass isBehavior ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5817
                    compressThis := aClassNameOrNil = thisClass theNonMetaclass name.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5818
                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5819
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5820
            compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5821
                thisSelector := selectors at:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5822
                compressThis := (selectorToCompressOrNil isNil or:[thisSelector == selectorToCompressOrNil]).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5823
                compressThis ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5824
                    searchIndex := changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5825
                    anyMore := true.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5826
                    [anyMore] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5827
                        searchIndex := classes indexOf:thisClass startingAt:(searchIndex + 1).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5828
                        (searchIndex ~~ 0) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5829
                            ((selectors at:searchIndex) == thisSelector) ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5830
                                thisClass notNil ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5831
                                    deleteSet add:changeNr.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5832
                                    anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5833
                                ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5834
                            ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5835
                        ] ifFalse:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5836
                            anyMore := false
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5837
                        ]
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5838
                    ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5839
                ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5840
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5841
        ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5842
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5843
        "finally delete what has been found"
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5844
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5845
        (deleteSet size > 0) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5846
            self unselect.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5847
            index := deleteSet size.
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5848
            [index > 0] whileTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5849
                self silentDeleteChange:(deleteSet at:index).
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5850
                index := index - 1
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5851
            ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5852
            self updateChangeList.
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5853
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5854
             scroll back a bit, if we are left way behind the list
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5855
            "
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5856
            changeListView firstLineShown > self numberOfChanges ifTrue:[
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5857
                changeListView makeLineVisible:self numberOfChanges
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5858
            ].
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5859
            self clearCodeView
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5860
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5861
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5862
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5863
7507
c7dbb0c5d864 changeSetbrowser fixes
Claus Gittinger <cg@exept.de>
parents: 7463
diff changeset
  5864
    "Created: / 19-11-2001 / 22:03:42 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5865
    "Modified: / 01-05-2016 / 19:23:54 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5866
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  5867
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5868
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5869
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5870
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5871
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5872
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5873
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5874
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5875
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5876
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5877
    self unselect.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5878
    stop to:start by:-1 do:[:changeNr |
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  5879
        self silentDeleteInternalChange:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5880
    ].
6255
b43a5b25e300 faster delete
Claus Gittinger <cg@exept.de>
parents: 6216
diff changeset
  5881
    changeListView removeFromIndex:start toIndex:stop.
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5882
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5883
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  5884
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5885
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5886
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  5887
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  5888
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5889
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  5890
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5891
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5892
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5893
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5894
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5895
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5896
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5897
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5898
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5899
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5900
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5901
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5902
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5903
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5904
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  5905
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  5906
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5907
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5908
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5909
"/    changePositions size >= changeNr ifTrue:[ changePositions removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5910
"/    changeClassNames size >= changeNr ifTrue:[ changeClassNames removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5911
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5912
"/    changeHeaderLines size >= changeNr ifTrue:[ changeHeaderLines removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5913
"/    changeTimeStamps size >= changeNr ifTrue:[ changeTimeStamps removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5914
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[ changeIsFollowupMethodChange removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5915
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  5916
    "Modified: / 01-05-2016 / 19:20:40 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5917
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5918
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5919
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
  5920
    "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
  5921
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5922
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5923
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5924
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5925
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5926
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  5927
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5928
	thisClassName := self classNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5929
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5930
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5931
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5932
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5933
	index := index - 1
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5934
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  5935
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  5936
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5937
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  5938
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5939
silentDeleteChangesFor:aClassName selector:selector from:start to:stop
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5940
    "delete changes for given class/selector in a range.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5941
     Return the number of deleted changes."
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5942
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5943
    |thisClassName index numDeleted|
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5944
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5945
    numDeleted := 0.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5946
    index := stop.
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5947
    [index >= start] whileTrue:[
17600
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5948
        thisClassName := self realClassNameOfChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5949
        thisClassName = aClassName ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5950
            (self selectorOfMethodChange:index) == selector ifTrue:[
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5951
                self silentDeleteChange:index.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5952
                numDeleted := numDeleted + 1.
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5953
            ]
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5954
        ].
b79f3e9c0da9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17597
diff changeset
  5955
        index := index - 1
3607
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5956
    ].
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5957
    ^ numDeleted
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5958
!
7c475122d0f6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3598
diff changeset
  5959
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5960
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5961
    "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
  5962
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5963
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5964
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5965
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5966
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5967
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5968
    [index >= start] whileTrue:[
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5969
	thisClassName := self ownerClassNameOfChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5970
	thisClassName = aClassName ifTrue:[
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5971
	    self silentDeleteChange:index.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5972
	    numDeleted := numDeleted + 1.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5973
	].
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  5974
	index := index - 1
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5975
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5976
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5977
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5978
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  5979
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5980
silentDeleteChangesForNamespace:aNamespace from:start to:stop
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5981
    "delete changes for a given namespace in a range.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5982
     Return the number of deleted changes."
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5983
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5984
    |thisNamespace index numDeleted|
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5985
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5986
    numDeleted := 0.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5987
    index := stop.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5988
    [index >= start] whileTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5989
        thisNamespace := self namespaceOfChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5990
        thisNamespace = aNamespace ifTrue:[
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5991
            self silentDeleteChange:index.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5992
            numDeleted := numDeleted + 1.
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5993
        ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5994
        index := index - 1
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5995
    ].
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5996
    ^ numDeleted
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5997
!
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  5998
18596
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  5999
silentDeleteCheckinInfosFor:aClassName from:start to:stop
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6000
    "delete checkn infos for given class in a range.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6001
     Return the number of deleted changes."
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6002
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6003
    |thisClassName index numDeleted|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6004
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6005
    numDeleted := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6006
    index := stop.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6007
    [index >= start] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6008
        thisClassName := self realClassNameOfChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6009
        thisClassName = aClassName ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6010
            (self changeIsCheckinInfo:index) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6011
                self silentDeleteChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6012
                numDeleted := numDeleted + 1.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6013
            ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6014
        ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6015
        index := index - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6016
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6017
    ^ numDeleted
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6018
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6019
    "Created: / 15-02-2019 / 12:23:17 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6020
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6021
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6022
silentDeleteClassDefinitionChangesFor:aClassName from:start to:stop
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6023
    "delete class definition changes for given class in a range.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6024
     Return the number of deleted changes."
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6025
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6026
    |thisClassName index numDeleted|
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6027
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6028
    numDeleted := 0.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6029
    index := stop.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6030
    [index >= start] whileTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6031
        thisClassName := self realClassNameOfChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6032
        thisClassName = aClassName ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6033
            (self isClassDefinitionChange:index) ifTrue:[
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6034
                self silentDeleteChange:index.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6035
                numDeleted := numDeleted + 1.
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6036
            ]
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6037
        ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6038
        index := index - 1
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6039
    ].
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6040
    ^ numDeleted
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6041
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6042
    "Created: / 15-02-2019 / 12:12:19 / Claus Gittinger"
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6043
!
48275ca92cf1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18490
diff changeset
  6044
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6045
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6046
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6047
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  6048
    anyChanges := true.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6049
    changeInfoList removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6050
"/    changeChunks removeIndex:changeNr.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6051
"/    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6052
"/    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6053
"/    changeSelectors size >= changeNr ifTrue:[ changeSelectors removeIndex:changeNr ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6054
"/    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6055
"/    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6056
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6057
    "Created: / 07-03-1997 / 16:28:32 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6058
    "Modified: / 26-02-1998 / 18:20:48 / stefan"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6059
    "Modified: / 01-05-2016 / 19:20:59 / cg"
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6060
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6061
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6062
silentDeleteMethodCategoryChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6063
    "delete method category changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6064
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6065
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6066
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6067
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6068
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6069
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6070
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6071
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6072
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6073
            (self selectorOfMethodCategoryChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6074
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6075
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6076
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6077
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6078
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6079
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6080
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6081
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6082
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6083
silentDeleteMethodChangesFor:aClassName selector:selector from:start to:stop
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6084
    "delete method changes for given class/selector in a range.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6085
     Return the number of deleted changes."
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6086
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6087
    |thisClassName index numDeleted|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6088
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6089
    numDeleted := 0.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6090
    index := stop.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6091
    [index >= start] whileTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6092
        thisClassName := self realClassNameOfChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6093
        thisClassName = aClassName ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6094
            (self selectorOfMethodChange:index) == selector ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6095
                self silentDeleteChange:index.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6096
                numDeleted := numDeleted + 1.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6097
            ]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6098
        ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6099
        index := index - 1
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6100
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6101
    ^ numDeleted
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6102
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6103
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6104
updateDiffView
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6105
    self withSelectedChangesDo:[:changeNr |
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6106
	self updateDiffViewFor:changeNr.
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6107
	^ self.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6108
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6109
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6110
    diffView text1:'' text2:''
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6111
!
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6112
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6113
updateDiffViewFor:changeNr
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6114
    |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
  6115
     parser sel showDiff selector oldMethod i|
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6116
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6117
    aStream := self streamForChange:changeNr.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6118
    aStream isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6119
        ^ self
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6120
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6121
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6122
    showDiff := false.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6123
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6124
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6125
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6126
        chunk := aStream nextChunk.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6127
    ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6128
        chunk := self changeChunkAt:changeNr.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6129
        sawExcla := true.
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6130
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6131
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6132
    Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6133
    do:[
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  6134
        parseTree := self parseExpression:chunk.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6135
        (parseTree notNil and:[parseTree ~~ #Error and:[ parseTree isMessage ]]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6136
            selector := parseTree selector.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6137
        ]
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6138
    ].
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6139
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6140
    selector isNil ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6141
        newSource := chunk.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6142
        oldSource := 'Not comparable.'.
4857
a44999f84640 refactored
Claus Gittinger <cg@exept.de>
parents: 4832
diff changeset
  6143
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6144
        sawExcla ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6145
            "/ not a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6146
            newSource := chunk.
11275
abeda3e68385 added: #currentSourceForParseTree:
Claus Gittinger <cg@exept.de>
parents: 11244
diff changeset
  6147
            oldSource := self currentSourceForParseTree:parseTree.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6148
        ] ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6149
            "/ a method-change
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6150
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6151
            (self class methodDefinitionSelectors includes:selector) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6152
                newSource := aStream nextChunk.
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6153
                thisClass := self classFromEvaluatingTree:parseTree receiver. 
19288
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6154
                thisClass isNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6155
                    classNameMap notNil ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6156
                        (classNameMap includesKey:parseTree receiver name) ifTrue:[
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6157
                            thisClass := Smalltalk classNamed:(classNameMap at:parseTree receiver name)
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6158
                        ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6159
                    ]
5195d8e6aa1b #FEATURE by exept
Claus Gittinger <cg@exept.de>
parents: 19263
diff changeset
  6160
                ].
11362
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6161
"/                Error 
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6162
"/                    handle:[ ]
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6163
"/                    do:[
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6164
"/                        thisClass := parseTree receiver evaluate.
52ac4a5da69e added: #classFromEvaluatingTree:
Claus Gittinger <cg@exept.de>
parents: 11347
diff changeset
  6165
"/                    ].
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6166
                thisClass isBehavior ifFalse:[
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6167
                    thisClass := self classOfChange:changeNr.
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6168
                ].
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6169
                thisClass isBehavior ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6170
                    (thisClass isLoaded
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6171
                    or:[ autoloadAsRequired value
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6172
                         and:[self checkClassIsLoaded:thisClass]]) ifFalse:[
19039
d3de7d7d4177 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 18975
diff changeset
  6173
                        oldSource := c'Cannot compare this change\n\n(compare requires class to be loaded).'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6174
                    ] ifTrue:[
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  6175
                        selector argumentCount == 0 ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6176
                            cat := '* as yet uncategorized *'.
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  6177
                            cat := selector.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6178
                        ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6179
                            cat := parseTree arg1 evaluate.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6180
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6181
                        Class nameSpaceQuerySignal answer:(self nameSpaceForApply)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6182
                        do:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6183
                            parser := Parser new.
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  6184
                            Error catch:[
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6185
                                parser 
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6186
                                    parseMethod:newSource in:thisClass
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6187
                                    ignoreErrors:true ignoreWarnings:true.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6188
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6189
                        ].
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6190
                        sel := parser selector.
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6191
                        (sel notNil) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6192
                            oldMethod := thisClass compiledMethodAt:sel.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6193
                            oldMethod notNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6194
                                (oldMethod category = cat) ifFalse:[
6447
9bf496831a5f *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6415
diff changeset
  6195
"/                                    Transcript showCR:'category changed.'.
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6196
                                ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6197
                                oldSource := oldMethod source.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6198
                                (oldSource = newSource) ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6199
                                    oldSource isNil ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6200
                                        oldSource := 'No source for compare.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6201
                                    ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6202
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6203
                                        "/ compare for tabulator <-> space changes
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6204
                                        "/ before showing diff ...
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6205
                                        "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6206
                                        oldSource := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6207
                                        newSource := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6208
                                        oldSource = newSource ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6209
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6210
                                            "/ check if only historyLine diffs
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6211
                                            "/
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6212
                                            (HistoryManager notNil
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6213
                                            and:[HistoryManager isActive]) ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6214
                                                oldSource := oldSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6215
                                                newSource := newSource asStringCollection asString.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6216
                                                (HistoryManager withoutHistoryLines:oldSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6217
                                                =
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6218
                                                (HistoryManager withoutHistoryLines:newSource)
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6219
                                                ifTrue:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6220
                                                    oldSource := (HistoryManager withoutHistoryLines:oldSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6221
                                                    newSource := (HistoryManager withoutHistoryLines:newSource).
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6222
                                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6223
                                            ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6224
                                        ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6225
                                    ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6226
                                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6227
                            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6228
                                oldSource := 'Method does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6229
                            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6230
                        ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6231
                            oldSource := 'Change is unparsable (parse error).'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6232
                        ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6233
                    ].
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6234
                ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6235
                    oldSource := 'Class does not exist.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6236
                ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6237
            ] ifFalse:[
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6238
                newSource := chunk. "/ aStream contents.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6239
                oldSource := 'Not comparable.'.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6240
            ]
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6241
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6242
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6243
    aStream close.
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6244
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6245
    oldSource := oldSource ? ''.
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6246
    newSource := newSource ? ''.
8675
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6247
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6248
    oldSource := oldSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6249
    newSource := newSource asStringCollection asString.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6250
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6251
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6252
    (oldSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6253
        i := oldSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6254
        (oldSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6255
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6256
            oldSource := oldSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6257
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6258
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6259
            oldSource := oldSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6260
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6261
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6262
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6263
    "/ unify cr, crlf and lf into lf
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6264
    (newSource includes:Character return) ifTrue: [
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6265
        i := newSource indexOf:Character return.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6266
        (newSource at:i+1) == Character nl ifTrue:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6267
            "/ crnl endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6268
            newSource := newSource copyReplaceString:(String crlf) withString:(String lf).
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6269
        ] ifFalse:[
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6270
            "/ cr endings
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6271
            newSource := newSource copyReplaceAll:Character return with:Character nl.
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6272
        ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6273
    ].
cb829711c85c care for cr / crlf in string
Claus Gittinger <cg@exept.de>
parents: 8665
diff changeset
  6274
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6275
    (oldSource = newSource
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6276
    or:[ oldSource asStringCollection withTabsExpanded = newSource asStringCollection withTabsExpanded]) ifTrue:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6277
        self makeDiffViewInvisible
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6278
    ] ifFalse:[
6317
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6279
        self makeDiffViewVisible.
055a38c8a566 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6288
diff changeset
  6280
        diffView text1:oldSource text2:newSource.
5237
74f82f793e1b make diffView invisible, if there are no diffs
Claus Gittinger <cg@exept.de>
parents: 5178
diff changeset
  6281
    ].
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6282
7709
4f3ea1430b45 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 7696
diff changeset
  6283
    "Created: / 24-11-1995 / 14:30:46 / cg"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6284
    "Modified: / 01-05-2016 / 18:26:01 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6285
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6286
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6287
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6288
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6289
askIfChangesAreToBeWrittenBack
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6290
    |action again|
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6291
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6292
    anyChanges ifFalse:[^ self].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6293
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6294
    again := true.
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6295
    [again] whileTrue:[
6357
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6296
        action := OptionBox
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6297
                          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
  6298
                          label:'ChangesBrowser'
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6299
                          image:(WarningBox iconBitmap)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6300
                          buttonLabels:(resources array:#('Cancel' 'Don''t Write' 'Write'))
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6301
                          values:#(#abort #ignore #save)
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6302
                          default:#save
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6303
                          onCancel:#abort.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6304
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6305
        again := false.
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6306
        action == #abort ifTrue:[AbortSignal raise. ^ self].
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6307
        action  == #save ifTrue:[
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6308
            again := self writeBackChanges not
95e37428f3aa *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6317
diff changeset
  6309
        ].
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6310
    ].
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6311
!
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6312
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6313
closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6314
    "window manager wants me to go away"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6315
3392
2dae85e52160 changeSetBrowsers writeBack fixed (when closing)
Claus Gittinger <cg@exept.de>
parents: 3378
diff changeset
  6316
    self askIfChangesAreToBeWrittenBack.
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6317
    super closeRequest
18159
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6318
8d8fea2fc179 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 18152
diff changeset
  6319
    "Modified (comment): / 28-05-2018 / 09:49:47 / Claus Gittinger"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6320
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6321
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6322
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6323
    "update the changes file and quit.
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6324
     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
  6325
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  6326
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6327
    anyChanges ifTrue:[
17026
bc075202f352 #OTHER by cg
Claus Gittinger <cg@exept.de>
parents: 16877
diff changeset
  6328
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6329
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6330
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6331
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  6332
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6333
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6334
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  6335
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6336
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6337
askForSearch:msg initialAnswer:initial thenSearchUsing:searchBlock2 onCancel:cancelBlock
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6338
    |searchString directionHolder searchBlock|
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6339
6288
4767ba5caf5b *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6270
diff changeset
  6340
    searchString := self
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6341
        askForSearchString:msg
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6342
        initialAnswer:initial
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6343
        directionInto:(directionHolder := ValueHolder new).
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6344
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6345
    searchString isNil ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6346
        ^ cancelBlock value
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6347
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6348
    lastSearchString := searchString.
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6349
    
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6350
    directionHolder value == #first ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6351
        self findFirstForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6352
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6353
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6354
    directionHolder value == #last ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6355
        self findLastForClass:searchString.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6356
        ^ self.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6357
    ].    
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6358
    
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6359
    searchBlock := [:changeNr | searchBlock2 value:searchString value:changeNr].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6360
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6361
    directionHolder value == #backward ifTrue:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6362
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6363
            changeNrShown := self numberOfChanges.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6364
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6365
        self findPreviousForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6366
    ] ifFalse:[
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6367
        changeNrShown isNil ifTrue:[
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6368
            changeNrShown := 0.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6369
        ].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6370
        self findNextForWhich:searchBlock
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6371
    ].
17382
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6372
a6a0ddf1d4e3 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 17381
diff changeset
  6373
    "Modified: / 10-02-2017 / 20:40:59 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6374
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6375
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6376
askForSearchString:msg initialAnswer:initial directionInto:aValueHolder
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6377
    "common code to open a search box"
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6378
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6379
    |searchString direction choices current|
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6380
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6381
    direction := #forward.
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6382
    choices := OrderedCollection new.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6383
    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6384
    changeNrShown notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6385
        current := self classNameOfChange:changeNrShown.
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6386
        initial ~= current ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6387
            (choices includes:current) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6388
                choices addFirst:current   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6389
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6390
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6391
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6392
    lastSearchString notNil ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6393
        initial ~= lastSearchString ifTrue:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6394
            (choices includes:lastSearchString) ifFalse:[
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6395
                choices addFirst:lastSearchString   
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6396
            ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6397
        ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6398
    ].    
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6399
    
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6400
    "/ take a normal request box, but add an additional 'previous' button
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6401
    Dialog modifyingBoxWith:[:box |
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6402
        |nextButton prevButton firstButton lastButton|
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6403
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6404
        nextButton := box okButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6405
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6406
        firstButton := Button label:(resources string:'First').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6407
        firstButton action:[direction := #first. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6408
        box addButton:firstButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6409
        
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6410
        lastButton := Button label:(resources string:'Last').
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6411
        lastButton action:[direction := #last. box okPressed.].
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6412
        box addButton:lastButton after:nextButton.
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6413
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6414
        prevButton := Button label:(resources string:'Previous').
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6415
        prevButton action:[direction := #backward. box okPressed.].
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6416
        box addButton:prevButton after:nextButton.
15674
aaeb8e2937a3 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15652
diff changeset
  6417
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6418
        nextButton label:(resources string:'Next').
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6419
    ] do:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6420
        searchString := Dialog
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6421
                request:msg
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6422
                list:choices 
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6423
                initialAnswer:initial
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6424
    ].
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6425
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6426
    searchString isEmptyOrNil ifTrue:[
13343
f05dcb08b45e class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 13314
diff changeset
  6427
        ^ nil
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6428
    ].
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6429
    aValueHolder value:direction.
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6430
    ^ searchString
15449
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6431
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6432
    "
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6433
     self new askForSearchString:'foo' initialAnswer:'bla' directionInto:(false asValue)
2b6bf9688c3f class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15187
diff changeset
  6434
    "
17394
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6435
a892a7515f38 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17382
diff changeset
  6436
    "Modified: / 12-02-2017 / 11:18:11 / cg"
3292
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6437
!
7eca3bb7b8cb added previous buttons to searches
Claus Gittinger <cg@exept.de>
parents: 3275
diff changeset
  6438
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6439
autoUpdate:aBoolean
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6440
    "enabled/disable automatic update from the change-file (for monitoring)"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6441
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6442
    autoUpdate value:aBoolean
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6443
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6444
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6445
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6446
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  6447
6216
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6448
autoloadAsRequired:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6449
    "enabled/disable automatic load of unloaded classes"
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6450
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6451
    autoloadAsRequired value:aBoolean
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6452
!
5f56f6780ea3 +autoloadAsRequired
Claus Gittinger <cg@exept.de>
parents: 6200
diff changeset
  6453
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6454
changeSelection:lineNrCollection
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6455
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6456
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6457
    |chunk lineNr lineNumbers|
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6458
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6459
    lineNrCollection isInteger ifTrue:[
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6460
        lineNr := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6461
        lineNumbers := Array with:lineNr.
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6462
    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6463
        changeListView multipleSelectOk ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6464
            lineNrCollection size == 1 ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6465
                lineNr := lineNrCollection first.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6466
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6467
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6468
            lineNr := lineNrCollection
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6469
        ].
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6470
        lineNumbers := lineNrCollection.
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6471
    ].
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6472
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6473
    self changeListSelectionHolder value:lineNumbers.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6474
    
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6475
    lineNr isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6476
        codeView contents:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6477
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6478
        changeNrShown := nil.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6479
        infoHolder value:nil.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6480
        ^ self
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6481
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  6482
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6483
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6484
    self sensor
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6485
        enqueueMessage:#updateSourceCodeAfterChangedSelection for:self arguments:nil;
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6486
        enqueueMessage:#updateInfoAfterChangedSelection for:self arguments:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6487
^ self.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6488
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6489
    "/ display the changes code
3785
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6490
    chunk := self sourceOfChange:lineNr.
741890c870a4 oops - exclas in changeSetBrowsers method source
Claus Gittinger <cg@exept.de>
parents: 3771
diff changeset
  6491
    chunk isNil ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6492
        codeView initializeDoITAction.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6493
        ^ self
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  6494
    ].
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6495
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6496
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  6497
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6498
    codeView doItAction:[:theCode |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6499
        |clsName cls|
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6500
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6501
        clsName := self classNameOfChange:lineNr.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6502
        clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6503
            clsName := clsName asSymbolIfInterned.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6504
            clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6505
                cls := Smalltalk at:clsName ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6506
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6507
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6508
        Compiler
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6509
            evaluate:theCode
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6510
            in:nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6511
            receiver:cls
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6512
            notifying:self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6513
            logged:true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6514
            ifFail:nil
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  6515
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  6516
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6517
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6518
    self showingDiffs value ifTrue:[
8391
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6519
        self withWaitCursorDo:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6520
            AbortOperationRequest catch:[
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6521
                self updateDiffViewFor:changeNrShown.
9ec34d3e5f07 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8379
diff changeset
  6522
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  6523
        ]
4487
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6524
    ].
7f3d0a3ba32a show diffs added
penk
parents: 4484
diff changeset
  6525
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6526
    "Modified: / 03-01-2012 / 15:30:23 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6527
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6528
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6529
classOfChange:changeNr
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6530
    ^ self
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6531
        classOfChange:changeNr
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6532
        ifAbsent:[:className |
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6533
            |msg|
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6534
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6535
            className isNil ifTrue:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6536
                msg := 'Could not extract classname from change'.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6537
            ] ifFalse:[
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6538
                msg := 'Class not found: ''' , className , ''''.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6539
            ].
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6540
            Transcript showCR:msg.
6386
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6541
"/            self warn:msg.
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6542
            nil
08b529345d57 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6378
diff changeset
  6543
        ]
3806
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6544
!
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6545
46e459fdde4c added "apply to next conflict"
Claus Gittinger <cg@exept.de>
parents: 3785
diff changeset
  6546
classOfChange:changeNr ifAbsent:exceptionBlock
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6547
    "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
  6548
     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
  6549
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6550
    |className cls isMeta nameSpaceForApply path ownerName owner|
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6551
5014
6c68031b7ce4 className of hange
Claus Gittinger <cg@exept.de>
parents: 4993
diff changeset
  6552
    className := self realClassNameOfChange:changeNr.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6553
    className isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6554
        ^ exceptionBlock valueWithOptionalArgument:nil
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6555
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6556
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6557
    isMeta := false.
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6558
    (className endsWith:' class') ifTrue:[
12704
6f20f7d39e75 Changed usage of deprecated #copyWithoutLast: to #copyButLast:
Stefan Vogel <sv@exept.de>
parents: 12656
diff changeset
  6559
        className := className copyButLast:6.
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6560
        isMeta := true.
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6561
    ].
3472
9673ed96d22c support for dolphin fileIn
Claus Gittinger <cg@exept.de>
parents: 3456
diff changeset
  6562
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6563
    autoloadAsRequired value ifTrue:[        
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6564
        path := className asCollectionOfSubstringsSeparatedByAll:'::'.
8320
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6565
        path size >= 2 ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6566
            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
  6567
                "/ 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
  6568
                "/ Transcript showCR:'loading owner'.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6569
                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
  6570
                owner := Smalltalk classNamed:ownerName.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6571
                owner notNil ifTrue:[
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6572
                    owner autoload.
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6573
                ].
c0d503e3dc91 also load private classes of an autoloaded as required
Claus Gittinger <cg@exept.de>
parents: 8272
diff changeset
  6574
            ].
8272
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6575
        ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6576
    ].
cd6b675fc5fd autoload class owner if required
Claus Gittinger <cg@exept.de>
parents: 8173
diff changeset
  6577
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6578
    nameSpaceForApply := self nameSpaceForApply.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6579
    autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6580
        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
  6581
    ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6582
        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
  6583
    ].
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6584
    (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
  6585
        "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
  6586
        autoloadAsRequired value ifTrue:[        
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6587
            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
  6588
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6589
            cls := Smalltalk loadedClassNamed:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6590
        ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6591
    ].
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6592
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6593
    cls isNil ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  6594
        ^ exceptionBlock valueWithOptionalArgument:className
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6595
    ].
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6596
    isMeta ifTrue:[
6378
d29af7307c7c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6357
diff changeset
  6597
        cls := cls class
3275
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6598
    ].
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6599
    ^ cls
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6600
!
88c43d1cfc99 added browse-senders & browse implementors
Claus Gittinger <cg@exept.de>
parents: 3249
diff changeset
  6601
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6602
doubleClickOnChange:lineNr
2843
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6603
    "action performed when a change-list entry is doubleClicked"
6e3fc30cd41f commented; much better functionality
Claus Gittinger <cg@exept.de>
parents: 2838
diff changeset
  6604
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6605
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6606
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6607
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6608
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  6609
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6610
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6611
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  6612
3211
f603f235e5c4 multiple select
Claus Gittinger <cg@exept.de>
parents: 3205
diff changeset
  6613
    self warn:'Changes are not allowed to be changed.'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6614
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6615
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6616
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6617
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6618
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6619
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  6620
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6621
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6622
    changeNr notNil ifTrue:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6623
        fileName := Dialog
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6624
                        requestFileNameForSave:(resources string:'Append changes for class to:')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6625
                        default:(lastSaveFileName ? '')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6626
                        ok:(resources string:'Append')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6627
                        abort:(resources string:'Abort')
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6628
                        pattern:'*.chg'.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6629
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6630
        fileName notNil ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6631
            lastSaveFileName := fileName.
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6632
            self withWriteCursorDo:[
9604
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6633
                startNr to:(self numberOfChanges) do:[:changeNr |
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6634
                    |thisClassName|
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6635
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6636
                    thisClassName := self classNameOfChange:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6637
                    thisClassName = aClassName ifTrue:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6638
                        self setSingleSelection:changeNr.
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6639
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6640
                            ^ self
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6641
                        ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6642
                    ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6643
                ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6644
            ]
016c17b8d31f changed:
Claus Gittinger <cg@exept.de>
parents: 9570
diff changeset
  6645
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6646
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  6647
11685
2c4c8914c4fb changed:
Claus Gittinger <cg@exept.de>
parents: 11680
diff changeset
  6648
    "Modified: / 27-07-2012 / 09:46:04 / cg"
3227
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6649
!
442696985817 deleteAllForClass - support multiple selection
Claus Gittinger <cg@exept.de>
parents: 3224
diff changeset
  6650
11477
95c469c33ab3 added: #selectionChanged
Stefan Vogel <sv@exept.de>
parents: 11476
diff changeset
  6651
selectionChanged
12946
e6e3c7681456 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 12845
diff changeset
  6652
    self halt:'should not be here'
11048
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6653
4d74ae5d5676 class definition
Claus Gittinger <cg@exept.de>
parents: 11028
diff changeset
  6654
    "Created: / 03-01-2012 / 15:26:36 / cg"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6655
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6656
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6657
updateInfoAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6658
    "update the info label"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6659
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6660
    |selection lineNr selectorOrNil className nonMetaClassName metaClassName
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6661
     nClassChanges nMethodChanges uniqueSelectors
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6662
     lastLineNr firstLineNr 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6663
     countForClassBeforeCurrent countForClassAfterLast countForClassAndSelectorAfterLast 
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6664
     moreInfo countInfo selectorInfo|
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6665
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6666
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6667
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6668
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6669
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6670
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6671
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6672
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6673
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6674
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6675
        infoHolder value:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6676
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6677
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6678
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6679
    "/
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6680
    "/ now, this info is computed so fast,
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6681
    "/ we can do it each time the selection changes
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6682
    "/ (can we?)
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6683
    className := self realClassNameOfChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6684
    className isNil ifTrue:[
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6685
        infoHolder value:nil.
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6686
        ^ self
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6687
    ].
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6688
    selectorOrNil := self selectorOfMethodChange:lineNr.
16478
2c1df7d1c3ae #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 16476
diff changeset
  6689
    
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6690
    nonMetaClassName := (className endsWith:' class')
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6691
                            ifTrue:[ className copyButLast:' class' size ]
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6692
                            ifFalse:[ className ].
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6693
    metaClassName := nonMetaClassName,' class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6694
                            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6695
    nClassChanges := nMethodChanges := 0.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6696
    uniqueSelectors := Set new.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6697
    lastLineNr := firstLineNr := nil.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6698
    countForClassAfterLast := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6699
    countForClassBeforeCurrent := 0.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6700
    countForClassAndSelectorAfterLast := 0.
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6701
    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6702
    "/ count them all
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6703
    1 to:changeInfoList size do:[:i |
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6704
        |sel nameOfChange|
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6705
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6706
        changeInfoList at:i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6707
        nameOfChange := self realClassNameOfChange:i.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6708
        ((nameOfChange = nonMetaClassName) or:[nameOfChange = metaClassName]) ifTrue:[
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6709
            sel := self selectorOfMethodChange:i.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6710
            
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6711
            lastLineNr := i.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6712
            firstLineNr := firstLineNr ? i.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6713
            i > lineNr ifTrue:[ 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6714
                countForClassAfterLast := countForClassAfterLast + 1.
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6715
                (nameOfChange = className 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6716
                  and:[ selectorOrNil notNil 
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6717
                  and:[sel == selectorOrNil]]) ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6718
                    countForClassAndSelectorAfterLast := countForClassAndSelectorAfterLast + 1.
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6719
                ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6720
            ] ifFalse:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6721
                i < lineNr ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6722
                    countForClassBeforeCurrent := countForClassBeforeCurrent + 1
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6723
                ]
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6724
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6725
            nClassChanges := nClassChanges + 1.
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6726
            sel notNil ifTrue:[
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6727
                uniqueSelectors add:sel.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6728
                nMethodChanges := nMethodChanges + 1.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6729
            ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6730
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6731
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6732
    lastLineNr == lineNr ifTrue:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6733
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6734
            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
  6735
        ] ifFalse:[    
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6736
            moreInfo := resources string:'. This is the last for this class '.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6737
        ]
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6738
    ] ifFalse:[
16476
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6739
        firstLineNr == lineNr ifTrue:[
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6740
            moreInfo := resources string:'. This is the first for this class'.
307b09c517b9 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16475
diff changeset
  6741
        ].    
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6742
        countForClassAfterLast > 0 ifTrue:[
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6743
            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
  6744
            countForClassAndSelectorAfterLast > 0 ifTrue:[
17419
469331b680ed #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17400
diff changeset
  6745
                moreInfo := moreInfo,(resources string:', %1 for selector' with:countForClassAndSelectorAfterLast).
17172
0f005adca4d2 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17096
diff changeset
  6746
            ].    
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6747
        ].    
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6748
    ].
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6749
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6750
    countInfo := resources string:'%1 changes. %2 for %3 '
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6751
                        with:(changeInfoList size)
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6752
                        with:nClassChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6753
                        with:className.
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6754
                        
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6755
    uniqueSelectors size == 1 ifTrue:[
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6756
        nMethodChanges == 1 ifTrue:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6757
            selectorInfo := (resources string:'(1 for #''%1'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6758
                                      with:uniqueSelectors first) allBold
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6759
        ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6760
            selectorInfo := (resources string:'(%1 methods / for #''%2'')'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6761
                                      with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6762
                                      with:uniqueSelectors first) allBold
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6763
        ].
18110
d5c27e884602 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18061
diff changeset
  6764
    ] ifFalse:[
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6765
        (nMethodChanges == 0 and:[uniqueSelectors isEmptyOrNil]) ifTrue:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6766
            selectorInfo := resources string:'(0 methods)' 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6767
        ] ifFalse:[ 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6768
            selectorInfo := (resources string:'(%1 methods / %5 selectors)'
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6769
                             with:nMethodChanges
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6770
                             with:uniqueSelectors size) allBold 
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6771
        ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6772
    ].
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6773
    infoHolder value:(countInfo,selectorInfo,moreInfo).
17381
8a06ebf90355 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17376
diff changeset
  6774
17420
161d2c46c854 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 17419
diff changeset
  6775
    "Modified: / 19-02-2017 / 13:37:19 / cg"
18186
445d04aafe6f #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 18159
diff changeset
  6776
    "Modified: / 08-06-2018 / 12:09:44 / Claus Gittinger"
16467
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6777
!
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6778
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6779
updateSourceCodeAfterChangedSelection
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6780
    "show a change in the codeView"
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6781
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6782
    |selection lineNr chunk|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6783
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6784
    selection := lineNr := changeListView selection.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6785
    selection isNumber ifFalse:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6786
        lineNr := nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6787
        selection notEmptyOrNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6788
            lineNr := selection first
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6789
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6790
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6791
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6792
    lineNr isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6793
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6794
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6795
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6796
    "/ display the changes code
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6797
    chunk := self sourceOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6798
    chunk isNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6799
        codeView initializeDoITAction.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6800
        ^ self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6801
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6802
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6803
    codeView contents:chunk.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6804
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6805
    codeView doItAction:[:theCode |
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6806
        |clsName cls|
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6807
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6808
        clsName := self classNameOfChange:lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6809
        clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6810
            clsName := clsName asSymbolIfInterned.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6811
            clsName notNil ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6812
                cls := Smalltalk at:clsName ifAbsent:nil.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6813
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6814
        ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6815
        Compiler
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6816
            evaluate:theCode
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6817
            in:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6818
            receiver:cls
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6819
            notifying:self
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6820
            logged:true
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6821
            ifFail:nil
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6822
    ].
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6823
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6824
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6825
    changeNrShown := lineNr.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6826
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6827
    self showingDiffs value ifTrue:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6828
        self withWaitCursorDo:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6829
            AbortOperationRequest catch:[
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6830
                self updateDiffViewFor:changeNrShown.
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6831
            ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6832
        ]
c4582914a4be #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16390
diff changeset
  6833
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  6834
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  6835
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6836
!ChangesBrowser::ChangeFileReader methodsFor:'accessing'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6837
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6838
autoCompare:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6839
    autoCompare := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6840
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6841
7620
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6842
autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6843
    ^ autoloadAsRequired
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6844
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6845
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6846
autoloadAsRequired:something
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6847
    autoloadAsRequired := something.
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6848
!
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6849
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6850
browser:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6851
    browser := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6852
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6853
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6854
changeChunks
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6855
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6856
    ^ changeChunks
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6857
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6858
    "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
  6859
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6860
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6861
changeClassNames
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6862
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6863
    ^ changeClassNames
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6864
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6865
    "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
  6866
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6867
6516
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6868
changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6869
    ^ changeFileName
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6870
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6871
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6872
changeFileName:something
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6873
    changeFileName := something.
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6874
!
48d51ac63886 fix bug from prev version: could not read changes file
Stefan Vogel <sv@exept.de>
parents: 6512
diff changeset
  6875
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6876
changeHeaderLines
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6877
    self breakPoint:#cg.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6878
   ^ changeHeaderLines
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
    "Modified: / 01-05-2016 / 19:10:41 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6881
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6882
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6883
changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6884
    ^ changeInfo
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6885
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6886
    "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
  6887
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6888
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6889
changeIsFollowupMethodChange
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6890
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6891
    ^ changeIsFollowupMethodChange
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6892
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6893
    "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
  6894
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6895
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6896
changePositions
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6897
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6898
    ^ changePositions
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6899
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6900
    "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
  6901
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6902
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6903
changeTimeStamps
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  6904
    self breakPoint:#cg.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6905
    ^ changeTimeStamps
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6906
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  6907
    "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
  6908
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6909
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6910
enforcedNameSpace:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6911
    enforcedNameSpace := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6912
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6913
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6914
inStream:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6915
    inStream := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6916
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6917
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6918
noColoring:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6919
    noColoring := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6920
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6921
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6922
tabSpec:something
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6923
    tabSpec := something.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6924
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6925
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6926
thisIsAClassSource
7360
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6927
    ^ thisIsAClassSource ? false
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6928
486793c2aac8 +find last snapshot
Claus Gittinger <cg@exept.de>
parents: 7346
diff changeset
  6929
    "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
  6930
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6931
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6932
!ChangesBrowser::ChangeFileReader methodsFor:'private'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6933
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6934
contractClass:className selector:selector to:maxLen
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6935
    "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
  6936
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6937
    |s l|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6938
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6939
    s := className , ' ', selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6940
    s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6941
        l := maxLen - 1 - selector size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6942
        s := (className contractTo:l) , ' ' , selector.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6943
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6944
        s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6945
            l := maxLen - 1 - className size max:20.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6946
            s := className , ' ', (selector contractTo:l).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6947
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6948
            s size > maxLen ifTrue:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6949
                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
  6950
            ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6951
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6952
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6953
    ^ s
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6954
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6955
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6956
extractClassAndClassNameFromParseTree:rec
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6957
    |isUnaryMessage className changeClass|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6958
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6959
    isUnaryMessage := rec isUnaryMessage.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6960
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6961
    Error 
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6962
        handle:[:ex | ^ '?' -> nil]
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6963
        do:[
9019
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6964
            isUnaryMessage ifTrue:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6965
                className := rec receiver name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6966
            ] ifFalse:[
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6967
                className := rec name.
05e9d62867a6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 9006
diff changeset
  6968
            ].
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6969
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6970
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6971
    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
  6972
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6973
            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
  6974
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6975
            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
  6976
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6977
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6978
    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
  6979
        autoloadAsRequired value ifTrue:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6980
            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
  6981
        ] ifFalse:[
6812a1ebc510 Autoload owning classes of private classes in change set only if
Stefan Vogel <sv@exept.de>
parents: 7619
diff changeset
  6982
            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
  6983
        ].
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6984
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6985
    isUnaryMessage ifTrue:[
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6986
        changeClass notNil ifTrue:[
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6987
            changeClass := changeClass class.
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6988
        ].
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6989
        className := className , ' class'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6990
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6991
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6992
    ^ className -> changeClass
6843
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6993
5e647fd1227c *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6835
diff changeset
  6994
    "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
  6995
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6996
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6997
nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6998
    ^ browser nameSpaceForApply
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  6999
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7000
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7001
!ChangesBrowser::ChangeFileReader methodsFor:'reading'!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7002
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7003
addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7004
    changeHeaderLines add:(self headerLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo)
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7005
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7006
    "Modified: / 01-05-2016 / 19:07:49 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7007
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7008
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7009
colorizeAsCommentChange:changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7010
    |c|
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7011
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7012
    NoColoring ~~ true ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7013
        c := changeType allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7014
        "/ changeString := changeString allItalic.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7015
        c emphasisAllAdd:(#color -> UserPreferences current commentColor).
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7016
        ^ c
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7017
    ].
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7018
    ^ changeType
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7019
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7020
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7021
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
  7022
    |entry|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7023
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7024
    entry := MultiColListEntry new.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7025
    entry tabulatorSpecification:tabSpec.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7026
    entry colAt:1 put:changeDelta.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7027
    entry colAt:2 put:changeString.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7028
    entry colAt:3 put:changeType.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7029
    timeStampInfo notNil ifTrue:[
12599
827681c8f7d4 timestamp printing extracted
Claus Gittinger <cg@exept.de>
parents: 12428
diff changeset
  7030
        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
  7031
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7032
    ^ entry
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7033
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7034
    "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
  7035
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7036
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7037
processChunk
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7038
    |info|
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7039
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7040
    (chunkText startsWith:'''---- timestamp ') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7041
        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7042
        ^ self.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7043
    ].
11234
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7044
    (chunkText asLowercase startsWith:'''---- encoding: ') ifTrue:[
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7045
        ^ self.
df2127ae4cb8 changed: #writeBackChanges
Claus Gittinger <cg@exept.de>
parents: 11048
diff changeset
  7046
    ].
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7047
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7048
    changeInfo add:(info := 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7049
                        ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7050
                            position:chunkPosition chunk:chunkText className:nil selector:nil headerLine:nil
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7051
                            timestamp:timeStampInfo isFollowupChange:false).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7052
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7053
    headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7054
    changeDelta := ' '.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7055
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7056
    sawExcla ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7057
        self processNonMethodChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7058
    ] ifTrue:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7059
        self processMethodChunkIfNone:
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7060
            [
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7061
                changeInfo removeLast.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7062
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7063
    ].
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
    changeString notNil ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7066
        "/ self addHeaderLineForChangeType:changeType changeString:changeString changeDelta:changeDelta timeStampInfo:timeStampInfo.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7067
        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
  7068
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7069
        headerLine notNil ifTrue:[
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  7070
            changeHeaderLines add:headerLine.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7071
            info headerLine:headerLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7072
        ]
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7073
    ].
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7074
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7075
    "Modified: / 01-05-2016 / 19:13:59 / cg"
17723
5d4dc1781105 #BUGFIX by stefan
Stefan Vogel <sv@exept.de>
parents: 17666
diff changeset
  7076
    "Modified: / 27-10-2017 / 14:34:51 / stefan"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7077
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7078
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7079
processMethodChunkIfNone:emptyBlock
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7080
    "sawExcla"
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7081
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7082
    |askedForEditingClassSource changeClass category anyMethod
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7083
     sel p rec clsName done first text methodPos
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7084
     singleJunkOnly methodChunks classCategoryChunks methodCategoryChunks singleInfo methodSelector nameAndClass
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7085
     info|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7086
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7087
    singleJunkOnly := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7088
    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7089
    classCategoryChunks := methodCategoryChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7090
    singleInfo := false.
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7091
    anyMethod := false.
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
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7094
     method definitions actually consist of
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7095
     two (or more) chunks; skip next chunk(s)
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7096
     up to an empty one.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7097
     The system only writes one chunk,
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7098
     and we cannot handle more in this ChangesBrowser ....
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7099
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7100
    clsName := nil.
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  7101
19263
89322f3873b8 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19237
diff changeset
  7102
    (chunkText includesString:'§') ifTrue:[
18054
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  7103
        self halt:'should no longer happen'
3bb54349d57e #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 17968
diff changeset
  7104
    ].
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7105
8665
de1418d0c660 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8619
diff changeset
  7106
    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
  7107
    (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
  7108
        rec := p receiver.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7109
        sel := p selector.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7110
        (ChangesBrowser methodDefinitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7111
            methodChunks := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7112
            nameAndClass := self extractClassAndClassNameFromParseTree:rec.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7113
            clsName := nameAndClass key. changeClass := nameAndClass value.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7114
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7115
            sel == #categoriesForClass ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7116
                methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7117
                classCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7118
                changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7119
            ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7120
                sel == #categoriesFor: ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7121
                    methodChunks := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7122
                    methodCategoryChunks := true.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7123
                    changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7124
                    methodSelector := (p args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7125
                ] ifFalse:[
19127
010bcf36a091 #REFACTORING by exept
Claus Gittinger <cg@exept.de>
parents: 19066
diff changeset
  7126
                    (sel argumentCount == 0) ifTrue:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7127
                        category := '* As yet uncategorized *'.
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7128
                        category := sel.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7129
                    ] ifFalse:[
6532
15fd243d05eb *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6530
diff changeset
  7130
                        category := (p args at:1) evaluate.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7131
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7132
                ].
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
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7135
            sel == #'methodsFor:stamp:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7136
                "/ Squeak timeStamp
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7137
                timeStampInfo := (p args at:2) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7138
                singleInfo := true
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7139
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7140
                sel == #'commentStamp:prior:' ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7141
                    singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7142
                    methodChunks := false.
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
        ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7146
            sel == #reorganize ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7147
                singleJunkOnly := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7148
                methodChunks := false.
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
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7151
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7152
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7153
    done := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7154
    first := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7155
    [done] whileFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7156
        changeDelta := ' '.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7157
        methodPos := inStream position + 1.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7158
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7159
        text := inStream nextChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7160
        done := text isEmptyOrNil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7161
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7162
        done ifFalse:[
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7163
            anyMethod := true.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7164
            first ifFalse:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7165
                info := ChangesBrowser::ChangeInfo new 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7166
                            position:methodPos chunk:chunkText className:clsName 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7167
                            selector:nil headerLine:nil timestamp:timeStampInfo isFollowupChange:true. 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7168
                changeInfo add:info.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7169
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7170
                askedForEditingClassSource ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7171
                    thisIsAClassSource := (changeFileName asFilename hasSuffix:'st').
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7172
                    askedForEditingClassSource := true.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7173
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7174
            ] ifTrue:[
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7175
                changeInfo last className:clsName
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7176
            ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7177
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7178
            first := false.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7179
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7180
            (classCategoryChunks or:[methodCategoryChunks]) ifTrue:[
6639
5d1add30b240 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 6614
diff changeset
  7181
                text := text firstLine.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7182
                classCategoryChunks ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7183
                    changeClass isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7184
                        changeDelta := '?'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7185
                    ] ifFalse:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7186
                        changeClass category = text ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7187
                            changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7188
                        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7189
                    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7190
                    changeString := clsName , ' category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7191
                ]ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7192
                    changeString := '(' , clsName , ' compiledMethodAt:' , methodSelector storeString , ') category: ' , text storeString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7193
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7194
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7195
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7196
                 try to find the selector
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7197
                "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7198
                methodSelector := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7199
                clsName notNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7200
                    methodChunks ifTrue:[
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7201
                        p := Parser for:(ReadStream on:text) in:nil.  
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7202
                        p ignoreErrors:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7203
                        p ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7204
                        p parserFlags allowDollarInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7205
                        p parserFlags allowParagraphInIdentifier:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7206
                        p parseMethodSpec.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7207
                        methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7208
"/                        p := Parser
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7209
"/                                 parseMethodSpecification:text
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7210
"/                                 in:nil
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7211
"/                                 ignoreErrors:true
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7212
"/                                 ignoreWarnings:true.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7213
"/                        (p notNil and:[p ~~ #Error]) ifTrue:[
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7214
"/                            methodSelector := p selector.
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7215
"/                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7216
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7217
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7218
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7219
                methodSelector isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7220
                    changeString := (chunkText contractTo:maxLen).
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7221
                    changeType := '(change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7222
                    headerLine := chunkText , ' (change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7223
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7224
                    changeString :=  self contractClass:clsName selector:methodSelector to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7225
                    changeType := ('{ ' , category , ' }').
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7226
                    headerLine := clsName , ' ' , methodSelector , ' ' , '(change category: ''' , category , ''')'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7227
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7228
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7229
                autoCompare value ifTrue:[
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7230
                    changeDelta := ChangeDeltaInformation 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7231
                                        changeDeltaFor:text changeClass:changeClass selector:methodSelector.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7232
                ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7233
            ].
17047
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7234
            changeInfo last 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7235
                headerLine:(self headerLineForChangeType:changeType 
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7236
                                 changeString:changeString
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7237
                                 changeDelta:changeDelta
c2300fd02149 #DOCUMENTATION by cg
Claus Gittinger <cg@exept.de>
parents: 17026
diff changeset
  7238
                                 timeStampInfo:timeStampInfo).
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7239
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7240
        changeString := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7241
        headerLine := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7242
        singleJunkOnly ifTrue:[done := true]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7243
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7244
    singleInfo ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7245
        timeStampInfo := nil
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7246
    ].
6658
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7247
    anyMethod ifFalse:[
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7248
        emptyBlock value
faf73551558b handle empty methodsFor chunks
Claus Gittinger <cg@exept.de>
parents: 6639
diff changeset
  7249
    ].
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7250
17094
8757fda825d9 #BUGFIX by cg
Claus Gittinger <cg@exept.de>
parents: 17093
diff changeset
  7251
    "Modified: / 21-11-2016 / 23:32:29 / cg"
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7252
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7253
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7254
processNonMethodChunk
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7255
    |s changeClass sel cls parseTree rec clsName ownerTree ownerName
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7256
     m nameAndClass args instVarsArg classVarsArg categoryArg
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7257
     lastInfo newCategory newPackage|
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7258
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7259
    (chunkText startsWith:'''---- snap') ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7260
        self processSnapshotChunk.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7261
        ^ self
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7262
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7263
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7264
    headerLine := chunkText , ' (doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7265
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7266
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7267
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7268
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7269
     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
  7270
    "
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7271
    ((chunkText startsWith:'''---- file')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7272
    or:[(chunkText startsWith:'''---- check')]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7273
        changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7274
        timeStampInfo := nil.
19066
7a4a65d22b3e #OTHER by exept
Claus Gittinger <cg@exept.de>
parents: 19039
diff changeset
  7275
        changeString := changeString allGray.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7276
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7277
        changeType := '(doIt)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7278
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7279
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7280
    parseTree := browser parseExpression:fullChunkText inNameSpace:Smalltalk.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7281
    (parseTree notNil and:[parseTree ~~ #Error]) ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7282
        parseTree isMessage ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7283
            sel := parseTree selector.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7284
            rec := parseTree receiver.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7285
            args := parseTree args.        
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7286
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7287
    ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7288
        sel := nil.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7289
        Error handle:[:ex |
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7290
            changeType := '(???)'.
18123
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7291
        ] do:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7292
            (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7293
                "/ a comment only
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7294
                changeType := self colorizeAsCommentChange:'(comment)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7295
            ] ifFalse:[
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7296
                changeType := '(???)'.
905cdbcd7be1 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18110
diff changeset
  7297
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7298
        ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7299
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7300
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7301
    (sel == #comment:) ifTrue:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7302
        changeType := self colorizeAsCommentChange:'(comment)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7303
        clsName := rec name.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7304
        changeClass := (self nameSpaceForApply) classNamed:clsName.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7305
        (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7306
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7307
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7308
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7309
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7310
            ] ifFalse:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7311
                (changeClass comment = (args at:1) evaluate) ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7312
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7313
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7314
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7315
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7316
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7317
        ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7318
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7319
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7320
    (sel == #removeSelector:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7321
        nameAndClass := self extractClassAndClassNameFromParseTree:rec.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7322
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7323
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7324
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7325
        sel := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7326
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7327
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7328
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7329
            (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7330
                changeDelta := '?'
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7331
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7332
                (changeClass includesSelector:sel asSymbol) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7333
                    changeDelta := '-'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7334
                ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7335
                    changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7336
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7337
            ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7338
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7339
        changeType := '(remove)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7340
        changeString := self contractClass:clsName selector:sel to:maxLen.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7341
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7342
        ^ self.
6530
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
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7345
    (parseTree notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7346
    and:[parseTree ~~ #Error
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7347
    and:[parseTree isMessage
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7348
    and:[rec isMessage
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7349
    and:[rec selector == #compiledMethodAt:]]]]) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7350
        nameAndClass := self extractClassAndClassNameFromParseTree:rec receiver.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7351
        clsName := nameAndClass key. 
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7352
        changeClass := nameAndClass value.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7353
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7354
        (sel == #category:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7355
            sel := (rec args at:1) evaluate.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7356
            changeType := self colorizeAsCommentChange:'(category change)'.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7357
            changeString := self contractClass:clsName selector:sel to:maxLen.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7358
            newCategory := (args at:1) evaluate.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7359
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7360
            "/ make it a category change
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7361
            lastInfo := changeInfo last.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7362
            lastInfo className:clsName.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7363
            lastInfo selector:sel.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7364
            lastInfo categoryIfCategoryChange:newCategory.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7365
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7366
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7367
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7368
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7369
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7370
                    m := changeClass compiledMethodAt:sel asSymbol.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7371
                    m isNil ifTrue:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7372
                        "/ mhm - the method does not (no longer=) exist
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7373
                        changeDelta := '?'
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7374
                    ] ifFalse:[
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7375
                        m category = newCategory ifTrue:[
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7376
                            changeDelta := '='.
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7377
                        ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7378
                    ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7379
                ]
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7380
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7381
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7382
        ].
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7383
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7384
        (sel == #package:) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7385
            sel := (rec args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7386
            changeType := self colorizeAsCommentChange:'(package change)'.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7387
            changeString := self contractClass:clsName selector:sel to:maxLen.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7388
            newPackage := (args at:1) evaluate.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7389
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7390
            "/ make it a category change
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7391
            lastInfo := changeInfo last.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7392
            lastInfo className:clsName.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7393
            lastInfo selector:sel.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7394
            "/ lastInfo packageIfPackageChange:newPackage.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7395
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7396
            autoCompare value ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7397
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7398
                    changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7399
                ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7400
                    m := changeClass compiledMethodAt:sel asSymbol.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7401
                    m isNil ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7402
                        "/ mhm - the method does not (no longer=) exist
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7403
                        changeDelta := '?'
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7404
                    ] ifFalse:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7405
                        m package = newPackage ifTrue:[
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7406
                            changeDelta := '='.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7407
                        ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7408
                    ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7409
                ]
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7410
            ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7411
            ^ self.
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7412
        ].
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7413
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7414
        (sel == #privacy:) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7415
            sel := (rec args at:1) evaluate.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7416
            changeType := '(privacy change)'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7417
            changeString := self contractClass:clsName selector:sel to:maxLen.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7418
            (changeInfo last) className:clsName.
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7419
15012
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7420
            autoCompare value ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7421
                (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7422
                    changeDelta := '?'
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7423
                ] ifFalse:[
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7424
                    changeDelta := ' '
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7425
                ]
66e8e7d7f4ec class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 14939
diff changeset
  7426
            ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7427
            ^ self.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7428
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7429
        sel := nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7430
    ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7431
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7432
    (Class definitionSelectors includes:sel) ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7433
        changeType := '(class definition)'.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7434
        clsName := (args at:1) evaluate.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7435
        (changeInfo last) className:clsName.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7436
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7437
        "/ is it a private-class ?
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7438
        ('*privateIn:' match:sel) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7439
            ownerTree := args last.
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7440
            ownerName := ownerTree name asString.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7441
            clsName := ownerName , '::' , clsName
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7442
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7443
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7444
        changeString := clsName.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7445
        NoColoring ~~ true ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7446
            changeType := changeType allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7447
            changeString := changeString allBold.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7448
        ].
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7449
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7450
        autoCompare value ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7451
            cls := (self nameSpaceForApply) at:clsName asSymbol ifAbsent:nil.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7452
            cls isNil ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7453
                changeDelta := '+'.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7454
            ] ifFalse:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7455
                (cls definitionSelector = sel
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7456
                or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7457
                    "/ could be an ST/V, VAge or Dolphin definition
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7458
                    cls definitionSelector = (sel , 'category:')
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7459
                ])
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7460
                ifTrue:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7461
                    ((cls superclass isNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7462
                        and:[rec isLiteral
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7463
                        and:[rec evaluate isNil]])
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7464
                    or:[
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7465
                        cls superclass notNil
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7466
                        and:[rec isLiteral not
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7467
                        and:[cls superclass name = rec name]]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7468
                    ]) ifTrue:[
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7469
                        (sel == #'variableByteSubclass:classVariableNames:poolDictionaries:category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7470
                        ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7471
                            "/ VSE definition message
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7472
                            instVarsArg := ''.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7473
                            classVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7474
                            categoryArg := (args at:4) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7475
                        ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7476
                            instVarsArg := (args at:2) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7477
                            classVarsArg := (args at:3) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7478
                            categoryArg := (args at:5) evaluate.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7479
                        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7480
                        cls instanceVariableString asCollectionOfWords = instVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7481
                            cls classVariableString asCollectionOfWords = classVarsArg asCollectionOfWords ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7482
                                cls definitionSelector = (sel , 'category:')
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7483
                                ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7484
                                    "/ ST/V, VAge or Dolphin definition
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7485
                                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7486
                                ] ifFalse:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7487
                                    cls category = categoryArg ifTrue:[
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7488
                                        changeDelta := '='.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7489
                                    ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7490
                                        changeType := self colorizeAsCommentChange:'(class category change)'.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7491
                                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7492
                                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7493
                            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7494
                        ]
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7495
                    ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7496
                ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7497
            ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7498
        ].
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7499
        "/ sel := nil.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7500
        ^ self.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7501
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7502
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7503
    (#(
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7504
      #'primitiveDefinitions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7505
      #'primitiveFunctions:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7506
      #'primitiveVariables:'
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7507
     ) includes:sel) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7508
        changeType := '(class definition)'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7509
        clsName := rec name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7510
        ^ self.    
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7511
    ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7512
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7513
    ((sel == #instanceVariableNames:)
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7514
    and:[rec isMessage
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7515
    and:[rec selector == #class]]) ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7516
        clsName := rec receiver name.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7517
        changeClass := (self nameSpaceForApply) classNamed:clsName.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7518
        changeType := '(class definition)'.
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7519
        (changeInfo last) className:clsName.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7520
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7521
        autoCompare value ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7522
            changeClass isNil ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7523
                changeDelta := '?'.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7524
            ] ifFalse:[
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7525
                s := (args at:1) evaluate.
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7526
                s = changeClass class instanceVariableString ifTrue:[
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7527
                    changeDelta := '='.
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7528
                ]
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7529
            ]
15087
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7530
        ].
90d8b9febd7a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15082
diff changeset
  7531
        ^ self.    
6530
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7532
    ].
9548
05f790048963 unknown names
Claus Gittinger <cg@exept.de>
parents: 9543
diff changeset
  7533
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7534
    "Modified: / 01-05-2016 / 19:19:54 / cg"
18490
f38df56cb637 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18429
diff changeset
  7535
    "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
  7536
!
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7537
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7538
processSnapshotChunk
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7539
    changeType := ''.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7540
    headerLine := chunkText.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7541
    changeString := (chunkText contractTo:maxLen) withoutSeparators.
6bb6d5670055 refactorings to make reader cleaner;
Claus Gittinger <cg@exept.de>
parents: 6516
diff changeset
  7542
    timeStampInfo := nil.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7543
!
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7544
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7545
readChangesFile
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7546
    "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
  7547
     and a list of chunk-positions (changePositions).
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7548
     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
  7549
     the cols are:
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7550
        1   delta (only if comparing)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7551
                '+' -> new method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7552
                '-' -> removed method (w.r.t. current state)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7553
                '?' -> class does not exist currently
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7554
                '=' -> 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
  7555
                '~' -> 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
  7556
        2   class/selector
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7557
        3   type of change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7558
                doit
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7559
                method
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7560
                category change
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7561
        4   timestamp
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7562
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7563
     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
  7564
     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
  7565
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7566
    |excla|
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7567
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7568
    changeInfo := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7569
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7570
"/    changeChunks := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7571
"/    changeClassNames := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7572
"/    changeHeaderLines := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7573
"/    changePositions := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7574
"/    changeTimeStamps := OrderedCollection new.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7575
"/    changeIsFollowupMethodChange := OrderedCollection new.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7576
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7577
    excla := inStream class chunkSeparator.
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7578
    maxLen := 100.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7579
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7580
    [inStream atEnd] whileFalse:[
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7581
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7582
         get a chunk (separated by excla)
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7583
        "
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7584
        inStream skipSeparators.
13314
35d6805ec9ae class: ChangesBrowser
Stefan Vogel <sv@exept.de>
parents: 13123
diff changeset
  7585
        chunkPosition := inStream position + 1.
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7586
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7587
        sawExcla := inStream peekFor:excla.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7588
        chunkText := fullChunkText := inStream nextChunk.
7619
95943c1bc289 Ignore empty chunks when reading from changes file
Stefan Vogel <sv@exept.de>
parents: 7618
diff changeset
  7589
        chunkText notEmptyOrNil ifTrue:[
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7590
            self processChunk.
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7591
        ]
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7592
    ].
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7593
9515
04cc002afd3c changed: #setupTabSpec
Claus Gittinger <cg@exept.de>
parents: 9228
diff changeset
  7594
    "Modified: / 27-08-1995 / 23:06:55 / claus"
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7595
    "Modified: / 01-05-2016 / 18:33:36 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7596
! !
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7597
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7598
!ChangesBrowser::ChangeInfo class methodsFor:'documentation'!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7599
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7600
documentation
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7601
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7602
    documentation to be added.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7603
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7604
    [author:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7605
        cg
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7606
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7607
    [instance variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7608
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7609
    [class variables:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7610
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7611
    [see also:]
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7612
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7613
"
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7614
! !
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7615
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7616
!ChangesBrowser::ChangeInfo methodsFor:'accessing'!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7617
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7618
categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7619
    ^ categoryIfCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7620
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7621
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7622
categoryIfCategoryChange:something
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7623
    categoryIfCategoryChange := something.
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7624
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7625
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7626
chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7627
    ^ chunk
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7628
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7629
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7630
className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7631
    ^ className
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7632
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7633
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7634
className:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7635
    className := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7636
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7637
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7638
headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7639
    ^ headerLine
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7640
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7641
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7642
headerLine:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7643
    headerLine := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7644
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7645
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7646
isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7647
    ^ isFollowupChange
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7648
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7649
18059
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7650
isMethodCategoryChange
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7651
    ^ categoryIfCategoryChange notNil
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7652
!
819f12f70f46 #FEATURE by cg
Claus Gittinger <cg@exept.de>
parents: 18054
diff changeset
  7653
16372
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7654
position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7655
    ^ position
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7656
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7657
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7658
position:positionArg chunk:chunkArg className:classNameArg selector:selectorArg headerLine:headerLineArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7659
    timestamp:timestampArg isFollowupChange:isFollowupChangeArg 
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7660
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7661
    position := positionArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7662
    chunk := chunkArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7663
    className := classNameArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7664
    selector := selectorArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7665
    headerLine := headerLineArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7666
    timestamp := timestampArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7667
    isFollowupChange := isFollowupChangeArg.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7668
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7669
    "Created: / 01-05-2016 / 19:01:03 / cg"
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7670
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7671
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7672
selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7673
    ^ selector
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7674
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7675
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7676
selector:something
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7677
    selector := something.
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7678
!
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7679
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7680
timestamp
caaa45b78432 #REFACTORING by cg
Claus Gittinger <cg@exept.de>
parents: 16207
diff changeset
  7681
    ^ timestamp
6512
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7682
! !
ee424e762e33 started to refacvtorreadChanges into separate helper class.
Claus Gittinger <cg@exept.de>
parents: 6482
diff changeset
  7683
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  7684
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7685
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  7686
version
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7687
    ^ '$Header$'
8978
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7688
!
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7689
487f9ba1c483 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 8675
diff changeset
  7690
version_CVS
15683
dbf1e874fc93 class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 15674
diff changeset
  7691
    ^ '$Header$'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  7692
! !
12428
a8bd7df67b9a class: ChangesBrowser
Claus Gittinger <cg@exept.de>
parents: 11896
diff changeset
  7693