ChangesBrowser.st
author Claus Gittinger <cg@exept.de>
Tue, 15 Aug 2000 16:19:12 +0200
changeset 2699 dcb83b594b14
parent 2697 b4f4e431b71e
child 2746 9e7fbd54013c
permissions -rw-r--r--
default extent
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     1
"
4
77d8e96499b2 *** empty log message ***
claus
parents: 1
diff changeset
     2
 COPYRIGHT (c) 1990 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
     3
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
     4
571fd5eee315 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
571fd5eee315 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
571fd5eee315 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
571fd5eee315 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
571fd5eee315 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
571fd5eee315 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
571fd5eee315 Initial revision
claus
parents:
diff changeset
    11
"
571fd5eee315 Initial revision
claus
parents:
diff changeset
    12
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    13
"{ Package: 'stx:libtool' }"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
    14
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    15
StandardSystemView subclass:#ChangesBrowser
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    16
	instanceVariableNames:'changeListView codeView changeFileName changeChunks
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
    17
		changePositions changeClassNames changeHeaderLines
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
    18
		changeIsFollowupMethodChange anyChanges changeNrShown
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
    19
		changeNrProcessed skipSignal compareChanges compareCheckBox
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
    20
		changeFileSize changeFileTimestamp checkBlock changeTimeStamps
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
    21
		tabSpec autoUpdate editingClassSource lastSearchType
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
    22
		applyInOriginalNameSpace lastSaveFileName'
2637
2df524da9f63 use my owen cached defaultIcon
Claus Gittinger <cg@exept.de>
parents: 2635
diff changeset
    23
	classVariableNames:'CompressSnapshotInfo NoColoring ShowWarningDialogs DefaultIcon'
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    24
	poolDictionaries:''
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
    25
	category:'Interface-Browsers'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    26
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
    27
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    28
!ChangesBrowser class methodsFor:'documentation'!
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    30
copyright
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    31
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    32
 COPYRIGHT (c) 1990 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    33
	      All Rights Reserved
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    34
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    35
 This software is furnished under a license and may be used
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    36
 only in accordance with the terms of that license and with the
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    37
 inclusion of the above copyright notice.   This software may not
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    38
 be provided or otherwise made available to, or used by, any
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    39
 other person.  No title to or ownership of the software is
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    40
 hereby transferred.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    41
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    42
!
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    43
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    44
documentation
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    45
"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    46
    this implements a browser for the changes-file (actually, it can display
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    47
    any sourceFiles contents).
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    48
    See the extra document 'doc/misc/cbrowser.doc' for how to use this browser.
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    49
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    50
    written jan 90 by claus
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    51
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    52
    [Class variables:]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    53
        CompressSnapshotInfo            if true (the default), snapshot entries
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    54
                                        are also compressed in the compress function.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    55
                                        Some users prefer them to be not compressed.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    56
                                        Set it to false for this.
58
43b7d463a7e5 *** empty log message ***
claus
parents: 57
diff changeset
    57
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
    58
    Notice:
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    59
        this needs a total rewrite, to build up a changeSet from the file
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    60
        (which did not exist when the ChangesBrowser was originally written) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    61
        and manipulate that changeSet.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    62
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    63
        This way, we get a browser for any upcoming incore changeSets for
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    64
        free. Also, this will put the chunk analyzation code into Change and
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    65
        subclasses (where it belongs) and give a better encapsulation and
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    66
        overall structure. Do not take this as an example for good style ;-)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    67
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    68
        The Change hierarchy is currently been completed, and the changes browser
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    69
        will be adapted soon.
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    70
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    71
    [author:]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    72
        Claus Gittinger
508
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    73
8d2ab732fca5 documentation
Claus Gittinger <cg@exept.de>
parents: 502
diff changeset
    74
    [start with:]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    75
        ChangesBrowser open
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    76
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    77
    [see also:]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
    78
        ( Using the ChangesBrowser :html: tools/cbrowser/TOP.html )
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
    79
        
29
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    80
"
8a72e10043f6 *** empty log message ***
claus
parents: 28
diff changeset
    81
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
    82
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
    83
!ChangesBrowser class methodsFor:'instance creation'!
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    84
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    85
new
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    86
    "create a new changes browser"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    87
1470
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    88
    ^ super 
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    89
        label:(self defaultLabel)
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    90
        icon:(self defaultIcon)
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    91
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    92
    "Modified: / 6.2.1998 / 13:25:18 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    93
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    94
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    95
openOn:aFileName
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    96
    "create c changes browser on a change file"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
    97
1470
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    98
    ^ ((self new label:(self defaultLabel , ': ', aFileName)) 
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
    99
        changeFileName:aFileName) open
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   100
6c0fc11207fe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1431
diff changeset
   101
    "Modified: / 6.2.1998 / 13:27:19 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   102
! !
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
   103
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   104
!ChangesBrowser class methodsFor:'behavior'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   105
571fd5eee315 Initial revision
claus
parents:
diff changeset
   106
autoSelectNext
571fd5eee315 Initial revision
claus
parents:
diff changeset
   107
    "returning true here, makes a Delete operation automatically
571fd5eee315 Initial revision
claus
parents:
diff changeset
   108
     select the next change"
571fd5eee315 Initial revision
claus
parents:
diff changeset
   109
571fd5eee315 Initial revision
claus
parents:
diff changeset
   110
    ^ true
571fd5eee315 Initial revision
claus
parents:
diff changeset
   111
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
   112
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
   113
!ChangesBrowser class methodsFor:'defaults'!
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   114
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   115
defaultIcon
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   116
    "return the browsers default window icon"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   117
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   118
    <resource: #style (#ICON #ICON_FILE)>
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   119
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   120
    |nm i|
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   121
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   122
    (i := DefaultIcon) isNil ifTrue:[
2341
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   123
        i := self classResources at:'ICON' default:nil.
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   124
        i isNil ifTrue:[
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   125
            nm := ClassResources at:'ICON_FILE' default:'CBrowser.xbm'.
2477
cfb8a4d7b557 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2474
diff changeset
   126
            i := Smalltalk imageFromFileNamed:nm inPackage:#'stx:libtool'.
2341
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   127
            i isNil ifTrue:[
2451
2a01088e75d3 try bitmaps in package directory
Claus Gittinger <cg@exept.de>
parents: 2450
diff changeset
   128
                i := StandardSystemView defaultIcon
2341
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   129
            ]
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   130
        ].
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   131
        i notNil ifTrue:[
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   132
            DefaultIcon := i := i onDevice:Display
a342f41922c9 #on: -> #onDevice:
Claus Gittinger <cg@exept.de>
parents: 2329
diff changeset
   133
        ]
1084
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   134
    ].
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   135
    ^ i
bf64c6b08604 icon from resources
Claus Gittinger <cg@exept.de>
parents: 1070
diff changeset
   136
1153
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   137
    "Modified: 19.3.1997 / 20:48:34 / ca"
9e57c1d4339a better default icon
Claus Gittinger <cg@exept.de>
parents: 1150
diff changeset
   138
    "Modified: 18.4.1997 / 15:16:24 / cg"
489
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   139
!
89cbd82e4541 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 419
diff changeset
   140
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   141
defaultLabel
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   142
    ^ 'Changes Browser'
2417
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   143
!
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   144
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   145
isVisualStartable
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   146
    ^ true
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   147
2330ef87fa59 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2396
diff changeset
   148
    "Created: / 27.9.1999 / 12:28:27 / cg"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   149
! !
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
   150
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   151
!ChangesBrowser methodsFor:'compiler interface'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   152
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   153
wantChangeLog
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   154
    "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
   155
     be written when compiling. Return false here."
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   156
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   157
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   158
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   159
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
   160
!ChangesBrowser methodsFor:'compiler interface - error handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   161
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   162
correctableError:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   163
    "compiler notifys us of an error - this should really not happen since
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   164
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   165
     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
   166
     no corrections allowed here therefore return false"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   167
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   168
    ShowWarningDialogs == true ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   169
        self error:aString position:relPos to:relEndPos from:aCompiler.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   170
    ] ifFalse:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   171
        Transcript showCR:aString.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   172
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   173
    ^ false
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   174
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   175
2555
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   176
correctableSelectorWarning:aString position:relPos to:relEndPos from:aCompiler
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   177
    "compiler notifys us of a warning"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   178
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   179
    ^ false
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   180
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   181
    "Modified: / 19.1.2000 / 16:25:31 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   182
    "Created: / 19.1.2000 / 16:27:23 / cg"
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   183
!
d92a6526ec47 correctable selectors.
Claus Gittinger <cg@exept.de>
parents: 2541
diff changeset
   184
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   185
error:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   186
    "compiler notifys us of an error - this should really not happen since
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   187
     changes ought to be correct (did someone edit the changes file ??).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   188
     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
   189
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   190
    |action|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   191
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   192
    (changeNrProcessed ~~ changeNrShown) ifTrue:[
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   193
        self changeSelection:changeNrProcessed
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   194
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   195
    (skipSignal notNil) ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   196
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   197
        codeView highlightingErrorPosition:relPos to:relEndPos do:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   198
            |box|
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   199
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   200
            "
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   201
             start dialog - make certain cleanup is done
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   202
            "
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   203
            action := OptionBox 
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   204
                          request:aString
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   205
                          label:'Error'
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   206
                          form:(WarningBox iconBitmap)
2420
6de430648cfe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2417
diff changeset
   207
                          buttonLabels:#('cancel' 'skip' " 'shut up' " 'continue')
6de430648cfe checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2417
diff changeset
   208
                          values:#(#abort #skip " #shutUp " #continue)
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   209
                          default:#continue.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   210
        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   211
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   212
"/        action == #shutUp ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   213
"/            aCompiler ignoreWarnings.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   214
"/            ^  false 
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   215
"/        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   216
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   217
        action == #abort ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   218
            Object abortSignal raise.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   219
            ^ false
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   220
        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   221
        action == #skip ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   222
            skipSignal raise.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   223
            ^ false
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   224
        ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
   225
        ^  false 
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   226
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   227
    ^ codeView error:aString position:relPos to:relEndPos from:aCompiler
373
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
   228
292071301f91 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 358
diff changeset
   229
    "Modified: 20.2.1996 / 20:47:59 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   230
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   231
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   232
warning:aString position:relPos to:relEndPos from:aCompiler
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   233
    "compiler notifys us of a warning - ignore it"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   234
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   235
    ^ self
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   236
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   237
2604
d09c51169bc8 category rename
Claus Gittinger <cg@exept.de>
parents: 2576
diff changeset
   238
!ChangesBrowser methodsFor:'event handling'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   239
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   240
handlesKeyPress:key inView:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   241
    "this method is reached via delegation: are we prepared to handle
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   242
     a keyPress in some other view ?"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   243
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   244
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   245
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   246
    view == changeListView ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   247
	(key == #Delete 
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   248
	or:[key == #BackSpace
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   249
	or:[key == #Accept
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   250
	or:[key == #Find
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   251
	or:[key == #FindPrev
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   252
	or:[key == #FindNext]]]]]) ifTrue:[^ true].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   253
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   254
    ^ false
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   255
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   256
    "Modified: 8.4.1997 / 11:01:42 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
   257
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
   258
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   259
keyPress:key x:x y:y view:view
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   260
    "this method is reached via delegation from the changeListView"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   261
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   262
    <resource: #keyboard (#Delete #BackSpace #Accept #Find #FindPrev #FindNext)>
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   263
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   264
    (key == #Delete or:[key == #BackSpace]) ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   265
        self doDelete.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   266
        ^ self
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   267
    ].
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   268
    (key == #Accept) ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   269
        self doApply.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   270
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   271
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   272
    (key == #Find) ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   273
        self findClass.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   274
        ^ self
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
   275
    ].
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
   276
    (key == #FindPrev) ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   277
        self findPrevious.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   278
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
   279
    ].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
   280
    (key == #FindNext) ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   281
        self findNext.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   282
        ^ self
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
   283
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   284
    changeListView keyPress:key x:x y:y
417
c80a8acf429c show shortkeys in changeList view
Claus Gittinger <cg@exept.de>
parents: 394
diff changeset
   285
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   286
    "Modified: / 18.6.1998 / 22:15:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   287
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   288
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   289
!ChangesBrowser methodsFor:'help '!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   290
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   291
helpTextFor:aComponent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   292
    |s|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   293
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   294
    aComponent == codeView ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   295
	s := 'HELP_CODEVIEW'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   296
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   297
    aComponent == changeListView ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   298
	s := 'HELP_CHANGELIST'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   299
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   300
    ((aComponent == compareCheckBox)
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   301
    or:[aComponent superView == compareCheckBox]) ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   302
	s := 'HELP_CHECK_COMPARE'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   303
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   304
    s notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   305
	^ resources string:s
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   306
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   307
    ^ nil
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   308
!
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   309
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   310
showActivity:someMessage
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   311
    "some activityNotification to be forwarded to the user;
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   312
     show it in the windows title area here."
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   313
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   314
    self label:someMessage
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   315
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
   316
    "Created: 24.2.1996 / 19:35:42 / cg"
502
e8d7b3f08e03 commentary
Claus Gittinger <cg@exept.de>
parents: 489
diff changeset
   317
    "Modified: 23.4.1996 / 21:39:36 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   318
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   319
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   320
!ChangesBrowser methodsFor:'initialize / release'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   321
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   322
changeListMenu
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   323
    <resource: #keyboard ( #Accept #Delete ) >
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   324
    <resource: #programMenu >
586
1acb0c4f0ecd added resource info
Claus Gittinger <cg@exept.de>
parents: 584
diff changeset
   325
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   326
    |items m|
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   327
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   328
    self sensor ctrlDown ifTrue:[
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   329
        "/ notice - the only difference is the shortKey assignment below
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   330
        "/ findNext/prev will search for the same thing again.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   331
        lastSearchType == #selector ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   332
            items := #(
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   333
                              ('search class'                 findClass             #Find         )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   334
                              ('next for this class'          findNextForClass                    )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   335
                              ('previous for this class'      findPreviousForClass                )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   336
                              ('-'                                                                )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   337
                              ('search selector'              findSelector                        )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   338
                              ('next with this selector'      findNextForSelector     #FindNext   )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   339
                              ('previous with this selector'  findPreviousForSelector #FindPrev   )
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   340
                              ('-'                                                                )
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   341
                              ('search string'                findString                        )
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   342
                              ('-'                                                                )
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   343
                              ('next snapshot'                findNextSnapshot                    )
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   344
                              ('previous snapshot'            findPreviousSnapshot                )
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   345
                     ).
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   346
        ] ifFalse:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   347
            items := #(
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   348
                              ('search class'                 findClass             #Find         )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   349
                              ('next for this class'          findNextForClass      #FindNext     )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   350
                              ('previous for this class'      findPreviousForClass  #FindPrev     )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   351
                              ('-'                                                                )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   352
                              ('search selector'              findSelector                        )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   353
                              ('next with this selector'      findNextForSelector                 )
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   354
                              ('previous with this selector'  findPreviousForSelector             )
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   355
                              ('-'                                                                )
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   356
                              ('search string'                findString                        )
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
   357
                              ('-'                                                                )
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   358
                              ('next snapshot'                findNextSnapshot                    )
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   359
                              ('previous snapshot'            findPreviousSnapshot                )
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   360
                     ).
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   361
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   362
        ^ PopUpMenu itemList:items resources:resources.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   363
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
   364
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   365
    items := #(
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   366
                      ('apply'                        doApply                    Accept)
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   367
                      ('apply to end'                 doApplyRest                      )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   368
                      ('apply for class to end'       doApplyClassRest                 )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   369
                      ('apply all'                    doApplyAll                       )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   370
                      ('-'                                                             )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   371
                      ('delete'                       doDelete                   Delete)
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   372
                      ('delete to end'                doDeleteRest                     )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   373
                      ('delete for class to end'      doDeleteClassRest                )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   374
                      ('delete for class from begin'  doDeleteClassFromBeginning       )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   375
                      ('delete all for class'         doDeleteClassAll                 )
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   376
                      ('delete all for class & its private classes' doDeleteClassAndPrivateClassesAll )
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   377
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   378
                      ('-'                                                             )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   379
                      ('compress'                     doCompress                       )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   380
                      ('compress for class'           doCompressClass                  )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   381
                      ('compare with current version' doCompare                        )
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   382
                      ('browse class'                 doBrowse                         )
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   383
                      ('-'                                                             )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   384
                      ('make change a patch'          doMakePatch                      )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   385
             ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   386
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   387
    editingClassSource ifFalse:[
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   388
        items := items , #(
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   389
                      ('fileout & delete all for class' doFileoutAndDeleteClassAll     )
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   390
                      ('checkIn & delete all for class' doCheckinAndDeleteClassAll     )
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   391
                          )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   392
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   393
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   394
    items := items , #(
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   395
                      ('-'                                            )
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   396
                      ('save in...'                  doSave           )
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   397
                      ('save to end in...'           doSaveRest       )
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   398
                      ('save for class to end in...' doSaveClassRest  )
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   399
                      ('save all for class in...'    doSaveClassAll   )
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   400
                      ('-'                                            )
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   401
                     ).
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   402
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   403
    editingClassSource ifTrue:[
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   404
        items := items , #(
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   405
                      ('writeback classFile'  doWriteBack )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   406
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   407
    ] ifFalse:[
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   408
        items := items , #(
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   409
                      ('writeback changeFile' doWriteBack )
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   410
                     )
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   411
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
   412
1833
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
   413
    items := items , #(
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
   414
                  ('-'                                                             )
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
   415
                  ('update view'                  doUpdate                         )
c9b1a30b326d moved update item to the end
Claus Gittinger <cg@exept.de>
parents: 1788
diff changeset
   416
                 ).
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   417
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   418
    m := PopUpMenu itemList:items resources:resources.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   419
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   420
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   421
    "/ disable those that require a selected entry
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   422
    "/
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   423
    changeListView hasSelection ifFalse:[
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   424
        m disableAll:#(doApply doApplyClassRest doApplyRest doDelete doDeleteRest doDeleteClassRest
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   425
                       doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll 
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   426
                       doCompare doCompressClass doMakePatch doSaveChangeInFile doMakePermanent
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   427
                       doSave doSaveRest doSaveClassAll doSaveClassRest doBrowse 
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   428
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll) 
1368
a27fc06ba9ea checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1359
diff changeset
   429
    ] ifTrue:[
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   430
        (self classNameOfChange:(changeListView selection)) isNil ifTrue:[
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   431
            m disableAll:#(doApplyClassRest doDeleteClassRest
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   432
                           doDeleteClassFromBeginning doDeleteClassAll doDeleteClassAndPrivateClassesAll
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   433
                           doCompressClass
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   434
                           doSaveClassAll doSaveClassRest doBrowse 
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   435
                           doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll) 
1670
c3915af3f7f6 use new menu creation message
Claus Gittinger <cg@exept.de>
parents: 1649
diff changeset
   436
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   437
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   438
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   439
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   440
    "/ disable those that do not make sense with autoUpdate
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   441
    "/ ('cause this would be overwritten by next update operation)
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   442
    "/
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   443
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
   444
    autoUpdate ifTrue:[
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   445
        m disableAll:#(doDelete doDeleteRest doDeleteClassRest doDeleteClassAll 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
   446
                       doDeleteClassAndPrivateClassesAll doCompress 
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   447
                       doFileoutAndDeleteClassAll doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
   448
                       doWriteBack)
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   449
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   450
    ^ m
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   451
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
   452
    "Modified: / 6.9.1995 / 17:14:22 / claus"
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
   453
    "Modified: / 22.8.1998 / 15:50:17 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   454
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   455
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   456
compare:aBoolean
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   457
    "sent from the compare-toggle"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
   458
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   459
    aBoolean ~~ compareChanges ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   460
	compareChanges := aBoolean.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   461
	compareChanges ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   462
	    tabSpec positions:#(0  0.15  5   8.5 ).
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   463
	    self doUpdate
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   464
	] ifFalse:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   465
	    "/
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   466
	    "/ set tabs to hide compare-column
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   467
	    "/
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   468
	    tabSpec positions:#(-1  0    5   8.5 ).
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   469
	    changeListView invalidate. "/ clear; redraw.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
   470
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   471
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   472
584
3f49ec1318ef use #invalidate instead of #redraw
Claus Gittinger <cg@exept.de>
parents: 577
diff changeset
   473
    "Modified: 29.5.1996 / 16:12:19 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   474
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   475
2114
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   476
destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   477
    "destroy the receiver; make certain, that boxes are destroyed too"
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   478
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   479
    Processor removeTimedBlock:checkBlock.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   480
    ObjectMemory removeDependent:self.
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   481
    super destroy
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   482
!
720edbe757f5 category change
Claus Gittinger <cg@exept.de>
parents: 2093
diff changeset
   483
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   484
focusSequence
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   485
    ^ Array with:changeListView with:codeView
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   486
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   487
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   488
initialize
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
   489
    |panel v upperFrame buttonPanel autoUpdateCheckBox applyInOriginalNameSpaceCheckBox|
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   490
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   491
    super initialize.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   492
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   493
    changeFileName := ObjectMemory nameForChanges. "/ 'changes'.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   494
    compareChanges := false.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   495
    autoUpdate := false.
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   496
    applyInOriginalNameSpace := true asValue.
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   497
1099
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   498
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   499
      checkBlock is executed by the Processor.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   500
      We use #pushEvent: to perform the update
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   501
      in our windowgroups process.
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   502
    "
b0a4e8ccc5cc Use #pushEvent: for timer handling.
Stefan Vogel <sv@exept.de>
parents: 1090
diff changeset
   503
    checkBlock := [self pushEvent:#checkIfFileHasChanged].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   504
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   505
    panel := VariableVerticalPanel origin:(0.0 @ 0.0)
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   506
                                   corner:(1.0 @ 1.0)
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   507
                              borderWidth:0
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   508
                                       in:self.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   509
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   510
    upperFrame := View origin:(0.0 @ 0.0) corner:(1.0 @ 0.3) in:panel.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   511
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   512
    v := HVScrollableView for:SelectionInListView miniScrollerH:true in:upperFrame.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   513
    v origin:(0.0 @ 0.0) corner:(0.8 @ 1.0).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   514
    changeListView := v scrolledView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   515
    changeListView delegate:self.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   516
    changeListView menuHolder:self; menuPerformer:self; menuMessage:#changeListMenu.
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   517
    changeListView doubleClickAction:[:line | self doubleClickOnChange:line].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   518
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   519
    buttonPanel := VerticalPanelView in:upperFrame.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   520
    buttonPanel origin:(0.8 @ 0.0) corner:(1.0 @ 1.0).
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   521
    buttonPanel verticalLayout:#topSpace; horizontalLayout:#leftSpace.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   522
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   523
    compareCheckBox := CheckBox new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   524
    compareCheckBox label:(resources string:'compare').
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   525
    compareCheckBox action:[:val | self compare:val].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   526
    buttonPanel addSubView:compareCheckBox.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   527
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   528
    autoUpdateCheckBox := CheckBox new.
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   529
    autoUpdateCheckBox label:(resources string:'auto update').
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   530
    autoUpdateCheckBox action:[:val | self autoUpdate:val].
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   531
    buttonPanel addSubView:autoUpdateCheckBox.
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
   532
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
   533
    applyInOriginalNameSpaceCheckBox := CheckBox new.
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   534
    applyInOriginalNameSpaceCheckBox label:(resources string:'Apply in original nameSpace').
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   535
    applyInOriginalNameSpaceCheckBox model:applyInOriginalNameSpace.
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   536
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
   537
    buttonPanel addSubView:applyInOriginalNameSpaceCheckBox.
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
   538
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   539
    v := HVScrollableView for:CodeView miniScrollerH:true miniScrollerV:false in:panel.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   540
    v origin:(0.0 @ 0.3) corner:(1.0 @ 1.0).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   541
    codeView := v scrolledView.
1996
e229ecc9f839 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1848
diff changeset
   542
    codeView readOnly:true.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   543
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   544
    anyChanges := false.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   545
    ObjectMemory addDependent:self.   "to get shutdown-update"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   546
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   547
    tabSpec := TabulatorSpecification new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   548
    tabSpec unit:#inch.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   549
    tabSpec positions:#(-1      0        5      8.5 ).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   550
    "                   +/-    cls>>sel  type   info"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   551
    tabSpec align:    #(#left  #left     #left  #left).
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   552
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   553
    "Modified: / 27.3.1997 / 11:07:07 / stefan"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
   554
    "Modified: / 6.2.1998 / 13:08:16 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   555
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   556
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
   557
postRealize
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   558
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   559
    self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   560
    changeListView action:[:lineNr | self changeSelection:lineNr].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   561
    Processor addTimedBlock:checkBlock afterSeconds:5.
1246
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
   562
9ed3722bd2f2 setup in #postRealize instead of #realize
Claus Gittinger <cg@exept.de>
parents: 1200
diff changeset
   563
    "Created: 24.7.1997 / 18:06:12 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   564
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   565
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   566
update:what with:aParameter from:changedObject
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   567
    |box|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   568
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   569
    (what == #aboutToExit) ifTrue:[
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   570
        "
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   571
         smalltalk is about to shut down -
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   572
         - if change list was modified, ask user and save if requested.
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   573
        "
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   574
        anyChanges ifTrue:[
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   575
            self raiseDeiconified.
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   576
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   577
            box := YesNoBox new.
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   578
            box title:('the modified changelist has not been written back to the change file.\\Write change file before exiting ?') withCRs.
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   579
            box okText:(resources at:'write') noText:(resources at:'don''t write').
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   580
            box yesAction:[self writeBackChanges] 
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   581
                 noAction:[].
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   582
            box showAtPointer.
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   583
            box destroy
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   584
        ].
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   585
        ^ self
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   586
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   587
    super update:what
627
60c38701d4a2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   588
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   589
    "Created: / 15.6.1996 / 15:26:30 / cg"
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   590
    "Modified: / 7.1.1997 / 23:03:47 / cg"
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
   591
    "Modified: / 24.8.1999 / 09:45:06 / stefan"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   592
! !
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   593
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   594
!ChangesBrowser methodsFor:'private'!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
   595
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   596
autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   597
    "select a change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   598
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   599
    self class autoSelectNext ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   600
        (changeNr <= self numberOfChanges) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   601
            changeListView setSelection:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   602
            self changeSelection:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   603
            ^ self
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   604
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   605
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   606
    self clearCodeView.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   607
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   608
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   609
    "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
   610
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   611
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   612
autoSelectLast
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   613
    "select the last change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   614
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   615
    self autoSelect:(self numberOfChanges)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   616
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   617
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   618
autoSelectOrEnd:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   619
    "select the next change or the last"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   620
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   621
    |last|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   622
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   623
    last := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   624
    changeNr < last ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   625
	self autoSelect:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   626
    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   627
	changeListView setSelection:last .
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   628
	self changeSelection:last.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   629
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   630
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   631
    "Modified: 25.5.1996 / 12:26:17 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   632
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   633
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   634
checkClassIsLoaded:aClass
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   635
    |cls answer|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   636
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   637
    aClass isMeta ifTrue:[
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   638
        cls := aClass soleInstance
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   639
    ] ifFalse:[
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   640
        cls := aClass
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   641
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   642
    cls isLoaded ifFalse:[
2474
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   643
        (self confirm:(resources 
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   644
                        string:'%1 is an autoloaded class.\I can only compare the methods source if its loaded first.\\Shall the class be loaded now ?'
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   645
                        with:cls name asText allBold) withCRs)
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   646
        ifFalse:[
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   647
            AbortSignal raise
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   648
        ].
6767e6c2f04c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2466
diff changeset
   649
        cls autoload
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   650
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   651
    ^ cls isLoaded
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   652
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   653
    "Created: 12.12.1995 / 14:04:39 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   654
    "Modified: 12.12.1995 / 14:11:05 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   655
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   656
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   657
clearCodeView
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   658
    self unselect "changeListView deselect".
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   659
    codeView contents:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   660
    changeNrShown := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   661
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   662
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   663
contractClass:className selector:selector to:maxLen
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   664
    |s l|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   665
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   666
    s := className , ' ', selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   667
    s size > maxLen ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   668
	l := maxLen - 1 - selector size max:20.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   669
	s := (className contractTo:l) , ' ' , selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   670
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   671
	s size > maxLen ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   672
	    l := maxLen - 1 - className size max:20.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   673
	    s := className , ' ', (selector contractTo:l).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   674
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   675
	    s size > maxLen ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   676
		s := (className contractTo:(maxLen // 2 - 1)) , ' ' , (selector contractTo:maxLen // 2)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   677
	    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   678
	]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   679
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   680
    ^ s
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   681
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   682
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   683
newLabel:how
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   684
    |l|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   685
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   686
    (changeFileName ~= 'changes') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   687
        l := self class defaultLabel , ': ', changeFileName
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   688
    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   689
        l := self class defaultLabel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   690
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   691
    l := l , ' ' , how.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   692
    self label:l
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   693
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   694
    "Created: / 8.9.1995 / 19:32:04 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   695
    "Modified: / 8.9.1995 / 19:39:29 / claus"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   696
    "Modified: / 6.2.1998 / 13:27:01 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   697
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   698
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   699
queryCloseText
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   700
    "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
   701
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   702
    ^ 'Quit without updating changeFile ?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   703
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   704
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   705
setChangeList
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   706
    "extract type-information from changes and stuff into top selection
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   707
     view"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   708
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   709
    changeListView setList:changeHeaderLines expandTabs:false redraw:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   710
    changeListView invalidate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   711
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   712
    "/ changeListView deselect.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   713
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   714
    "Modified: / 18.5.1998 / 14:29:10 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   715
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   716
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   717
showNotFound
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   718
    |savedCursor|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   719
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   720
    savedCursor := cursor.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   721
    [
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   722
        self cursor:(Cursor cross).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   723
        self beep.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   724
        Delay waitForMilliseconds:300.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   725
    ] valueNowOrOnUnwindDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   726
        self cursor:savedCursor
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   727
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   728
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   729
    "Modified: / 29.4.1999 / 22:36:54 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   730
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   731
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   732
unselect
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   733
    "common unselect"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   734
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   735
    changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   736
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   737
    "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
   738
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   739
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   740
withSelectedChangeDo:aBlock
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   741
    "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
   742
     with busy cursor"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   743
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   744
    |changeNr|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   745
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   746
    changeNr := changeListView selection.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   747
    changeNr notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   748
	self withExecuteCursorDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   749
	    aBlock value:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   750
	]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   751
    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   752
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   753
    "Modified: 14.12.1995 / 20:58:45 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   754
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   755
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   756
!ChangesBrowser methodsFor:'private-change access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   757
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   758
changeIsFollowupMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   759
    ^ changeIsFollowupMethodChange at:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   760
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   761
    "Created: / 6.2.1998 / 13:03:39 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   762
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   763
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   764
classNameOfChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   765
    "return the classname of a change 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   766
     (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
   767
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   768
    |name|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   769
2686
e814876e7d61 class name cache
Claus Gittinger <cg@exept.de>
parents: 2683
diff changeset
   770
    name := changeClassNames at:changeNr.
e814876e7d61 class name cache
Claus Gittinger <cg@exept.de>
parents: 2683
diff changeset
   771
    name isNil ifTrue:[
e814876e7d61 class name cache
Claus Gittinger <cg@exept.de>
parents: 2683
diff changeset
   772
        name := self fullClassNameOfChange:changeNr.
e814876e7d61 class name cache
Claus Gittinger <cg@exept.de>
parents: 2683
diff changeset
   773
    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   774
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   775
    (name endsWith:' class') ifTrue:[
2686
e814876e7d61 class name cache
Claus Gittinger <cg@exept.de>
parents: 2683
diff changeset
   776
        ^ name copyWithoutLast:6
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   777
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   778
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   779
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   780
    "Modified: 6.12.1995 / 17:06:31 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   781
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   782
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   783
fullClassNameOfChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   784
    "return the full classname of a change 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   785
     (for classChanges (i.e. xxx class), a string ending in ' class' is returned.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   786
     - since parsing ascii methods is slow, keep result cached in 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   787
       changeClassNames for the next query"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   788
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   789
    |chunk aParseTree recTree sel name arg1Tree isMeta prevMethodDefNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   790
     words changeStream fullParseTree ownerTree ownerName oldDollarSetting|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   791
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   792
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   793
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   794
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   795
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   796
    "
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
   797
"/    name := changeClassNames at:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   798
    name notNil ifTrue:[^ name].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   799
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   800
    prevMethodDefNr := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   801
    [changeIsFollowupMethodChange at:prevMethodDefNr] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   802
        prevMethodDefNr := prevMethodDefNr - 1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   803
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   804
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   805
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   806
     get the chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   807
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   808
    chunk := changeChunks at:prevMethodDefNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   809
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   810
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   811
    (chunk startsWith:'''---') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   812
        words := chunk asCollectionOfWords.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   813
        words size > 2 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   814
            (words at:2) = 'checkin' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   815
                name := words at:3.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   816
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   817
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   818
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   819
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   820
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   821
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   822
    "/ fix it - otherwise, it cannot be parsed
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   823
    (chunk endsWith:'primitiveDefinitions:') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   824
        chunk := chunk , ''''''
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   825
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   826
    (chunk endsWith:'primitiveFunctions:') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   827
        chunk := chunk , ''''''
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   828
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   829
    (chunk endsWith:'primitiveVariables:') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   830
        chunk := chunk , ''''''
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   831
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   832
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   833
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   834
     use parser to construct a parseTree
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   835
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   836
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   837
    [
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   838
        Parser allowDollarInIdentifier:true.
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   839
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   840
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   841
            aParseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   842
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   843
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   844
        aParseTree == #Error ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   845
            (chunk includesString:'comment') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   846
                "/ could be a comment ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   847
                aParseTree := Parser parseExpression:chunk , ''''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   848
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   849
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   850
    ] valueNowOrOnUnwindDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   851
        Parser allowDollarInIdentifier:oldDollarSetting
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   852
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   853
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   854
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   855
        ^ nil        "seems strange ... (could be a comment)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   856
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   857
    aParseTree isMessage ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   858
        ^ nil        "very strange ... (whats that ?)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   859
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   860
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   861
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   862
     ask parser for selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   863
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   864
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   865
    recTree := aParseTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   866
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   867
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   868
     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
   869
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   870
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   871
    (#(#'methodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   872
       #'privateMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   873
       #'protectedMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   874
       #'ignoredMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   875
       #'publicMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   876
       #'removeSelector:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   877
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   878
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   879
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   880
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   881
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   882
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   883
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   884
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   885
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   886
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
   887
       #methodsFor                   "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
   888
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   889
    ) includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   890
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   891
         yes, the className is the receiver
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   892
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   893
        (recTree notNil and:[recTree ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   894
            isMeta := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   895
            recTree isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   896
                (recTree selector ~~ #class) ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   897
                "id class methodsFor:..."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   898
                recTree := recTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   899
                isMeta := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   900
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   901
            recTree isPrimary ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   902
                name := recTree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   903
                isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   904
                    name := name , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   905
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   906
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   907
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   908
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   909
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   910
        "more strange things"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   911
        ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   912
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   913
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   914
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   915
     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
   916
    "
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
   917
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   918
    (('subclass:*' match:sel) 
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
   919
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   920
        "/ must parse the full changes text, to get
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   921
        "/ privacy information.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   922
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   923
        changeStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   924
        changeStream notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   925
            chunk := changeStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   926
            changeStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   927
            fullParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   928
            (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   929
                fullParseTree := nil
2396
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   930
            ] ifFalse:[
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   931
                fullParseTree isMessage ifFalse:[
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   932
                    fullParseTree := nil
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   933
                ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   934
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   935
            "/ actually, the nil case cannot happen
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   936
            fullParseTree notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   937
                aParseTree := fullParseTree.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   938
                sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   939
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   940
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   941
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   942
        arg1Tree := aParseTree arg1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   943
        (arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   944
            name := arg1Tree value asString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   945
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   946
            "/ is it a private-class ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   947
            ('*privateIn:' match:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   948
                ownerTree := aParseTree args last.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   949
                ownerName := ownerTree name asString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   950
                name := ownerName , '::' , name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   951
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   952
            changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   953
            ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   954
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   955
        "very strange"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   956
        ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   957
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   958
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   959
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   960
     is it a class remove ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   961
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   962
    (sel == #removeClass:) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   963
        (recTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   964
        and:[recTree ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   965
        and:[recTree isPrimary
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   966
        and:[recTree name = 'Smalltalk']]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   967
            arg1Tree := aParseTree arg1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   968
            (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   969
                name := arg1Tree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   970
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   971
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   972
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   973
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   974
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   975
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   976
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   977
     is it a method category change ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   978
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   979
    ((sel == #category:)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   980
    or:[sel == #privacy:]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   981
        (recTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   982
        and:[recTree ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   983
        and:[recTree isMessage
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   984
        and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   985
            isMeta := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   986
            recTree := recTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   987
            recTree isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   988
                (recTree selector ~~ #class) ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   989
                "id class "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   990
                recTree := recTree receiver
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   991
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   992
            recTree isPrimary ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   993
                isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   994
                    name := name , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   995
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   996
                name := recTree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   997
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   998
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   999
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1000
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1001
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1002
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1003
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1004
    "Modified: / 13.2.2000 / 15:05:28 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1005
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1006
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1007
numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1008
    ^ changePositions size
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1009
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1010
    "Created: 3.12.1995 / 18:15:39 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1011
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1012
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1013
ownerClassNameOfChange:changeNr
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1014
    "return the owner classname of a change 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1015
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1016
     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
  1017
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1018
    |name ns idx cls|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1019
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1020
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1021
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1022
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1023
    (cls notNil and:[cls isBehavior]) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1024
        cls owningClass notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1025
            ^ cls owningClass name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1026
        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1027
        ^ cls name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1028
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1029
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1030
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1031
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1032
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1033
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1034
"/        ns notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1035
"/        
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1036
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1037
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1038
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1039
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1040
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1041
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1042
"/        ^ name copyWithoutLast:6
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1043
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1044
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1045
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1046
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1047
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1048
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1049
selectorOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1050
    "return a method-changes selector, or nil if its not a methodChange"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1051
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1052
    |source parser sel chunk aParseTree |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1053
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1054
    source := self sourceOfMethodChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1055
    source isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1056
        (self classNameOfChange:changeNr) notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1057
            chunk := changeChunks at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1058
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1059
            aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1060
            (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1061
                ^ nil        "seems strange ... (could be a comment)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1062
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1063
            aParseTree isMessage ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1064
                ^ nil        "very strange ... (whats that ?)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1065
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1066
            sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1067
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1068
                #'removeSelector:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1069
            ) includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1070
                sel := aParseTree arguments at:1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1071
                sel isConstant ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1072
                    sel := sel evaluate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1073
                    sel isSymbol ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1074
                        ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1075
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1076
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1077
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1078
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1079
        ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1080
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1081
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1082
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1083
    parser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1084
                parseMethodArgAndVarSpecification:source
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1085
                in:nil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1086
                ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1087
                ignoreWarnings:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1088
                parseBody:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1089
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1090
"/    parser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1091
"/                parseMethod:source 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1092
"/                in:nil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1093
"/                ignoreErrors:true 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1094
"/                ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1095
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1096
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1097
        sel := parser selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1098
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1099
    ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1100
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1101
    "Created: 24.11.1995 / 14:30:46 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1102
    "Modified: 5.9.1996 / 17:12:50 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1103
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1104
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1105
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1106
    "return a method-changes source code, or nil if its not a methodChange."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1107
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1108
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1109
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1110
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1111
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1112
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1113
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1114
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1115
        chunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1116
    ] ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1117
        chunk := (changeChunks at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1118
        sawExcla := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1119
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1120
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1121
    sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1122
        parseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1123
        (parseTree notNil and:[parseTree isMessage]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1124
            sel := parseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1125
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1126
               #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1127
               #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1128
               #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1129
               #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1130
               #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1131
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1132
               #methodsFor:stamp:             "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1133
               #commentStamp:prior:           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1134
               #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1135
               #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1136
              ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1137
            includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1138
                sourceChunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1139
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1140
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1141
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1142
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1143
    ^ sourceChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1144
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1145
    "Created: / 5.9.1996 / 17:11:32 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1146
    "Modified: / 13.2.2000 / 15:05:45 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1147
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1148
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1149
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1150
    "answer a stream for change"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1151
 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1152
    |aStream|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1153
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1154
    (changeNr between:1 and:changePositions size) ifFalse:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1155
    aStream := FileStream readonlyFileNamed:changeFileName.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1156
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1157
    aStream position:(changePositions at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1158
    ^ aStream
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1159
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1160
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1161
!ChangesBrowser methodsFor:'private-changeFile access'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1162
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1163
changeFileName:aFileName
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1164
    changeFileName := aFileName
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1165
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1166
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1167
checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1168
    |f info |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1169
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1170
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1171
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1172
    (info := f info) isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1173
	self newLabel:'(unaccessable)'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1174
    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1175
	(info modified) > changeFileTimestamp ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1176
	    self newLabel:'(outdated)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1177
	    autoUpdate ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1178
		self doUpdate
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1179
	    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1180
	] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1181
	    self newLabel:''
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1182
	]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1183
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1184
    Processor addTimedBlock:checkBlock afterSeconds:5.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1185
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1186
    "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
  1187
    "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
  1188
    "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
  1189
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1190
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1191
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1192
    "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
  1193
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1194
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1195
    ^ self readChangesFileInBackground:false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1196
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1197
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1198
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1199
    "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
  1200
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1201
     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
  1202
     the cols are:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1203
        1   delta (only if comparing)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1204
                '+' -> new method (w.r.t. current state)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1205
                '-' -> removed method (w.r.t. current state)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1206
                '?' -> class does not exist currently
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1207
                '=' -> change is same as current methods source
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1208
        2   class/selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1209
        3   type of change
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1210
                doit
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1211
                method
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1212
                category change
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1213
        4   timestamp
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1214
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1215
     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
  1216
     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
  1217
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1218
    |aStream maxLen i f chunkText fullChunkText askedForEditingClassSource
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1219
     excla timeStampInfo entry changeDelta changeString changeType 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1220
     line s l changeClass sawExcla category 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1221
     chunkPos sel index headerLine cls p rec clsName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1222
     myProcess myPriority myPrioRange
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1223
     done first className  text methodPos 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1224
     singleJunkOnly methodChunks singleInfo
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1225
     ownerTree ownerName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1226
     m currentText t1 t2|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1227
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1228
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1229
    askedForEditingClassSource := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1230
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1231
    maxLen := 60.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1232
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1233
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1234
    aStream :=  f readStream.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1235
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1236
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1237
    self newLabel:'updating ...'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1238
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1239
    i := f info.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1240
    changeFileSize := i size.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1241
    changeFileTimestamp := i modified.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1242
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1243
    self withReadCursorDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1244
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1245
         this is a time consuming operation (especially, if reading an
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1246
         NFS-mounted directory; therefore lower my priority ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1247
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1248
        inBackground ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1249
            myProcess := Processor activeProcess.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1250
            myPriority := myProcess priority.
2295
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1251
            myPrioRange := myProcess priorityRange.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1252
            myProcess priorityRange:(Processor userBackgroundPriority to:Processor activePriority).
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1253
"/            myProcess priority:(Processor userBackgroundPriority).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1254
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1255
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1256
        [
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1257
            changeChunks := OrderedCollection new.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1258
            changeClassNames := OrderedCollection new.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1259
            changeHeaderLines := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1260
            changePositions := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1261
            changeTimeStamps := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1262
            changeIsFollowupMethodChange := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1264
            excla := aStream class chunkSeparator.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1265
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1266
            [aStream atEnd] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1267
                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1268
                 get a chunk (separated by excla)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1269
                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1270
                aStream skipSeparators.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1271
                chunkPos := aStream position.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1272
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1273
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1274
                sawExcla := aStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1275
                chunkText := fullChunkText := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1276
                chunkText notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1277
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1278
                    (chunkText startsWith:'''---- timestamp ') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1279
                        timeStampInfo := (chunkText copyFrom:16 to:(chunkText size - 6)) withoutSpaces.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1280
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1281
                        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1282
                         only first line is saved in changeChunks ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1283
                        "
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1284
"/                        index := chunkText indexOf:(Character cr).
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1285
"/                        (index ~~ 0) ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1286
"/                            chunkText := chunkText copyTo:(index - 1).
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1287
"/
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1288
"/                            "take care for comment changes - must still be a
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1289
"/                             valid expression for classNameOfChange: to work"
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1290
"/
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1291
"/                            (chunkText endsWith:'comment:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1292
"/                                chunkText := chunkText , '...'''
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1293
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1294
"/                            (chunkText endsWith:'primitiveDefinitions:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1295
"/                                sel := 'primitiveDefinitions:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1296
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1297
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1298
"/                            (chunkText endsWith:'primitiveVariables:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1299
"/                                sel := 'primitiveVariables:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1300
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1301
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1302
"/                            (chunkText endsWith:'primitiveFunctions:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1303
"/                                sel := 'primitiveFunctions:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1304
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1305
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1306
"/                        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1307
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1308
                        changeChunks add:chunkText.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1309
                        changeClassNames add:nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1310
                        changePositions add:chunkPos.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1311
                        changeTimeStamps add:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1312
                        changeIsFollowupMethodChange add:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1313
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1314
                        headerLine := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1315
                        changeDelta := ' '.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1316
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1317
                        sawExcla ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1318
                            (chunkText startsWith:'''---- snap') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1319
                                changeType := ''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1320
                                headerLine := chunkText.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1321
                                changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1322
                                timeStampInfo := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1323
                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1324
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1325
                                headerLine := chunkText , ' (doIt)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1326
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1327
                                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1328
                                 first, assume doIt - then lets have a more detailed look ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1329
                                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1330
                                ((chunkText startsWith:'''---- file')
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1331
                                or:[(chunkText startsWith:'''---- check')]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1332
                                    changeType := ''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1333
                                    timeStampInfo := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1334
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1335
                                    changeType := '(doIt)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1336
                                ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1337
                                changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1338
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1339
                                p := Parser parseExpression:fullChunkText inNameSpace:Smalltalk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1340
                                (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1341
                                    p isMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1342
                                        sel := p selector.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1343
                                        rec := p receiver.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1344
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1345
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1346
                                    sel := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1347
                                    (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1348
                                        "/ a comment only
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1349
                                        changeType := '(comment)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1350
                                        NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1351
                                            changeType := changeType asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1352
                                            "/ changeString := changeString asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1353
                                            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1354
                                        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1355
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1356
                                        changeType := '(???)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1357
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1358
                                ].
2291
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1359
                                (sel == #comment:) ifTrue:[
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1360
                                    changeType := '(comment)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1361
                                    clsName := rec name.
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1362
                                    changeClass := (Smalltalk classNamed:clsName).
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1363
                                    changeClassNames at:changeClassNames size put:clsName.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1364
                                    NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1365
                                        changeType := changeType asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1366
                                        changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1367
                                        "/ changeString := clsName asText allItalic.
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1368
                                    ].
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1369
                                    compareChanges ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1370
                                        (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1371
                                            changeDelta := '?'
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1372
                                        ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1373
                                            (changeClass comment = (p args at:1) evaluate) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1374
                                                changeDelta := '='.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1375
                                            ]
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1376
                                        ]
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1377
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1378
                                    sel := nil.
2291
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1379
                                ].
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1380
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1381
                                (sel == #removeSelector:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1382
                                    rec isUnaryMessage ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1383
                                        cls := rec receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1384
                                        changeClass := (Smalltalk classNamed:cls) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1385
                                        cls := cls , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1386
                                    ] ifFalse:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1387
                                        cls := rec name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1388
                                        changeClass := (Smalltalk classNamed:cls)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1389
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1390
                                    sel := (p args at:1) evaluate.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1391
                                    changeClassNames at:changeClassNames size put:cls.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1392
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1393
                                    compareChanges ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1394
                                        (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1395
                                            changeDelta := '?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1396
                                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1397
                                            (changeClass implements:sel asSymbol) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1398
                                                changeDelta := '-'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1399
                                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1400
                                                changeDelta := '='.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1401
                                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1402
                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1403
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1404
                                    changeType := '(remove)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1405
                                    changeString := self contractClass:cls selector:sel to:maxLen.
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1406
                                    sel := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1407
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1408
                                (p ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1409
                                and:[p isMessage 
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1410
                                and:[rec isMessage
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1411
                                and:[rec selector == #compiledMethodAt:]]]) ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1412
                                    rec receiver isUnaryMessage ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1413
                                        cls := rec receiver receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1414
                                        changeClass := (Smalltalk classNamed:cls) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1415
                                        cls := cls , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1416
                                    ] ifFalse:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1417
                                        cls := rec receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1418
                                        changeClass := (Smalltalk classNamed:cls)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1419
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1420
                                    (sel == #category:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1421
                                        sel := (rec args at:1) evaluate.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1422
                                        changeType := '(category change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1423
                                        changeString := self contractClass:cls selector:sel to:maxLen.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1424
                                        changeClassNames at:changeClassNames size put:cls.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1425
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1426
                                    (sel == #privacy:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1427
                                        sel := (rec args at:1) evaluate.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1428
                                        changeType := '(privacy change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1429
                                        changeString := self contractClass:cls selector:sel to:maxLen.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1430
                                        changeClassNames at:changeClassNames size put:cls.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1431
                                    ].
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1432
                                    sel := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1433
                                ].
2290
59207b94df0c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
  1434
                                (Class definitionSelectors includes:sel) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1435
                                    changeType := '(class definition)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1436
                                    clsName := (p args at:1) evaluate.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1437
                                    changeClassNames at:changeClassNames size put:clsName.
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1438
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1439
                                    "/ is it a private-class ?
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1440
                                    ('*privateIn:' match:sel) ifTrue:[
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1441
                                        ownerTree := p args last.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1442
                                        ownerName := ownerTree name asString.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1443
                                        clsName := ownerName , '::' , clsName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1444
                                    ].
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1445
                                
2290
59207b94df0c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
  1446
                                    changeString := clsName.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1447
                                    NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1448
                                        changeType := changeType asText allBold.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1449
                                        changeString := changeString asText allBold.
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1450
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1451
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1452
                                    compareChanges ifTrue:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1453
                                        cls := Smalltalk at:clsName ifAbsent:nil.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1454
                                        cls isNil ifTrue:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1455
                                            changeDelta := '+'.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1456
                                        ] ifFalse:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1457
                                            changeDelta := '?'.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1458
                                        ]
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1459
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1460
                                    sel := nil.
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1461
                                ] ifFalse:[
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1462
                                    (#(
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1463
                                      #'primitiveDefinitions:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1464
                                      #'primitiveFunctions:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1465
                                      #'primitiveVariables:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1466
                                     ) includes:sel) ifTrue:[
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1467
                                        changeType := '(class definition)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1468
                                        clsName := rec evaluate.
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1469
                                    ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1470
                                ].
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1471
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1472
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1473
                        ] ifTrue:[ "sawExcla"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1474
                            singleJunkOnly := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1475
                            methodChunks := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1476
                            singleInfo := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1477
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1478
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1479
                             method definitions actually consist of
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1480
                             two (or more) chunks; skip next chunk(s)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1481
                             up to an empty one.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1482
                             The system only writes one chunk,
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1483
                             and we cannot handle more in this ChangesBrowser ....
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1484
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1485
                            className := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1486
                            p := Parser parseExpression:chunkText inNameSpace:Smalltalk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1487
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1488
                            (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1489
                                sel := p selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1490
                                (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1491
                                   #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1492
                                   #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1493
                                   #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1494
                                   #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1495
                                   #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1496
                                   #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1497
                                   #'commentStamp:prior:'         "/ Squeak support
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1498
                                   #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1499
                                   #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1500
                                  ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1501
                                includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1502
                                    methodChunks := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1503
                                    p receiver isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1504
                                        className := p receiver receiver name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1505
                                        changeClass := (Smalltalk classNamed:className) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1506
                                        className := className , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1507
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1508
                                        className := p receiver name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1509
                                        changeClass := Smalltalk classNamed:className
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1510
                                    ].
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1511
                                    (sel == #'methodsFor') ifTrue:[
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1512
                                        category := 'Dolphin methods'.
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1513
                                    ] ifFalse:[
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1514
                                        (sel == #methods) ifTrue:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1515
                                            category := 'STV methods'.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1516
                                        ] ifFalse:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1517
                                            category := (p args at:1) evaluate.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1518
                                        ]
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1519
                                    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1520
                                    sel == #'methodsFor:stamp:' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1521
                                        "/ Squeak timeStamp
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1522
                                        timeStampInfo := (p args at:2) evaluate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1523
                                        singleInfo := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1524
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1525
                                        sel == #'commentStamp:prior:' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1526
                                            singleJunkOnly := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1527
                                            methodChunks := false.
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1528
                                        ]
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1529
                                    ]
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1530
                                ] ifFalse:[
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1531
                                    sel == #reorganize ifTrue:[
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1532
                                        singleJunkOnly := true.
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1533
                                        methodChunks := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1534
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1535
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1536
                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1537
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1538
                            done := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1539
                            first := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1540
                            [done] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1541
                                changeDelta := ' '.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1542
                                methodPos := aStream position.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1543
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1544
                                text := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1545
                                text isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1546
                                    done := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1547
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1548
                                    done := text isEmpty
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1549
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1550
                                done ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1551
                                    first ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1552
                                        changeChunks add:chunkText.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1553
                                        changeClassNames add:className.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1554
                                        changePositions add:methodPos.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1555
                                        changeTimeStamps add:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1556
                                        changeIsFollowupMethodChange add:true.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1557
                                        askedForEditingClassSource ifFalse:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1558
                                            (changeFileName asFilename hasSuffix:'.st') ifFalse:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1559
                                                editingClassSource :=  (self confirm:'Multiple method chunks without individual ''methodsFor:'' encountered.
2635
4ac62d4f2346 care for malformed changes file and ask
Claus Gittinger <cg@exept.de>
parents: 2606
diff changeset
  1560
Is this a class-file being browsed ?')
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1561
                                            ] ifTrue:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1562
                                                editingClassSource := true.
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1563
                                            ].
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1564
                                            askedForEditingClassSource := true.
2635
4ac62d4f2346 care for malformed changes file and ask
Claus Gittinger <cg@exept.de>
parents: 2606
diff changeset
  1565
                                        ]
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1566
                                    ] ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1567
                                        changeClassNames at:changeClassNames size put:className.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1568
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1569
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1570
                                    first := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1571
                                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1572
                                     try to find the selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1573
                                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1574
                                    sel := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1575
                                    className notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1576
                                        methodChunks ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1577
                                            p := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1578
                                                     parseMethodSpecification:text
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1579
                                                     in:nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1580
                                                     ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1581
                                                     ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1582
                                            (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1583
                                                sel := p selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1584
                                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1585
                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1586
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1587
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1588
                                    sel isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1589
                                        changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1590
                                        changeType := '(change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1591
                                        headerLine := chunkText , ' (change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1592
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1593
                                        changeString :=  self contractClass:className selector:sel to:maxLen.
2319
fd83f279ef24 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2301
diff changeset
  1594
                                        changeType := '{ ' , category , ' }'.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1595
                                        headerLine := className , ' ' , sel , ' ' , '(change category: ''' , category , ''')'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1596
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1597
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1598
                                    compareChanges ifTrue:[ 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1599
                                        changeClass isNil ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1600
                                            changeClass isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1601
                                                cls := changeClass soleInstance
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1602
                                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1603
                                                cls := changeClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1604
                                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1605
                                        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1606
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1607
                                        (changeClass isNil or:[sel isNil or:[cls isLoaded not]]) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1608
                                            changeDelta := '?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1609
                                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1610
                                            (changeClass implements:sel asSymbol) ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1611
                                                changeDelta := '+'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1612
                                            ] ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1613
                                                m := changeClass compiledMethodAt:sel asSymbol.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1614
                                                currentText := m source.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1615
                                                currentText notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1616
                                                    text asString = currentText asString ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1617
                                                        changeDelta := '='
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1618
                                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1619
                                                        t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1620
                                                        t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1621
                                                        t1 = t2 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1622
                                                            changeDelta := '='
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1623
                                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1624
                                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1625
                                                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1626
                                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1627
                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1628
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1629
                                    entry := MultiColListEntry new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1630
                                    entry tabulatorSpecification:tabSpec.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1631
                                    entry colAt:1 put:changeDelta.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1632
                                    entry colAt:2 put:changeString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1633
                                    entry colAt:3 put:changeType.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1634
                                    timeStampInfo notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1635
                                        entry colAt:4 put:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1636
                                    ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1637
                                    changeHeaderLines add:entry
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1638
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1639
                                changeString := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1640
                                headerLine := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1641
                                singleJunkOnly ifTrue:[done := true]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1642
                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1643
                            singleInfo ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1644
                                timeStampInfo := nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1645
                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1646
                        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1647
                        changeString notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1648
                            entry := MultiColListEntry new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1649
                            entry tabulatorSpecification:tabSpec.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1650
                            entry colAt:1 put:changeDelta.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1651
                            entry colAt:2 put:changeString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1652
                            entry colAt:3 put:changeType.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1653
                            timeStampInfo notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1654
                                entry colAt:4 put:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1655
                            ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1656
                            changeHeaderLines add:entry
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1657
                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1658
                            headerLine notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1659
                                changeHeaderLines add:headerLine
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1660
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1661
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1662
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1663
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1664
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1665
            anyChanges := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1666
        ] valueNowOrOnUnwindDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1667
            aStream close.
2295
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1668
            inBackground ifTrue:[
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1669
                myProcess priority:myPriority.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1670
                myProcess priorityRange:myPrioRange.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1671
            ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1672
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1673
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1674
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1675
    self checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1676
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1677
    "Modified: / 27.8.1995 / 23:06:55 / claus"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1678
    "Modified: / 13.2.2000 / 15:02:11 / cg"
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1679
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1680
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1681
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1682
    "write back the changes file. To avoid problems when the disk is full
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1683
     or a crash occurs while writing (well, or someone kills us), 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1684
     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
  1685
     rename the old change-file to a .bak file and finally rename the
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1686
     tempfile back to the change-file. 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1687
     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
  1688
     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
  1689
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1690
    |inStream outStream tempfile stamp f|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1691
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1692
    editingClassSource ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1693
        (self confirm:'You are editing a classes sourceFile (not a changeFile) !!\\Are you certain, you want to overwrite it ?' withCRs)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1694
        ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1695
            ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1696
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1697
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1698
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1699
    tempfile := Filename newTemporaryIn:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1700
    tempfile exists ifTrue:[tempfile remove].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1701
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1702
    outStream := tempfile writeStream.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1703
    outStream isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1704
        self warn:'cannot create temporary file in current directory.'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1705
        ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1706
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1707
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1708
    inStream := FileStream readonlyFileNamed:changeFileName.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1709
    inStream isNil ifTrue:[^ false].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1710
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1711
    self withCursor:(Cursor write) do:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1712
        |excla sawExcla done first chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1713
         nChanges "{Class:SmallInteger}" |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1714
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1715
        Stream writeErrorSignal handle:[:ex |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1716
            self warn:('could not update the changes file.\\' , ex errorString) withCRs.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1717
            tempfile exists ifTrue:[tempfile remove].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1718
            ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1719
        ] do:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1720
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1721
            excla := inStream class chunkSeparator.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1722
            nChanges := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1723
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1724
            1 to:nChanges do:[:index |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1725
                inStream position:(changePositions at:index).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1726
                sawExcla := inStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1727
                chunk := inStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1728
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1729
                (chunk notNil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1730
                and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1731
                    (stamp := changeTimeStamps at:index) notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1732
                        outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1733
                        outStream nextPut:excla; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1734
                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1735
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1736
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1737
                sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1738
                    outStream nextPut:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1739
                    outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1740
                    outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1741
                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1742
                     a method-definition chunk - output followups
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1743
                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1744
                    done := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1745
                    first := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1746
                    [done] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1747
                        chunk := inStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1748
                        chunk isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1749
                            outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1750
                            done := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1751
                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1752
                            chunk isEmpty ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1753
                                outStream space; nextChunkPut:chunk; cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1754
                                done := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1755
                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1756
                                first ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1757
                                    outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1758
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1759
                                outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1760
                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1761
                        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1762
                        first := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1763
                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1764
                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1765
                    outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1766
                    outStream cr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1767
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1768
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1769
            outStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1770
            inStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1771
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1772
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1773
        f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1774
        f renameTo:(f withSuffix:'bak').
2466
66842be773bd care for cross-device rename
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  1775
        tempfile renameOrCopyTo:changeFileName.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1776
        anyChanges := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1777
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1778
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1779
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1780
    "Modified: / 2.12.1996 / 22:29:15 / stefan"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1781
    "Modified: / 21.4.1998 / 17:50:11 / cg"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1782
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1783
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1784
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1785
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1786
appendChange:changeNr toFile:fileName
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1787
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1788
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1789
    |aStream outStream chunk chunk2 sawExcla separator|
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1790
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1791
    aStream := self streamForChange:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1792
    aStream isNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1793
        self warn:'oops - cannot read change'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1794
        ^ false
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1795
    ].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1796
    aStream skipSeparators.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1797
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1798
    separator := aStream class chunkSeparator.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1799
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1800
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1801
        sawExcla := true.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1802
        chunk := changeChunks at:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1803
        chunk withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1804
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1805
        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1806
    ] ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1807
        sawExcla := aStream peekFor:separator.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1808
        chunk := aStream nextChunk.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1809
        chunk withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1810
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1811
        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1812
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1813
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1814
    outStream := FileStream oldFileNamed:fileName.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1815
    outStream isNil ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1816
        outStream isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1817
            outStream := FileStream newFileNamed:fileName.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1818
            outStream isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1819
                self warn:'cannot update file ''%1''' with:fileName.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1820
                ^ false
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1821
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1822
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1823
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1824
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1825
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1826
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1827
    sawExcla ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1828
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1829
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1830
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1831
    sawExcla ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1832
        chunk2 := aStream nextChunk.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1833
        chunk2 withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1834
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1835
        ].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1836
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1837
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1838
    sawExcla ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1839
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1840
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1841
    outStream cr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1842
    aStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1843
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1844
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1845
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1846
    "Modified: / 6.2.1998 / 13:03:54 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1847
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1848
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1849
applyChange:changeNr
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1850
    "fileIn a change"
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1851
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1852
    |aStream nm applyAction nameSpace|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1853
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1854
    aStream := self streamForChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1855
    aStream isNil ifTrue:[^ self].
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1856
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1857
    nm := self classNameOfChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1858
    nm notNil ifTrue:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1859
        |cls|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1860
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1861
        cls := Smalltalk at:(nm asSymbol) ifAbsent:[].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1862
        cls notNil ifTrue:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1863
            cls isLoaded ifFalse:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1864
                cls autoload
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1865
            ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1866
        ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1867
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1868
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1869
    changeNrProcessed := changeNr.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1870
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1871
    applyAction := [
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1872
        |sig|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1873
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1874
        (skipSignal notNil) ifTrue:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1875
            sig := skipSignal
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1876
        ] ifFalse:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1877
            sig := Object abortSignal
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1878
        ].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1879
        sig catch:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1880
            |reader doItChunk methodsForChunk|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1881
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1882
            applyInOriginalNameSpace value ifFalse:[
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1883
                nameSpace := Class nameSpaceQuerySignal query.    
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1884
            ] ifTrue:[
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1885
                nameSpace := Smalltalk.
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1886
            ].
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1887
            Class nameSpaceQuerySignal answer:nameSpace
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1888
            do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1889
                "/ a followup methodsFor: chunk ...
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1890
                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1891
                    methodsForChunk := (changeChunks at:changeNr).
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1892
                ] ifFalse:[
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1893
                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1894
                    doItChunk notEmpty ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1895
                        Compiler evaluate:doItChunk notifying:self.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1896
                    ] ifFalse:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1897
                        methodsForChunk := aStream nextChunk.   "/ the real one
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1898
                    ]
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1899
                ].
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1900
                methodsForChunk notNil ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1901
                    reader := Compiler evaluate:methodsForChunk notifying:self.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1902
                    reader fileInFrom:aStream notifying:self passChunk:false single:true.
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1903
                ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1904
            ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1905
        ].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1906
        changeNrProcessed := nil.
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1907
    ].
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1908
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1909
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1910
    "/ if I am showing the changes file, dont update it
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1911
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1912
    changeFileName = ObjectMemory nameForChanges ifTrue:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1913
        Class withoutUpdatingChangesDo:applyAction
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1914
    ] ifFalse:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1915
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1916
    ].
132
claus
parents: 126
diff changeset
  1917
    aStream close
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1918
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  1919
    "Modified: / 7.2.1998 / 19:56:34 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1920
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1921
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1922
compareChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1923
    "compare a change with current version"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1924
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1925
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
742
2ef5e22d8983 code cleanup (unused vars eliminated)
Claus Gittinger <cg@exept.de>
parents: 724
diff changeset
  1926
     parser sel oldMethod outcome showDiff d t1 t2 selector isLoaded
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1927
     method beep superClass thisClassSym|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1928
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1929
    aStream := self streamForChange:changeNr.
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1930
    aStream isNil ifTrue:[^ self].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1931
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1932
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1933
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1934
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1935
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1936
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1937
    ] ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1938
        chunk := (changeChunks at:changeNr).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1939
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1940
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1941
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  1942
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1943
    sawExcla ifFalse:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1944
        outcome := 'cannot compare this change\\(i.e. this is not a method change).'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1945
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1946
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1947
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1948
            parseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1949
        ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1950
        (parseTree notNil and:[parseTree isMessage]) ifTrue:[
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1951
            selector := parseTree selector.
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1952
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1953
            selector == #'removeSelector:' ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1954
                thisClass := (parseTree receiver evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1955
                thisClass isBehavior ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1956
                    (self checkClassIsLoaded:thisClass) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1957
                        selector := (parseTree arg1 evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1958
                        (thisClass includesSelector:selector) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1959
                            outcome := 'change removes the #' , selector , ' method from ' , thisClass name.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1960
                        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1961
                            outcome := 'change has no effect\\(there is no method for #' , selector , ' in ' , thisClass name , ')'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1962
                        ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1963
                    ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1964
                        beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1965
                        outcome := 'cannot compare this change (compare requires class to be loaded).'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1966
                    ]
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1967
                ] ifFalse:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1968
                    outcome := 'cannot compare this change (class not present)'
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1969
                ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1970
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1971
            selector == #'category:' ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1972
                parseTree receiver isMessage ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1973
                    parseTree receiver selector == #compiledMethodAt: ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1974
                        (method := parseTree receiver evaluate) isMethod ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1975
                            method category = parseTree arg1 evaluate ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1976
                                outcome := 'change has no effect\\(same category)'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1977
                            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1978
                                outcome := 'category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1979
                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1980
                        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1981
                            beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1982
                            outcome := 'there is no such method'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1983
                        ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1984
                    ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1985
                ]
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  1986
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1987
            selector == #'comment:' ifTrue:[
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1988
                thisClass := (parseTree receiver evaluate).
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1989
                thisClass isBehavior ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1990
                    (self checkClassIsLoaded:thisClass) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1991
                        (thisClass comment = parseTree arg1 evaluate) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1992
                            outcome := 'change has no effect\\(same comment)'.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1993
                        ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1994
                            outcome := 'comment is different'
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1995
                        ]
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1996
                    ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1997
                        beep := true.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1998
                        outcome := 'cannot compare this change (compare requires class to be loaded).'.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1999
                    ]
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  2000
                ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  2001
                    outcome := 'cannot compare this change (class not present)'
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  2002
                ].
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  2003
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2004
            selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:' ifTrue:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2005
                superClass := (parseTree receiver evaluate).
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2006
                superClass isBehavior ifTrue:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2007
                    (self checkClassIsLoaded:superClass) ifTrue:[
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2008
                        thisClassSym := (parseTree arguments at:1) evaluate.
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2009
                        thisClass := Smalltalk at:thisClassSym ifAbsent:nil.
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2010
                        thisClass notNil ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2011
                            thisClass instanceVariableString = (parseTree arguments at:2) evaluate ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2012
                                thisClass classVariableString = (parseTree arguments at:3) evaluate ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2013
                                    ((thisClass sharedPools size == 0) and:[(parseTree arguments at:4) evaluate = '']) ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2014
                                        thisClass category = (parseTree arguments at:5) evaluate ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2015
                                            outcome := 'change has no effect\\(same definition)'.
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2016
                                        ] ifFalse:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2017
                                            outcome := 'category is different'
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2018
                                        ]
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2019
                                    ] ifFalse:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2020
                                        outcome := 'sharedPool definition is different'
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2021
                                    ].
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2022
                                ] ifFalse:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2023
                                    outcome := 'classVariable definition is different'
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2024
                                ]
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2025
                            ] ifFalse:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2026
                                outcome := 'instanceVariable definition is different'
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2027
                            ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2028
                        ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2029
                    ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2030
                ]
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2031
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2032
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2033
    ] ifTrue:[
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2034
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2035
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2036
            parseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2037
        ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2038
        (parseTree notNil 
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2039
         and:[parseTree ~~ #Error
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2040
         and:[parseTree isMessage]]) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2041
            "/ Squeak support (#methodsFor:***)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2042
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2043
               #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2044
               #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2045
               #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2046
               #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2047
               #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2048
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2049
               #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2050
               #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2051
               #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2052
              ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2053
            includes:parseTree selector) ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2054
                thisClass := (parseTree receiver evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2055
                thisClass isBehavior ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2056
                    (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2057
                        outcome := 'cannot compare this change\\(compare requires class to be loaded).'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2058
                    ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2059
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2060
                    parseTree selector == #methodsFor ifTrue:[
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2061
                        cat := 'Dolphin methods'.
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2062
                    ] ifFalse:[
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2063
                        parseTree selector == #methods ifTrue:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2064
                            cat := 'STV methods'.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2065
                        ] ifFalse:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2066
                            cat := parseTree arg1 evaluate.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2067
                        ].
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2068
                    ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2069
                    newSource := aStream nextChunk.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2070
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2071
                    Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2072
                    do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2073
                        parser := Parser parseMethod:newSource in:thisClass.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2074
                    ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2075
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2076
                        sel := parser selector.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2077
                        oldMethod := thisClass compiledMethodAt:sel.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2078
                        oldMethod notNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2079
                            (oldMethod category = cat) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2080
                                Transcript showCR:'category changed.'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2081
                            ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2082
                            oldSource := oldMethod source.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2083
                            (oldSource = newSource) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2084
                                outcome := 'same source'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2085
                            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2086
                                oldSource isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2087
                                    beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2088
                                    outcome := 'no source for compare.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2089
                                ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2090
                                    "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2091
                                    "/ compare for tabulator <-> space changes
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2092
                                    "/ before showing diff ...
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2093
                                    "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2094
                                    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2095
                                    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2096
                                    t1 = t2 ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2097
                                        outcome := 'same source'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2098
                                    ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2099
                                        outcome := 'source changed.'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2100
                                        showDiff := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2101
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2102
                                        "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2103
                                        "/ check if only historyLine diffs
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2104
                                        "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2105
                                        (HistoryManager notNil 
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2106
                                        and:[HistoryManager isActive]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2107
                                            (HistoryManager withoutHistoryLines:newSource)
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2108
                                            =
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2109
                                            (HistoryManager withoutHistoryLines:oldSource)
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2110
                                            ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2111
                                                outcome := 'same source (history only)'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2112
                                                showDiff := false.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2113
                                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2114
                                        ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2115
                                    ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2116
                                ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2117
                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2118
                        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2119
                            isLoaded ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2120
                                beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2121
                                outcome := 'method does not exist.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2122
                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2123
                        ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2124
                    ] ifFalse:[
2267
27ad170baa22 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2266
diff changeset
  2125
                        outcome := 'change unparsable (parse error).'
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2126
                    ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2127
                    (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2128
                        d := DiffTextView 
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2129
                                openOn:oldSource label:(resources string:'current version (in image)')
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2130
                                and:newSource label:(resources string:'change version').
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2131
                        d label:'method differences'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2132
                    ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2133
                ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2134
                    beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2135
                    outcome := 'class does not exist.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2136
                ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2137
            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2138
                beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2139
                outcome := 'not comparable.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2140
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2141
        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2142
            beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2143
            outcome := 'not comparable.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2144
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2145
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2146
    aStream close.
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2147
    showDiff ifFalse:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2148
        outcome := (resources string:outcome) withCRs.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2149
        beep ifTrue:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2150
            self warn:outcome.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2151
        ] ifFalse:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2152
            self information:outcome.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2153
        ]
553
b67caadfe334 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 548
diff changeset
  2154
"/        Transcript showCR:outcome.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2155
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2156
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2157
    "Created: / 24.11.1995 / 14:30:46 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2158
    "Modified: / 13.2.2000 / 15:04:39 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2159
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2160
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2161
compressForClass:aClassNameOrNil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2162
    "compress the change-set; 
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2163
     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
  2164
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2165
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2166
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2167
    |aStream searchIndex anyMore deleteSet index  
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2168
     str snapshotProto snapshotPrefix snapshotNameIndex fileName|
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2169
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2170
    aStream := FileStream readonlyFileNamed:changeFileName.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2171
    aStream isNil ifTrue:[^ self].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2172
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2173
    aClassNameOrNil isNil ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2174
        self newLabel:'compressing ...'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2175
    ] ifFalse:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2176
        self newLabel:'compressing for ' , aClassNameOrNil.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2177
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2178
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2179
    CompressSnapshotInfo == true ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2180
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2181
         get a prototype snapshot record (to be independent of
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2182
         the actual format ..
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2183
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2184
        str := WriteStream on:String new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2185
        Class addChangeRecordForSnapshot:'foo' to:str.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2186
        snapshotProto := str contents.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2187
        snapshotPrefix := snapshotProto copyTo:10.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2188
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2189
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2190
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2191
    self withExecuteCursorDo:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2192
        |numChanges classes selectors types excla sawExcla
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2193
         changeNr chunk aParseTree parseTreeChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2194
         thisClass thisSelector codeChunk codeParser
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2195
         compressThis|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2196
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2197
        numChanges := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2198
        classes := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2199
        selectors := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2200
        types := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2201
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2202
        "starting at the end, get the change class and change selector;
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2203
         collect all in classes / selectors"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2204
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2205
        changeNr := numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2206
        excla := aStream class chunkSeparator.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2207
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2208
        [changeNr >= 1] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2209
            aStream position:(changePositions at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2210
            sawExcla := aStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2211
            chunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2212
            sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2213
                "optimize a bit if multiple methods for same category arrive"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2214
                (chunk = parseTreeChunk) ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2215
                    aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2216
                    parseTreeChunk := chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2217
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2218
                (aParseTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2219
                and:[(aParseTree ~~ #Error) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2220
                and:[aParseTree isMessage]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2221
                    (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2222
                       #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2223
                       #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2224
                       #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2225
                       #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2226
                       #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2227
                       #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2228
                       #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2229
                       #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2230
                      ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2231
                    includes:aParseTree selector) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2232
                        thisClass := (aParseTree receiver evaluate).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2233
                        codeChunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2234
                        codeParser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2235
                                          parseMethodSpecification:codeChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2236
                                          in:thisClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2237
                                          ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2238
                                          ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2239
                        (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2240
                            selectors at:changeNr put:(codeParser selector).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2241
                            classes at:changeNr put:thisClass.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2242
                            types at:changeNr put:#methodsFor
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2243
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2244
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2245
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2246
            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2247
                aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2248
                parseTreeChunk := chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2249
                (aParseTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2250
                and:[(aParseTree ~~ #Error) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2251
                and:[aParseTree isMessage]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2252
                    (aParseTree selector == #removeSelector:) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2253
                        selectors at:changeNr put:(aParseTree arg1 value ).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2254
                        classes at:changeNr put:(aParseTree receiver evaluate).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2255
                        types at:changeNr put:#removeSelector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2256
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2257
                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2258
                    CompressSnapshotInfo == true ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2259
                        (chunk startsWith:snapshotPrefix) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2260
                            str := chunk readStream position:snapshotNameIndex.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2261
                            fileName := str upTo:(Character space).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2262
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2263
                             kludge to allow use of match-check below
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2264
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2265
                            selectors at:changeNr put:snapshotPrefix.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2266
                            classes at:changeNr put:fileName.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2267
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2268
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2269
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2270
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2271
            changeNr := changeNr - 1
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2272
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2273
        aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2274
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2275
        "for all changes, look for another class/selector occurence later
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2276
         in the list and, if there is one, add change number to the delete set"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2277
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2278
        deleteSet := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2279
        changeNr := 1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2280
        [changeNr < self numberOfChanges] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2281
            thisClass := classes at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2282
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2283
            compressThis := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2284
            aClassNameOrNil isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2285
                compressThis := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2286
            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2287
                "/ skipping unloaded/unknown classes
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2288
                thisClass isBehavior ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2289
                    thisClass isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2290
                        compressThis := aClassNameOrNil = thisClass soleInstance name. 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2291
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2292
                        compressThis := aClassNameOrNil = thisClass name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2293
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2294
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2295
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2296
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2297
            compressThis ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2298
                thisSelector := selectors at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2299
                searchIndex := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2300
                anyMore := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2301
                [anyMore] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2302
                    searchIndex := classes indexOf:thisClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2303
                                        startingAt:(searchIndex + 1).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2304
                    (searchIndex ~~ 0) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2305
                        ((selectors at:searchIndex) == thisSelector) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2306
                            thisClass notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2307
                                deleteSet add:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2308
                                anyMore := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2309
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2310
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2311
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2312
                        anyMore := false      
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2313
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2314
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2315
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2316
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2317
            changeNr := changeNr + 1
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2318
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2319
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2320
        "finally delete what has been found"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2321
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2322
        (deleteSet size > 0) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2323
            changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2324
            index := deleteSet size.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2325
            [index > 0] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2326
                self silentDeleteChange:(deleteSet at:index).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2327
                index := index - 1
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2328
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2329
            self setChangeList.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2330
            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2331
             scroll back a bit, if we are left way behind the list
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2332
            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2333
            changeListView firstLineShown > self numberOfChanges ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2334
                changeListView makeLineVisible:self numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2335
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2336
            self clearCodeView
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2337
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2338
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2339
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2340
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2341
    "Created: / 29.10.1997 / 01:02:44 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2342
    "Modified: / 13.2.2000 / 15:05:07 / cg"
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2343
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2344
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2345
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2346
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2347
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2348
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2349
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2350
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2351
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2352
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2353
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2354
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2355
    stop to:start by:-1 do:[:changeNr |
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2356
        self silentDeleteInternalChange:changeNr.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2357
        changeListView removeIndex:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2358
    ].
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2359
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2360
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2361
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2362
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2363
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2364
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2365
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2366
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2367
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2368
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2369
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2370
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2371
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2372
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2373
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2374
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2375
    "rewrite the source file where change changeNr lies"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2376
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2377
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2378
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2379
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2380
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2381
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2382
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2383
    anyChanges := true.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2384
    changeChunks removeIndex:changeNr.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2385
    changePositions removeIndex:changeNr.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2386
    changeClassNames removeIndex:changeNr.
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2387
    changeHeaderLines removeIndex:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2388
    changeTimeStamps removeIndex:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2389
    changeIsFollowupMethodChange removeIndex:changeNr.
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2390
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2391
    "Modified: 18.11.1995 / 17:08:44 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2392
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2393
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2394
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
  2395
    "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
  2396
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2397
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2398
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2399
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2400
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2401
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2402
    [index >= start] whileTrue:[
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2403
        thisClassName := self classNameOfChange:index.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2404
        thisClassName = aClassName ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2405
            self silentDeleteChange:index.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2406
            numDeleted := numDeleted + 1.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2407
        ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2408
        index := index - 1
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2409
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2410
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2411
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2412
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2413
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2414
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2415
    "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
  2416
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2417
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2418
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2419
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2420
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2421
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2422
    [index >= start] whileTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2423
        thisClassName := self ownerClassNameOfChange:index.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2424
        thisClassName = aClassName ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2425
            self silentDeleteChange:index.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2426
            numDeleted := numDeleted + 1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2427
        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2428
        index := index - 1
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2429
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2430
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2431
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2432
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2433
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2434
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2435
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2436
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2437
    anyChanges := true.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2438
    changeChunks removeIndex:changeNr.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2439
    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2440
    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2441
    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2442
    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2443
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2444
    "Created: / 7.3.1997 / 16:28:32 / cg"
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2445
    "Modified: / 7.2.1998 / 19:59:11 / cg"
1496
978b3c3565c9 #silentDeleteInternalChange: copy-paste error
Stefan Vogel <sv@exept.de>
parents: 1473
diff changeset
  2446
    "Modified: / 26.2.1998 / 18:20:48 / stefan"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2447
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2448
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2449
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2450
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2451
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2452
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2453
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2454
    |action again|
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2455
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2456
    anyChanges ifTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2457
        again := true.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2458
        [again] whileTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2459
            action := OptionBox 
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  2460
                              request:(resources at:'the modified changelist has not been written back to the change file.\\Write change file before closing ?') withCRs
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2461
                              label:'ChangesBrowser'
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2462
                              form:(WarningBox iconBitmap)
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  2463
                              buttonLabels:(resources array:#('cancel' 'don''t write' 'write'))
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2464
                              values:#(#abort #ignore #save)
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2465
                              default:#save.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2466
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2467
            again := false.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2468
            action == #abort ifTrue:[^ self].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2469
            action  == #save ifTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2470
                again := self writeBackChanges not
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2471
            ].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2472
        ]
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2473
    ].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2474
    super closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2475
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2476
    "Modified: / 31.7.1997 / 18:29:06 / cg"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2477
    "Created: / 3.8.1998 / 19:54:13 / cg"
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  2478
    "Modified: / 24.8.1999 / 09:45:04 / stefan"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2479
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2480
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2481
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2482
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2483
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2484
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  2485
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2486
    anyChanges ifTrue:[
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2487
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2488
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2489
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2490
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2491
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2492
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2493
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2494
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2495
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2496
autoUpdate:aBoolean
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2497
    autoUpdate := aBoolean
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2498
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2499
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2500
    "Modified: 3.12.1995 / 14:20:45 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2501
!
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2502
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2503
changeSelection:lineNr
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2504
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2505
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2506
    |aStream sawExcla chunk|
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2507
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2508
    lineNr isNil ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2509
        codeView contents:nil.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2510
        codeView initializeDoITAction.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2511
        ^ self
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2512
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2513
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2514
    aStream := self streamForChange:lineNr.
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2515
    aStream isNil ifTrue:[
2093
Claus Gittinger <cg@exept.de>
parents: 2078
diff changeset
  2516
        codeView initializeDoITAction.
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2517
        ^ self
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2518
    ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2519
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2520
    chunk := aStream nextChunk.
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2521
    sawExcla ifTrue:[
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2522
        chunk := aStream nextChunk
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2523
    ].
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2524
    aStream close.
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2525
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  2526
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2527
    codeView doItAction:[:theCode |
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2528
        |clsName cls|
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2529
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2530
        clsName := self classNameOfChange:lineNr.
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2531
        cls := Smalltalk at:clsName ifAbsent:nil.
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2532
        Compiler 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2533
            evaluate:theCode 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2534
            in:nil 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2535
            receiver:cls 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2536
            notifying:self 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2537
            logged:true 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2538
            ifFail:nil 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2539
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  2540
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2541
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2542
    "Modified: / 28.2.1999 / 15:26:46 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2543
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2544
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2545
doApply
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2546
    "user wants a change to be applied"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2547
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2548
    self withSelectedChangeDo:[:changeNr |
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2549
	skipSignal := nil.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2550
	self applyChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2551
	self autoSelect:(changeNr + 1)
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2552
    ]
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2553
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2554
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2555
doApplyAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2556
    "user wants all changes to be applied"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2557
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2558
    self withExecuteCursorDo:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2559
	|lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2560
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2561
	self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2562
	skipSignal isNil ifTrue:[skipSignal := Signal new].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2563
	lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2564
	1 to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2565
	    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2566
	    self applyChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2567
	].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2568
	self autoSelectLast
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2569
    ]
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2570
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2571
    "Modified: 21.1.1997 / 22:26:30 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2572
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2573
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2574
doApplyClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2575
    "user wants all changes for this class from changeNr to be applied"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2576
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2577
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2578
	|thisClassName classNameToApply lastChange
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2579
	 lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2580
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2581
	classNameToApply := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2582
	classNameToApply notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2583
	    self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2584
	    skipSignal isNil ifTrue:[skipSignal := Signal new].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2585
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2586
	    lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2587
	    changeNr to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2588
		thisClassName := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2589
		thisClassName = classNameToApply ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2590
		    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2591
		    self applyChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2592
		    lastChange := changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2593
		].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2594
	    ].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2595
	    self autoSelect:lastChange.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2596
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2597
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2598
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2599
    "Modified: 21.1.1997 / 22:26:04 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2600
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2601
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2602
doApplyRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2603
    "user wants all changes from changeNr to be applied"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  2604
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2605
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2606
	|lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2607
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2608
	self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2609
	skipSignal isNil ifTrue:[skipSignal := Signal new].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2610
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2611
	lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2612
	changeNr to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2613
	    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2614
	    self applyChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2615
	].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2616
	self autoSelect:self numberOfChanges.
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2617
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2618
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2619
    "Modified: 21.1.1997 / 22:25:29 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2620
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2621
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2622
doBrowse
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2623
    "user wants a browser on the class of a change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2624
241
9366ced0db42 doBrowse was wrong for class-methods
Claus Gittinger <cg@exept.de>
parents: 226
diff changeset
  2625
    |changeNr className cls isMeta|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2626
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2627
    changeNr := changeListView selection.
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2628
    changeNr notNil ifTrue:[
1781
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2629
        className := self fullClassNameOfChange:changeNr.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2630
        className notNil ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2631
            isMeta := false.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2632
            (className endsWith:' class') ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2633
                className := className copyWithoutLast:6.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2634
                isMeta := true.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2635
            ].
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2636
            (cls := Smalltalk classNamed:className) notNil ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2637
                isMeta ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2638
                    cls := cls class
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2639
                ].
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2686
diff changeset
  2640
                UserPreferences current systemBrowserClass 
1781
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2641
                    openInClass:cls 
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2642
                    selector:(self selectorOfMethodChange:changeNr)
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2643
            ] ifFalse:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2644
                self warn:'class not found: ''' , className , ''''.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2645
            ]
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2646
        ] ifFalse:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2647
            self warn:'could not extract classname from change'.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2648
        ]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2649
    ]
209
dc43fdd0aadf browse-menu function opens browser in selected method
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
  2650
1781
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2651
    "Created: / 24.11.1995 / 23:13:24 / cg"
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2652
    "Modified: / 31.7.1998 / 20:17:42 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2653
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2654
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2655
doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2656
    "first checkin the selected changes class then delete all changes
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2657
     for it."
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2658
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2659
    self withSelectedChangeDo:[:changeNr |
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2660
        | className class |
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2661
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2662
        className := self classNameOfChange:changeNr.
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2663
        className notNil ifTrue:[
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2664
            class := Smalltalk classNamed:className.
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2665
            class isNil ifTrue:[
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2666
                self halt.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2667
            ].
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2668
            class notNil ifTrue:[
2682
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2669
                class isPrivate ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2670
                    (self confirm:('This is a private class.\\CheckIn the owner ''%1'' and all of its private classes ?' bindWith:class owningClass name asText allBold) withCRs)
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2671
                    ifFalse:[^ self].
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2672
                    (SourceCodeManagerUtilities checkinClass:class owningClass withLog:nil)
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2673
                    ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2674
                        self doDeleteClassAndPrivateClassesAll
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2675
                    ]
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2676
                ] ifFalse:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2677
                    (SourceCodeManagerUtilities checkinClass:class withLog:nil)
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2678
                    ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2679
                        self doDeleteClassAll
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2680
                    ]
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2681
                ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2682
            ].
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2683
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2684
        ].
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2685
    ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2686
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2687
    "Modified: 6.9.1995 / 17:11:16 / claus"
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2688
!
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2689
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2690
doCompare
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2691
    "compare change with current system version
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2692
     - give a note in transcript"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2693
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2694
    |changeNr|
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2695
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2696
    changeNr := changeListView selection.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2697
    changeNr notNil ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2698
	self withExecuteCursorDo:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2699
	    self compareChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2700
	]
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2701
    ].
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2702
    self newLabel:''
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2703
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2704
    "Modified: 24.2.1996 / 19:37:19 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2705
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2706
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2707
doCompress
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2708
    "compress the change-set; this replaces multiple method-changes by the last 
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2709
     (i.e. the most recent) change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2710
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2711
    self compressForClass:nil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2712
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2713
    "Modified: / 29.10.1997 / 01:03:26 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2714
!
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2715
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2716
doCompressClass
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2717
    "compress changes for the selected class.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2718
     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
  2719
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2720
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2721
	| classNameToCompress |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2722
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2723
	classNameToCompress := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2724
	classNameToCompress notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2725
	    self compressForClass:classNameToCompress.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2726
	]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2727
    ]
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2728
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2729
    "Created: / 29.10.1997 / 01:05:16 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2730
    "Modified: / 29.10.1997 / 01:06:22 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2731
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2732
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2733
doDelete
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2734
    "delete currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2735
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2736
    |changeNr|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2737
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2738
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2739
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2740
	self deleteChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2741
	self autoSelectOrEnd:changeNr
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2742
    ]
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2743
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2744
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2745
doDeleteClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2746
    "delete all changes with same class as currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2747
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2748
    self withSelectedChangeDo:[:changeNr |
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2749
        |classNameToDelete numDeletedBefore|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2750
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2751
        classNameToDelete := self classNameOfChange:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2752
        classNameToDelete notNil ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2753
            changeListView setSelection:nil.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2754
            self silentDeleteChangesFor:classNameToDelete
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2755
                                   from:changeNr
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2756
                                     to:(self numberOfChanges).
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2757
            numDeletedBefore := self 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2758
                                   silentDeleteChangesFor:classNameToDelete
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2759
                                   from:1
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2760
                                   to:(changeNr-1).
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2761
            self setChangeList. 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2762
            self autoSelectOrEnd:(changeNr - numDeletedBefore)
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2763
        ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2764
    ]
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2765
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2766
    "Created: / 13.12.1995 / 16:07:14 / cg"
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2767
    "Modified: / 28.1.1998 / 20:42:14 / cg"
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2768
!
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2769
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2770
doDeleteClassAndPrivateClassesAll
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2771
    "delete all changes with same class and private classes
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2772
     as currently selected change"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2773
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2774
    self withSelectedChangeDo:[:changeNr |
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2775
        |classNameToDelete numDeletedBefore|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2776
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2777
        classNameToDelete := self ownerClassNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2778
        classNameToDelete notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2779
            changeListView setSelection:nil.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2780
            self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2781
                                   from:changeNr
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2782
                                     to:(self numberOfChanges).
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2783
            numDeletedBefore := self 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2784
                                   silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2785
                                   from:1
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2786
                                   to:(changeNr-1).
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2787
            self setChangeList. 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2788
            self autoSelectOrEnd:(changeNr - numDeletedBefore)
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2789
        ]
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2790
    ]
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2791
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2792
    "Created: / 13.12.1995 / 16:07:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2793
    "Modified: / 28.1.1998 / 20:42:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2794
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2795
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2796
doDeleteClassFromBeginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2797
    "delete changes with same class as currently selected change from the beginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2798
     up to the selected change.
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2799
     Useful to get rid of obsolete changes before a fileout or checkin entry."
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2800
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2801
    self withSelectedChangeDo:[:changeNr |
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2802
        |classNameToDelete prevSelection numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2803
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2804
        classNameToDelete := self classNameOfChange:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2805
        classNameToDelete notNil ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2806
            prevSelection := changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2807
            changeListView setSelection:nil.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2808
            numDeleted := self 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2809
                                silentDeleteChangesFor:classNameToDelete 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2810
                                from:1 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2811
                                to:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2812
            self setChangeList.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2813
            self autoSelectOrEnd:(changeNr + 1 - numDeleted)
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2814
        ]
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2815
    ].
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2816
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2817
    "Created: 13.12.1995 / 15:41:58 / cg"
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2818
    "Modified: 25.5.1996 / 12:26:34 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2819
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2820
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2821
doDeleteClassRest
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2822
    "delete rest of changes with same class as currently selected change"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2823
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2824
    self withSelectedChangeDo:[:changeNr |
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2825
        | classNameToDelete |
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2826
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2827
        classNameToDelete := self classNameOfChange:changeNr.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2828
        classNameToDelete notNil ifTrue:[
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2829
            changeListView setSelection:nil.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2830
            self silentDeleteChangesFor:classNameToDelete 
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2831
                                   from:changeNr
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2832
                                     to:(self numberOfChanges).
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2833
            self setChangeList.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2834
            self autoSelectOrEnd:changeNr
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2835
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2836
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2837
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2838
    "Modified: / 18.5.1998 / 14:25:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2839
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2840
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2841
doDeleteRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2842
    "delete all changes from current to the end"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2843
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2844
    |changeNr|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2845
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2846
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2847
    changeNr notNil ifTrue:[
223
d451e2badbd1 fixed handling of primitive def/var/function changes
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  2848
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2849
	self clearCodeView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2850
	self autoSelectOrEnd:changeNr-1
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2851
    ]
132
claus
parents: 126
diff changeset
  2852
!
claus
parents: 126
diff changeset
  2853
claus
parents: 126
diff changeset
  2854
doFileoutAndDeleteClassAll
claus
parents: 126
diff changeset
  2855
    "first fileOut the selected changes class then delete all changes
claus
parents: 126
diff changeset
  2856
     for it."
claus
parents: 126
diff changeset
  2857
claus
parents: 126
diff changeset
  2858
    self withSelectedChangeDo:[:changeNr |
claus
parents: 126
diff changeset
  2859
	| className class |
claus
parents: 126
diff changeset
  2860
claus
parents: 126
diff changeset
  2861
	className := self classNameOfChange:changeNr.
claus
parents: 126
diff changeset
  2862
	className notNil ifTrue:[
claus
parents: 126
diff changeset
  2863
	    class := Smalltalk classNamed:className.
claus
parents: 126
diff changeset
  2864
	    class notNil ifTrue:[
claus
parents: 126
diff changeset
  2865
		Class fileOutErrorSignal handle:[:ex |
claus
parents: 126
diff changeset
  2866
		    self warn:('fileout failed: ' , ex errorString).
claus
parents: 126
diff changeset
  2867
		] do:[
claus
parents: 126
diff changeset
  2868
		    class fileOut.
claus
parents: 126
diff changeset
  2869
		    self doDeleteClassAll
claus
parents: 126
diff changeset
  2870
		].
claus
parents: 126
diff changeset
  2871
	    ].
claus
parents: 126
diff changeset
  2872
claus
parents: 126
diff changeset
  2873
	].
claus
parents: 126
diff changeset
  2874
    ]
claus
parents: 126
diff changeset
  2875
claus
parents: 126
diff changeset
  2876
    "Modified: 6.9.1995 / 17:11:16 / claus"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2877
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2878
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2879
doMakePatch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2880
    "user wants a change to be made a patch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2881
     - copy it over to the patches file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2882
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2883
    |changeNr|
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2884
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2885
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2886
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2887
	self makeChangeAPatch:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2888
	self autoSelect:(changeNr + 1)
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2889
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2890
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2891
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2892
doMakePermanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2893
    "user wants a change to be made permanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2894
     - rewrite the source file where this change has to go"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2895
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2896
    |yesNoBox|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2897
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2898
    yesNoBox := YesNoBox new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2899
    yesNoBox title:(resources at:'Warning: this operation cannot be undone').
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2900
    yesNoBox okText:(resources at:'continue') noText:(resources at:'abort').
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2901
    yesNoBox okAction:[   |changeNr|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2902
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2903
			  changeNr := changeListView selection.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2904
			  changeNr notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2905
			      self makeChangePermanent:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2906
			      self autoSelect:(changeNr + 1)
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2907
			  ]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2908
		      ].
917
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2909
    yesNoBox showAtPointer.
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2910
    yesNoBox destroy
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2911
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2912
    "Modified: 7.1.1997 / 23:03:33 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2913
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2914
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2915
doSave
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2916
    "user wants a change to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2917
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2918
    |changeNr fileName|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2919
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2920
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2921
    changeNr notNil ifTrue:[
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2922
        fileName := Dialog
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2923
                        requestFileName:'append change to:'
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2924
                        default:(lastSaveFileName ? '')
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2925
                        ok:'append'
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2926
                        abort:'abort'
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2927
                        pattern:'*.chg'.
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2928
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2929
        fileName notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2930
            lastSaveFileName := fileName.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2931
            self withCursor:(Cursor write) do:[
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2932
                self appendChange:changeNr toFile:fileName.
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2933
            ].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2934
            self autoSelect:(changeNr + 1)
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2935
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2936
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2937
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2938
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2939
doSaveClass
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2940
    "user wants changes for some class from current to end to be appended to a file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2941
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2942
    self doSaveClassFrom:1
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2943
!
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2944
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2945
doSaveClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2946
    "user wants changes for some class from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2947
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2948
    self doSaveClassFrom:1
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2949
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2950
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2951
doSaveClassFrom:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2952
    "user wants changes from current to end to be appended to a file"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2953
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2954
    |changeNr classNameToSave|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2955
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2956
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2957
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2958
	classNameToSave := self classNameOfChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2959
	classNameToSave notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2960
	    self saveClass:classNameToSave from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2961
	]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2962
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2963
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2964
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2965
doSaveClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2966
    "user wants changes for some class from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2967
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2968
    |changeNr|
132
claus
parents: 126
diff changeset
  2969
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2970
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2971
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2972
	self doSaveClassFrom:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2973
    ]
81
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  2974
!
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  2975
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2976
doSaveRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2977
    "user wants changes from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2978
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2979
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2980
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2981
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2982
    changeNr notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2983
        fileName := Dialog
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2984
                        requestFileName:'append changes to:'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2985
                        default:(lastSaveFileName ? '')
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2986
                        ok:'append'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2987
                        abort:'abort'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2988
                        pattern:'*.chg'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2989
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2990
        fileName notNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2991
            lastSaveFileName := fileName.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2992
            self withCursor:(Cursor write) do:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2993
                changeNr to:(self numberOfChanges) do:[:changeNr |
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2994
                    changeListView setSelection:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2995
                    (self appendChange:changeNr toFile:fileName) ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2996
                        ^ self
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2997
                    ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2998
                ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2999
            ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3000
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3001
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3002
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3003
    "Modified: 25.5.1996 / 12:26:41 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3004
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3005
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3006
doUpdate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3007
    "reread the changes-file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3008
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3009
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3010
    realized ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3011
	self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3012
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3013
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3014
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3015
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3016
doWriteBack
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3017
    "write back the list onto the changes file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3018
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3019
    anyChanges ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3020
	(self writeBackChanges) ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3021
	    realized ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3022
		self readChangesFileInBackground:false.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3023
		realized ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3024
		    self setChangeList
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3025
		]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3026
	    ]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3027
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3028
    ]
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3029
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3030
    "Modified: 5.9.1996 / 17:19:46 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3031
!
126
claus
parents: 123
diff changeset
  3032
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3033
doubleClickOnChange:lineNr
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3034
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3035
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3036
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3037
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3038
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3039
findClass
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3040
    |nm current search|
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3041
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3042
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3043
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3044
    changeNrShown notNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3045
        current := self classNameOfChange:changeNrShown.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3046
    ].
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3047
    nm := Dialog 
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3048
            request:'class to search for:' 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3049
            initialAnswer:current
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3050
            onCancel:nil.
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3051
    nm isNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3052
        ^ self
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3053
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3054
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3055
    changeNrShown isNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3056
        search := 1.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3057
    ] ifFalse:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3058
        search := changeNrShown + 1
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3059
    ].
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3060
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3061
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3062
        |lastNr nr thisClass |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3063
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3064
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3065
        nr := search.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3066
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3067
            thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3068
            (thisClass = nm
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3069
            or:[nm includesMatchCharacters and:[nm match:thisClass]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3070
                changeListView setSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3071
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3072
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3073
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3074
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3075
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3076
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3077
    self showNotFound.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3078
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3079
    "Created: / 8.4.1997 / 11:00:16 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3080
    "Modified: / 18.4.1997 / 12:47:52 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3081
    "Modified: / 29.4.1999 / 22:41:46 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3082
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3083
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3084
findNext
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3085
    lastSearchType == #selector ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3086
        ^ self findNextForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3087
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3088
    ^ self findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3089
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3090
    "Created: / 18.6.1998 / 22:15:00 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3091
    "Modified: / 18.6.1998 / 22:15:25 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3092
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3093
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3094
findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3095
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3096
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3097
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3098
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3099
        |lastNr cls nr thisClass |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3100
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3101
        cls := self classNameOfChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3102
        cls isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3103
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3104
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3105
        nr := changeNrShown + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3106
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3107
            thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3108
            (thisClass = cls
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3109
            or:[cls includesMatchCharacters and:[cls match:thisClass]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3110
                changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3111
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3112
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3113
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3114
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3115
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3116
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3117
    self showNotFound.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3118
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3119
    "Created: / 21.1.1997 / 22:28:07 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3120
    "Modified: / 18.4.1997 / 12:48:18 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3121
    "Modified: / 29.4.1999 / 22:41:50 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3122
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3123
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3124
findNextForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3125
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3126
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3127
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3128
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3129
        |lastNr sel nr thisSelector |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3130
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3131
        sel := self selectorOfMethodChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3132
        sel isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3133
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3134
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3135
        nr := changeNrShown + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3136
        [nr <= lastNr] whileTrue:[
2078
e2b35171b846 fixed findPrevSelector / findNextSelector
tm
parents: 2044
diff changeset
  3137
            thisSelector := self selectorOfMethodChange:nr.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3138
            (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3139
            or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3140
                changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3141
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3142
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3143
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3144
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3145
        ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3146
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3147
    self showNotFound.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3148
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3149
    "Modified: / 18.4.1997 / 12:48:18 / stefan"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3150
    "Created: / 18.6.1998 / 22:17:37 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3151
    "Modified: / 29.4.1999 / 22:41:53 / cg"
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3152
!
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3153
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3154
findNextSnapshot
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3155
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3156
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3157
    self withCursor:Cursor questionMark do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3158
        |cls nr lastNr words chunk|
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3159
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3160
        Object userInterruptSignal handle:[:ex |
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3161
            self beep.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3162
            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3163
        ] do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3164
            lastNr := self numberOfChanges.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3165
            nr := changeNrShown + 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3166
            [nr <= lastNr] whileTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3167
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3168
                 get the chunk
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3169
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3170
                chunk := changeChunks at:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3171
                chunk isNil ifTrue:[^ nil].       "mhmh - empty"
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3172
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3173
                (chunk startsWith:'''---') ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3174
                    words := chunk asCollectionOfWords.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3175
                    words size > 2 ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3176
                        (words at:2) = 'snapshot' ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3177
                            changeListView setSelection:nr .
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3178
                            self changeSelection:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3179
                            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3180
                        ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3181
                    ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3182
                ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3183
                nr := nr + 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3184
            ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3185
        ]
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3186
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3187
    self showNotFound.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3188
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3189
    "Modified: / 18.4.1997 / 12:48:41 / stefan"
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3190
    "Created: / 22.8.1998 / 15:58:49 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3191
    "Modified: / 29.4.1999 / 22:41:57 / cg"
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3192
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3193
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3194
findPrevious
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3195
    lastSearchType == #selector ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3196
        ^ self findPreviousForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3197
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3198
    ^ self findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3199
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3200
    "Created: / 18.6.1998 / 22:15:15 / cg"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3201
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3202
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3203
findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3204
    lastSearchType := #class.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3205
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3206
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3207
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3208
        |cls nr thisClass |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3209
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3210
        Object userInterruptSignal handle:[:ex |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3211
            self beep.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3212
            ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3213
        ] do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3214
            cls := self classNameOfChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3215
            cls isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3216
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3217
            nr := changeNrShown - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3218
            [nr >= 1] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3219
                thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3220
                (thisClass = cls
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3221
                or:[cls includesMatchCharacters and:[cls match:thisClass]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3222
                    changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3223
                    self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3224
                    ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3225
                ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3226
                nr := nr - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3227
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3228
        ]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3229
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3230
    self showNotFound.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3231
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3232
    "Modified: / 18.4.1997 / 12:48:41 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3233
    "Modified: / 29.4.1999 / 22:42:00 / cg"
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3234
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3235
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3236
findPreviousForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3237
    lastSearchType := #selector.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3238
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3239
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3240
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3241
        |sel nr thisSelector |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3242
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3243
        Object userInterruptSignal handle:[:ex |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3244
            self beep.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3245
            ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3246
        ] do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3247
            sel := self selectorOfMethodChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3248
            sel isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3249
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3250
            nr := changeNrShown - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3251
            [nr >= 1] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3252
                thisSelector := self selectorOfMethodChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3253
                (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3254
                or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3255
                    changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3256
                    self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3257
                    ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3258
                ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3259
                nr := nr - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3260
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3261
        ]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3262
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3263
    self showNotFound.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3264
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3265
    "Modified: / 18.4.1997 / 12:48:41 / stefan"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3266
    "Created: / 18.6.1998 / 22:18:19 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3267
    "Modified: / 29.4.1999 / 22:42:06 / cg"
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3268
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3269
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3270
findPreviousSnapshot
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3271
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3272
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3273
    self withCursor:Cursor questionMark do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3274
        |cls nr words chunk|
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3275
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3276
        Object userInterruptSignal handle:[:ex |
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3277
            self beep.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3278
            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3279
        ] do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3280
            nr := changeNrShown - 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3281
            [nr >= 1] whileTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3282
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3283
                 get the chunk
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3284
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3285
                chunk := changeChunks at:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3286
                chunk isNil ifTrue:[^ nil].       "mhmh - empty"
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3287
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3288
                (chunk startsWith:'''---') ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3289
                    words := chunk asCollectionOfWords.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3290
                    words size > 2 ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3291
                        (words at:2) = 'snapshot' ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3292
                            changeListView setSelection:nr .
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3293
                            self changeSelection:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3294
                            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3295
                        ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3296
                    ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3297
                ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3298
                nr := nr - 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3299
            ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3300
        ]
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3301
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3302
    self showNotFound.
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3303
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3304
    "Modified: / 18.4.1997 / 12:48:41 / stefan"
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3305
    "Created: / 22.8.1998 / 15:57:34 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3306
    "Modified: / 29.4.1999 / 22:42:10 / cg"
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3307
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3308
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3309
findSelector
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3310
    |sel current search|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3311
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3312
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3313
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3314
    changeNrShown notNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3315
        current := self selectorOfMethodChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3316
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3317
    sel := Dialog 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3318
            request:'selector to search for:' 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3319
            initialAnswer:current
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3320
            onCancel:nil.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3321
    sel isNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3322
        ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3323
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3324
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3325
    changeNrShown isNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3326
        search := 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3327
    ] ifFalse:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3328
        search := changeNrShown + 1
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3329
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3330
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3331
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3332
        |lastNr cls nr thisSelector |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3333
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3334
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3335
        nr := search.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3336
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3337
            thisSelector := self selectorOfMethodChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3338
            (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3339
            or:[sel includesMatchCharacters and:[sel match:thisSelector]]) ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3340
                changeListView setSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3341
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3342
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3343
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3344
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3345
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3346
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3347
    self showNotFound.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3348
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3349
    "Modified: / 18.4.1997 / 12:47:52 / stefan"
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3350
    "Created: / 18.6.1998 / 22:17:04 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3351
    "Modified: / 29.4.1999 / 22:42:14 / cg"
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3352
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3353
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3354
findString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3355
    |sel searchString search|
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3356
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3357
    lastSearchType := #string.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3358
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3359
    searchString := codeView selection.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3360
    searchString := Dialog 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3361
            request:'string to search for:' 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3362
            initialAnswer:searchString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3363
            onCancel:nil.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3364
    searchString isNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3365
        ^ self
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3366
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3367
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3368
    changeNrShown isNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3369
        search := 1.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3370
    ] ifFalse:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3371
        search := changeNrShown + 1
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3372
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3373
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3374
    self withCursor:Cursor questionMark do:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3375
        |lastNr cls nr s |
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3376
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3377
        lastNr := self numberOfChanges.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3378
        nr := search.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3379
        [nr <= lastNr] whileTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3380
            s := self sourceOfMethodChange:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3381
            s notNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3382
                ((searchString includesMatchCharacters not
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3383
                            and:[(s findString:searchString) ~~ 0])
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3384
                or:[ searchString includesMatchCharacters
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3385
                            and:[s match:('*' , searchString , '*')]]) ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3386
                    changeListView setSelection:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3387
                    self changeSelection:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3388
                    codeView setSearchPattern:searchString.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3389
                    codeView 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3390
                        searchFwd:searchString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3391
                        ignoreCase:false 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3392
                        startingAtLine:1 col:0 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3393
                        ifAbsent:nil.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3394
                    ^ self
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3395
                ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3396
            ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3397
            nr := nr + 1.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3398
        ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3399
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3400
    self showNotFound.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3401
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3402
!
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3403
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3404
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3405
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  3406
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3407
    self warn:'changes are not allowed to be changed'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3408
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3409
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3410
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3411
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3412
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3413
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3414
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3415
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3416
    changeNr notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3417
        fileName := Dialog
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3418
                        requestFileName:'append changes for class to:'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3419
                        default:(lastSaveFileName ? '')
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3420
                        ok:'append'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3421
                        abort:'abort'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3422
                        pattern:'*.chg'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3423
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3424
        fileName notNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3425
            lastSaveFileName := fileName.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3426
            self withCursor:(Cursor write) do:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3427
                startNr to:(self numberOfChanges) do:[:changeNr |
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3428
                    |thisClassName|
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3429
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3430
                    thisClassName := self classNameOfChange:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3431
                    thisClassName = aClassName ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3432
                        changeListView setSelection:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3433
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3434
                            ^ self
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3435
                        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3436
                    ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3437
                ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3438
            ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3439
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3440
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3441
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3442
    "Modified: 25.5.1996 / 12:26:44 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3443
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3444
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  3445
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3446
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3447
version
2697
b4f4e431b71e browserClass from preferences
Claus Gittinger <cg@exept.de>
parents: 2686
diff changeset
  3448
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.199 2000-08-15 14:14:06 cg Exp $'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  3449
! !