ChangesBrowser.st
author tm
Mon, 24 Jul 2000 16:09:15 +0200
changeset 2683 e76575e4346f
parent 2682 3f35115e39f1
child 2686 e814876e7d61
permissions -rw-r--r--
private className extraction
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   770
    name := self fullClassNameOfChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   771
    name isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   772
    (name endsWith:' class') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   773
	^ name copyWithoutLast:6
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   774
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   775
    ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   776
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   777
    "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
   778
!
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
fullClassNameOfChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   781
    "return the full classname of a change 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   782
     (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
   783
     - 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
   784
       changeClassNames for the next query"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   785
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   786
    |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
   787
     words changeStream fullParseTree ownerTree ownerName oldDollarSetting|
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
    changeNr isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   790
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
     first look, if not already known
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   793
    "
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
   794
"/    name := changeClassNames at:changeNr.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   795
    name notNil ifTrue:[^ name].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   796
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   797
    prevMethodDefNr := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   798
    [changeIsFollowupMethodChange at:prevMethodDefNr] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   799
        prevMethodDefNr := prevMethodDefNr - 1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   800
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   801
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   802
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   803
     get the chunk
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
    chunk := changeChunks at:prevMethodDefNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   806
    chunk isNil ifTrue:[^ nil].       "mhmh - empty"
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 startsWith:'''---') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   809
        words := chunk asCollectionOfWords.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   810
        words size > 2 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   811
            (words at:2) = 'checkin' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   812
                name := words at:3.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   813
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   814
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   815
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   816
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   817
    ].
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
    "/ fix it - otherwise, it cannot be parsed
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   820
    (chunk endsWith:'primitiveDefinitions:') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   821
        chunk := chunk , ''''''
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   822
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   823
    (chunk endsWith:'primitiveFunctions:') 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:'primitiveVariables:') 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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   830
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   831
     use parser to construct a parseTree
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
    oldDollarSetting := Parser allowDollarInIdentifier.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   834
    [
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   835
        Parser allowDollarInIdentifier:true.
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   836
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   837
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   838
            aParseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
   839
        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   840
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   841
        aParseTree == #Error ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   842
            (chunk includesString:'comment') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   843
                "/ could be a comment ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   844
                aParseTree := Parser parseExpression:chunk , ''''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   845
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   846
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   847
    ] valueNowOrOnUnwindDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   848
        Parser allowDollarInIdentifier:oldDollarSetting
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   851
    (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   852
        ^ nil        "seems strange ... (could be a comment)"
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 isMessage ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   855
        ^ nil        "very strange ... (whats that ?)"
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   858
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   859
     ask parser for selector
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
    sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   862
    recTree := aParseTree receiver.
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
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   865
     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
   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
    (#(#'methodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   869
       #'privateMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   870
       #'protectedMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   871
       #'ignoredMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   872
       #'publicMethodsFor:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   873
       #'removeSelector:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   874
       #'comment:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   875
       #'primitiveDefinitions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   876
       #'primitiveFunctions:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   877
       #'primitiveVariables:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   878
       #'renameCategory:to:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   879
       #'instanceVariableNames:'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   880
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   881
       #'methodsFor:stamp:'          "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   882
       #'commentStamp:prior:'        "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   883
       #'addClassVarName:'           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
   884
       #methodsFor                   "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
   885
       #methods                      "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   886
    ) includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   887
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   888
         yes, the className is the receiver
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   889
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   890
        (recTree notNil and:[recTree ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   891
            isMeta := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   892
            recTree isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   893
                (recTree selector ~~ #class) ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   894
                "id class methodsFor:..."
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   895
                recTree := recTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   896
                isMeta := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   897
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   898
            recTree isPrimary ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   899
                name := recTree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   900
                isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   901
                    name := name , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   902
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   903
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   904
                ^ name
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
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   907
        "more strange things"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   908
        ^ nil
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   911
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   912
     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
   913
    "
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
   914
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   915
    (('subclass:*' match:sel) 
2322
f97b8cd42889 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2319
diff changeset
   916
    or:[('variable*ubclass:*' match:sel)]) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   917
        "/ 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
   918
        "/ privacy information.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   919
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   920
        changeStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   921
        changeStream notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   922
            chunk := changeStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   923
            changeStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   924
            fullParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   925
            (fullParseTree isNil or:[fullParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   926
                fullParseTree := nil
2396
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   927
            ] ifFalse:[
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   928
                fullParseTree isMessage ifFalse:[
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   929
                    fullParseTree := nil
26d6b768e3d2 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2394
diff changeset
   930
                ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   931
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   932
            "/ actually, the nil case cannot happen
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   933
            fullParseTree notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   934
                aParseTree := fullParseTree.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   935
                sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   936
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   937
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   938
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   939
        arg1Tree := aParseTree arg1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   940
        (arg1Tree notNil and:[arg1Tree isConstant]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   941
            name := arg1Tree value asString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   942
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   943
            "/ is it a private-class ?
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   944
            ('*privateIn:' match:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   945
                ownerTree := aParseTree args last.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   946
                ownerName := ownerTree name asString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   947
                name := ownerName , '::' , name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   948
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   949
            changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   950
            ^ 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
        "very strange"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   953
        ^ nil
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   956
    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   957
     is it a class remove ?
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
    (sel == #removeClass:) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   960
        (recTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   961
        and:[recTree ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   962
        and:[recTree isPrimary
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   963
        and:[recTree name = 'Smalltalk']]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   964
            arg1Tree := aParseTree arg1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   965
            (arg1Tree notNil and:[arg1Tree isPrimary]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   966
                name := arg1Tree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   967
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   968
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   969
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   970
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   971
    ].
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
     is it a method category change ?
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
    ((sel == #category:)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   977
    or:[sel == #privacy:]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   978
        (recTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   979
        and:[recTree ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   980
        and:[recTree isMessage
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   981
        and:[recTree selector == #compiledMethodAt:]]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   982
            isMeta := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   983
            recTree := recTree receiver.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   984
            recTree isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   985
                (recTree selector ~~ #class) ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   986
                "id class "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   987
                recTree := recTree receiver
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   988
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   989
            recTree isPrimary ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   990
                isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   991
                    name := name , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   992
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   993
                name := recTree name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   994
                changeClassNames at:changeNr put:name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   995
                ^ name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   996
            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   997
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   998
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
   999
    ^ nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1000
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1001
    "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
  1002
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1003
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1004
numberOfChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1005
    ^ changePositions size
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
    "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
  1008
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1009
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1010
ownerClassNameOfChange:changeNr
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1011
    "return the owner classname of a change 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1012
     For a normal class, this is the className;
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1013
     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
  1014
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1015
    |name ns idx cls|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1016
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1017
    name := self classNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1018
    name isNil ifTrue:[^ nil].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1019
    cls := Smalltalk at:name asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1020
    (cls notNil and:[cls isBehavior]) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1021
        cls owningClass notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1022
            ^ cls owningClass name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1023
        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1024
        ^ cls name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1025
    ].
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
"/    (name includes:$:) ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1028
"/        idx := name indexOf:$:.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1029
"/        ns := name copyTo:idx-1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1030
"/        ns := Smalltalk at:ns asSymbol.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1031
"/        ns notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1032
"/        
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1033
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1034
"/
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1035
"/        name := name copyFrom:idx+2.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1036
"/        (Smalltalk at:ns asSymbol) notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1037
"/            cls
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1038
"/        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1039
"/        ^ name copyWithoutLast:6
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1040
"/    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1041
    ^ name
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1042
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1043
    "Modified: 6.12.1995 / 17:06:31 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1044
!
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  1045
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1046
selectorOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1047
    "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
  1048
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1049
    |source parser sel chunk aParseTree |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1050
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1051
    source := self sourceOfMethodChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1052
    source isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1053
        (self classNameOfChange:changeNr) notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1054
            chunk := changeChunks at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1055
            chunk isNil ifTrue:[^ nil].       "mhmh - empty"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1056
            aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1057
            (aParseTree isNil or:[aParseTree == #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1058
                ^ nil        "seems strange ... (could be a comment)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1059
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1060
            aParseTree isMessage ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1061
                ^ nil        "very strange ... (whats that ?)"
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
            sel := aParseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1064
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1065
                #'removeSelector:' 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1066
            ) includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1067
                sel := aParseTree arguments at:1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1068
                sel isConstant ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1069
                    sel := sel evaluate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1070
                    sel isSymbol ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1071
                        ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1072
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1073
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1074
            ]
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
        ^ nil
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1080
    parser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1081
                parseMethodArgAndVarSpecification:source
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1082
                in:nil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1083
                ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1084
                ignoreWarnings:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1085
                parseBody:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1086
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1087
"/    parser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1088
"/                parseMethod:source 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1089
"/                in:nil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1090
"/                ignoreErrors:true 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1091
"/                ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1092
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1093
    (parser notNil and:[parser ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1094
        sel := parser selector.
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
    ^ sel
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1097
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1098
    "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
  1099
    "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
  1100
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1101
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1102
sourceOfMethodChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1103
    "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
  1104
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1105
    |aStream chunk sawExcla parseTree sourceChunk sel|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1106
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1107
    aStream := self streamForChange:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1108
    aStream isNil ifTrue:[^ nil].
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
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1111
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1112
        chunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1113
    ] ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1114
        chunk := (changeChunks at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1115
        sawExcla := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1116
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1117
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1118
    sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1119
        parseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1120
        (parseTree notNil and:[parseTree isMessage]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1121
            sel := parseTree selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1122
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1123
               #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1124
               #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1125
               #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1126
               #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1127
               #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1128
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1129
               #methodsFor:stamp:             "/ Squeak support
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1130
               #commentStamp:prior:           "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1131
               #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1132
               #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1133
              ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1134
            includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1135
                sourceChunk := aStream nextChunk.
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
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1138
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1139
    aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1140
    ^ sourceChunk
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
    "Created: / 5.9.1996 / 17:11:32 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1143
    "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
  1144
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1145
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1146
streamForChange:changeNr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1147
    "answer a stream for change"
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
    |aStream|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1150
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1151
    (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
  1152
    aStream := FileStream readonlyFileNamed:changeFileName.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1153
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1154
    aStream position:(changePositions at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1155
    ^ aStream
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1156
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1157
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1158
!ChangesBrowser methodsFor:'private-changeFile access'!
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
changeFileName:aFileName
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1161
    changeFileName := aFileName
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1164
checkIfFileHasChanged
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1165
    |f info |
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
    Processor removeTimedBlock:checkBlock.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1168
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1169
    (info := f info) isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1170
	self newLabel:'(unaccessable)'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1171
    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1172
	(info modified) > changeFileTimestamp ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1173
	    self newLabel:'(outdated)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1174
	    autoUpdate ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1175
		self doUpdate
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1176
	    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1177
	] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1178
	    self newLabel:''
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
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1181
    Processor addTimedBlock:checkBlock afterSeconds:5.
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
    "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
  1184
    "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
  1185
    "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
  1186
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1187
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1188
readChangesFile
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1189
    "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
  1190
     and a list of chunk-positions (changePositions)"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1191
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1192
    ^ self readChangesFileInBackground:false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1193
!
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
readChangesFileInBackground:inBackground
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1196
    "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
  1197
     and a list of chunk-positions (changePositions).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1198
     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
  1199
     the cols are:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1200
        1   delta (only if comparing)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1201
                '+' -> new method (w.r.t. current state)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1202
                '-' -> removed method (w.r.t. current state)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1203
                '?' -> class does not exist currently
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1204
                '=' -> change is same as current methods source
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1205
        2   class/selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1206
        3   type of change
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1207
                doit
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1208
                method
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1209
                category change
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1210
        4   timestamp
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1211
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1212
     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
  1213
     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
  1214
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1215
    |aStream maxLen i f chunkText fullChunkText askedForEditingClassSource
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1216
     excla timeStampInfo entry changeDelta changeString changeType 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1217
     line s l changeClass sawExcla category 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1218
     chunkPos sel index headerLine cls p rec clsName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1219
     myProcess myPriority myPrioRange
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1220
     done first className  text methodPos 
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1221
     singleJunkOnly methodChunks singleInfo
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1222
     ownerTree ownerName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1223
     m currentText t1 t2|
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1224
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1225
    editingClassSource := false.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1226
    askedForEditingClassSource := false.
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
    maxLen := 60.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1229
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1230
    f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1231
    aStream :=  f readStream.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1232
    aStream isNil ifTrue:[^ nil].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1233
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1234
    self newLabel:'updating ...'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1235
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1236
    i := f info.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1237
    changeFileSize := i size.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1238
    changeFileTimestamp := i modified.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1239
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1240
    self withReadCursorDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1241
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1242
         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
  1243
         NFS-mounted directory; therefore lower my priority ...
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
        inBackground ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1246
            myProcess := Processor activeProcess.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1247
            myPriority := myProcess priority.
2295
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1248
            myPrioRange := myProcess priorityRange.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1249
            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
  1250
"/            myProcess priority:(Processor userBackgroundPriority).
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1251
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1252
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1253
        [
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1254
            changeChunks := OrderedCollection new.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1255
            changeClassNames := OrderedCollection new.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1256
            changeHeaderLines := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1257
            changePositions := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1258
            changeTimeStamps := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1259
            changeIsFollowupMethodChange := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1260
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1261
            excla := aStream class chunkSeparator.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1262
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1263
            [aStream atEnd] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1264
                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1265
                 get a chunk (separated by excla)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1266
                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1267
                aStream skipSeparators.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1268
                chunkPos := aStream position.
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1271
                sawExcla := aStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1272
                chunkText := fullChunkText := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1273
                chunkText notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1274
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1275
                    (chunkText startsWith:'''---- timestamp ') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1276
                        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
  1277
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1278
                        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1279
                         only first line is saved in changeChunks ...
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1280
                        "
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1281
"/                        index := chunkText indexOf:(Character cr).
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1282
"/                        (index ~~ 0) ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1283
"/                            chunkText := chunkText copyTo:(index - 1).
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1284
"/
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1285
"/                            "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
  1286
"/                             valid expression for classNameOfChange: to work"
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
"/                            (chunkText endsWith:'comment:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1289
"/                                chunkText := chunkText , '...'''
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:'primitiveDefinitions:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1292
"/                                sel := 'primitiveDefinitions:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1293
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1294
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1295
"/                            (chunkText endsWith:'primitiveVariables:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1296
"/                                sel := 'primitiveVariables:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1297
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1298
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1299
"/                            (chunkText endsWith:'primitiveFunctions:''') ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1300
"/                                sel := 'primitiveFunctions:'.
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1301
"/                                chunkText := chunkText copyWithoutLast:1
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1302
"/                            ].
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1303
"/                        ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1304
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1305
                        changeChunks add:chunkText.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1306
                        changeClassNames add:nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1307
                        changePositions add:chunkPos.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1308
                        changeTimeStamps add:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1309
                        changeIsFollowupMethodChange add:false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1310
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1311
                        headerLine := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1312
                        changeDelta := ' '.
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
                        sawExcla ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1315
                            (chunkText startsWith:'''---- snap') ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1316
                                changeType := ''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1317
                                headerLine := chunkText.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1318
                                changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1319
                                timeStampInfo := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1320
                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1321
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1322
                                headerLine := chunkText , ' (doIt)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1323
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
                                 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
  1326
                                "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1327
                                ((chunkText startsWith:'''---- file')
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1328
                                or:[(chunkText startsWith:'''---- check')]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1329
                                    changeType := ''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1330
                                    timeStampInfo := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1331
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1332
                                    changeType := '(doIt)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1333
                                ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1334
                                changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1335
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1336
                                p := Parser parseExpression:fullChunkText inNameSpace:Smalltalk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1337
                                (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1338
                                    p isMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1339
                                        sel := p selector.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1340
                                        rec := p receiver.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1341
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1342
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1343
                                    sel := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1344
                                    (Scanner new scanTokens:fullChunkText) size == 0 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1345
                                        "/ a comment only
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1346
                                        changeType := '(comment)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1347
                                        NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1348
                                            changeType := changeType asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1349
                                            "/ changeString := changeString asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1350
                                            changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1351
                                        ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1352
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1353
                                        changeType := '(???)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1354
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1355
                                ].
2291
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1356
                                (sel == #comment:) ifTrue:[
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1357
                                    changeType := '(comment)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1358
                                    clsName := rec name.
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1359
                                    changeClass := (Smalltalk classNamed:clsName).
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1360
                                    changeClassNames at:changeClassNames size put:clsName.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1361
                                    NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1362
                                        changeType := changeType asText allItalic.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1363
                                        changeType emphasisAllAdd:(#color -> UserPreferences current commentColor).
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1364
                                        "/ changeString := clsName asText allItalic.
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1365
                                    ].
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1366
                                    compareChanges ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1367
                                        (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1368
                                            changeDelta := '?'
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1369
                                        ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1370
                                            (changeClass comment = (p args at:1) evaluate) 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
                                            ]
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1373
                                        ]
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1374
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1375
                                    sel := nil.
2291
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1376
                                ].
6f517d3e1d83 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2290
diff changeset
  1377
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1378
                                (sel == #removeSelector:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1379
                                    rec isUnaryMessage ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1380
                                        cls := rec receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1381
                                        changeClass := (Smalltalk classNamed:cls) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1382
                                        cls := cls , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1383
                                    ] ifFalse:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1384
                                        cls := rec name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1385
                                        changeClass := (Smalltalk classNamed:cls)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1386
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1387
                                    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
  1388
                                    changeClassNames at:changeClassNames size put:cls.
2263
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
                                    compareChanges ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1391
                                        (changeClass isNil or:[changeClass isLoaded not]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1392
                                            changeDelta := '?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1393
                                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1394
                                            (changeClass implements:sel asSymbol) 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
                                                changeDelta := '='.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1398
                                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1399
                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1400
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1401
                                    changeType := '(remove)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1402
                                    changeString := self contractClass:cls selector:sel to:maxLen.
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1403
                                    sel := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1404
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1405
                                (p ~~ #Error
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1406
                                and:[p isMessage 
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1407
                                and:[rec isMessage
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1408
                                and:[rec selector == #compiledMethodAt:]]]) ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1409
                                    rec receiver isUnaryMessage ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1410
                                        cls := rec receiver receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1411
                                        changeClass := (Smalltalk classNamed:cls) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1412
                                        cls := cls , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1413
                                    ] ifFalse:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1414
                                        cls := rec receiver name.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1415
                                        changeClass := (Smalltalk classNamed:cls)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1416
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1417
                                    (sel == #category:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1418
                                        sel := (rec args at:1) evaluate.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1419
                                        changeType := '(category change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1420
                                        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
  1421
                                        changeClassNames at:changeClassNames size put:cls.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1422
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1423
                                    (sel == #privacy:) ifTrue:[
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1424
                                        sel := (rec args at:1) evaluate.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1425
                                        changeType := '(privacy change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1426
                                        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
  1427
                                        changeClassNames at:changeClassNames size put:cls.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1428
                                    ].
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1429
                                    sel := nil.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1430
                                ].
2290
59207b94df0c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
  1431
                                (Class definitionSelectors includes:sel) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1432
                                    changeType := '(class definition)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1433
                                    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
  1434
                                    changeClassNames at:changeClassNames size put:clsName.
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1435
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1436
                                    "/ is it a private-class ?
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1437
                                    ('*privateIn:' match:sel) ifTrue:[
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1438
                                        ownerTree := p args last.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1439
                                        ownerName := ownerTree name asString.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1440
                                        clsName := ownerName , '::' , clsName
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1441
                                    ].
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  1442
                                
2290
59207b94df0c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2286
diff changeset
  1443
                                    changeString := clsName.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1444
                                    NoColoring ~~ true ifTrue:[
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1445
                                        changeType := changeType asText allBold.
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1446
                                        changeString := changeString asText allBold.
2573
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1447
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1448
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1449
                                    compareChanges ifTrue:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1450
                                        cls := Smalltalk at:clsName ifAbsent:nil.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1451
                                        cls isNil ifTrue:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1452
                                            changeDelta := '+'.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1453
                                        ] ifFalse:[
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1454
                                            changeDelta := '?'.
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1455
                                        ]
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1456
                                    ].
5a0d8ad2c073 more compares.
Claus Gittinger <cg@exept.de>
parents: 2571
diff changeset
  1457
                                    sel := nil.
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1458
                                ] ifFalse:[
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1459
                                    (#(
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1460
                                      #'primitiveDefinitions:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1461
                                      #'primitiveFunctions:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1462
                                      #'primitiveVariables:'
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1463
                                     ) includes:sel) ifTrue:[
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1464
                                        changeType := '(class definition)'.
2292
321bca750f46 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2291
diff changeset
  1465
                                        clsName := rec evaluate.
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1466
                                    ]
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1467
                                ].
2265
693dad31ead8 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2263
diff changeset
  1468
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1469
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1470
                        ] ifTrue:[ "sawExcla"
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1471
                            singleJunkOnly := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1472
                            methodChunks := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1473
                            singleInfo := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1474
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1475
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1476
                             method definitions actually consist of
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1477
                             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
  1478
                             up to an empty one.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1479
                             The system only writes one chunk,
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1480
                             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
  1481
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1482
                            className := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1483
                            p := Parser parseExpression:chunkText inNameSpace:Smalltalk.
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
                            (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1486
                                sel := p selector.
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
                                   #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1489
                                   #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1490
                                   #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1491
                                   #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1492
                                   #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1493
                                   #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1494
                                   #'commentStamp:prior:'         "/ Squeak support
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1495
                                   #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1496
                                   #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1497
                                  ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1498
                                includes:sel) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1499
                                    methodChunks := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1500
                                    p receiver isUnaryMessage ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1501
                                        className := p receiver receiver name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1502
                                        changeClass := (Smalltalk classNamed:className) class.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1503
                                        className := className , ' class'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1504
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1505
                                        className := p receiver name.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1506
                                        changeClass := Smalltalk classNamed:className
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1507
                                    ].
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1508
                                    (sel == #'methodsFor') ifTrue:[
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1509
                                        category := 'Dolphin methods'.
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1510
                                    ] ifFalse:[
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1511
                                        (sel == #methods) ifTrue:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1512
                                            category := 'STV methods'.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1513
                                        ] ifFalse:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1514
                                            category := (p args at:1) evaluate.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1515
                                        ]
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  1516
                                    ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1517
                                    sel == #'methodsFor:stamp:' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1518
                                        "/ Squeak timeStamp
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1519
                                        timeStampInfo := (p args at:2) evaluate.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1520
                                        singleInfo := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1521
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1522
                                        sel == #'commentStamp:prior:' ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1523
                                            singleJunkOnly := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1524
                                            methodChunks := false.
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1525
                                        ]
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1526
                                    ]
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1527
                                ] ifFalse:[
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1528
                                    sel == #reorganize ifTrue:[
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1529
                                        singleJunkOnly := true.
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1530
                                        methodChunks := false.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1531
                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1532
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1533
                            ].
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
                            done := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1536
                            first := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1537
                            [done] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1538
                                changeDelta := ' '.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1539
                                methodPos := aStream position.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1540
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1541
                                text := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1542
                                text isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1543
                                    done := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1544
                                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1545
                                    done := text isEmpty
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1546
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1547
                                done ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1548
                                    first ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1549
                                        changeChunks add:chunkText.
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1550
                                        changeClassNames add:className.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1551
                                        changePositions add:methodPos.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1552
                                        changeTimeStamps add:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1553
                                        changeIsFollowupMethodChange add:true.
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1554
                                        askedForEditingClassSource ifFalse:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1555
                                            (changeFileName asFilename hasSuffix:'.st') ifFalse:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1556
                                                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
  1557
Is this a class-file being browsed ?')
2641
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1558
                                            ] ifTrue:[
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1559
                                                editingClassSource := true.
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1560
                                            ].
cfd94f3cc611 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2637
diff changeset
  1561
                                            askedForEditingClassSource := true.
2635
4ac62d4f2346 care for malformed changes file and ask
Claus Gittinger <cg@exept.de>
parents: 2606
diff changeset
  1562
                                        ]
2664
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1563
                                    ] ifTrue:[
541f43019451 fixed class-chunk remembering (remember the full chunk,
Claus Gittinger <cg@exept.de>
parents: 2641
diff changeset
  1564
                                        changeClassNames at:changeClassNames size put:className.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1565
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1566
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1567
                                    first := false.
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
                                     try to find the selector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1570
                                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1571
                                    sel := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1572
                                    className notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1573
                                        methodChunks ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1574
                                            p := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1575
                                                     parseMethodSpecification:text
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1576
                                                     in:nil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1577
                                                     ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1578
                                                     ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1579
                                            (p notNil and:[p ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1580
                                                sel := p selector.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1581
                                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1582
                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1583
                                    ].
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
                                    sel isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1586
                                        changeString := (chunkText contractTo:maxLen).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1587
                                        changeType := '(change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1588
                                        headerLine := chunkText , ' (change)'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1589
                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1590
                                        changeString :=  self contractClass:className selector:sel to:maxLen.
2319
fd83f279ef24 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2301
diff changeset
  1591
                                        changeType := '{ ' , category , ' }'.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1592
                                        headerLine := className , ' ' , sel , ' ' , '(change category: ''' , category , ''')'.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1593
                                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1594
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1595
                                    compareChanges ifTrue:[ 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1596
                                        changeClass isNil ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1597
                                            changeClass isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1598
                                                cls := changeClass soleInstance
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1599
                                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1600
                                                cls := changeClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1601
                                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1602
                                        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1603
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1604
                                        (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
  1605
                                            changeDelta := '?'
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1606
                                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1607
                                            (changeClass implements:sel asSymbol) ifFalse:[
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
                                            ] ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1610
                                                m := changeClass compiledMethodAt:sel asSymbol.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1611
                                                currentText := m source.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1612
                                                currentText notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1613
                                                    text asString = currentText asString ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1614
                                                        changeDelta := '='
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1615
                                                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1616
                                                        t1 := currentText asCollectionOfLines collect:[:s | s withTabsExpanded].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1617
                                                        t2 := text asCollectionOfLines collect:[:s | s withTabsExpanded].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1618
                                                        t1 = t2 ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1619
                                                            changeDelta := '='
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1620
                                                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1621
                                                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1622
                                                ]
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
                                    entry := MultiColListEntry new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1627
                                    entry tabulatorSpecification:tabSpec.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1628
                                    entry colAt:1 put:changeDelta.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1629
                                    entry colAt:2 put:changeString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1630
                                    entry colAt:3 put:changeType.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1631
                                    timeStampInfo notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1632
                                        entry colAt:4 put:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1633
                                    ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1634
                                    changeHeaderLines add:entry
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1635
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1636
                                changeString := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1637
                                headerLine := nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1638
                                singleJunkOnly ifTrue:[done := true]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1639
                            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1640
                            singleInfo ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1641
                                timeStampInfo := nil
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
                        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1644
                        changeString notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1645
                            entry := MultiColListEntry new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1646
                            entry tabulatorSpecification:tabSpec.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1647
                            entry colAt:1 put:changeDelta.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1648
                            entry colAt:2 put:changeString.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1649
                            entry colAt:3 put:changeType.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1650
                            timeStampInfo notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1651
                                entry colAt:4 put:timeStampInfo.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1652
                            ].    
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1653
                            changeHeaderLines add:entry
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1654
                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1655
                            headerLine notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1656
                                changeHeaderLines add:headerLine
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1657
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1658
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1659
                    ]
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
            anyChanges := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1663
        ] valueNowOrOnUnwindDo:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1664
            aStream close.
2295
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1665
            inBackground ifTrue:[
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1666
                myProcess priority:myPriority.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1667
                myProcess priorityRange:myPrioRange.
4e05198e7dd8 execute BG tasks at a prio range, to ensure progress.
Claus Gittinger <cg@exept.de>
parents: 2293
diff changeset
  1668
            ].
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1669
        ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1670
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1671
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1672
    self checkIfFileHasChanged
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
    "Modified: / 27.8.1995 / 23:06:55 / claus"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  1675
    "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
  1676
!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1677
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1678
writeBackChanges
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1679
    "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
  1680
     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
  1681
     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
  1682
     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
  1683
     tempfile back to the change-file. 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1684
     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
  1685
     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
  1686
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1687
    |inStream outStream tempfile stamp f|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1688
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1689
    editingClassSource ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1690
        (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
  1691
        ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1692
            ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1693
        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1694
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1695
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1696
    tempfile := Filename newTemporaryIn:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1697
    tempfile exists ifTrue:[tempfile remove].
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
    outStream := tempfile writeStream.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1700
    outStream isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1701
        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
  1702
        ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1703
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1704
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1705
    inStream := FileStream readonlyFileNamed:changeFileName.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1706
    inStream isNil ifTrue:[^ false].
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
    self withCursor:(Cursor write) do:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1709
        |excla sawExcla done first chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1710
         nChanges "{Class:SmallInteger}" |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1711
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1712
        Stream writeErrorSignal handle:[:ex |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1713
            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
  1714
            tempfile exists ifTrue:[tempfile remove].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1715
            ^ false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1716
        ] do:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1717
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1718
            excla := inStream class chunkSeparator.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1719
            nChanges := self numberOfChanges.
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
            1 to:nChanges do:[:index |
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1722
                inStream position:(changePositions at:index).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1723
                sawExcla := inStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1724
                chunk := inStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1725
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1726
                (chunk notNil
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1727
                and:[(chunk startsWith:'''---- snap') not]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1728
                    (stamp := changeTimeStamps at:index) notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1729
                        outStream nextPutAll:'''---- timestamp ' , stamp , ' ----'''.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1730
                        outStream nextPut:excla; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1731
                    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1732
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1733
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1734
                sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1735
                    outStream nextPut:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1736
                    outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1737
                    outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1738
                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1739
                     a method-definition chunk - output followups
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1740
                    "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1741
                    done := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1742
                    first := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1743
                    [done] whileFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1744
                        chunk := inStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1745
                        chunk isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1746
                            outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1747
                            done := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1748
                        ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1749
                            chunk isEmpty ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1750
                                outStream space; nextChunkPut:chunk; cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1751
                                done := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1752
                            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1753
                                first ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1754
                                    outStream cr; cr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1755
                                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1756
                                outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1757
                            ].
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
                        first := false.
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
                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1762
                    outStream nextChunkPut:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1763
                    outStream cr
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1764
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1765
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1766
            outStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1767
            inStream close.
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
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1770
        f := changeFileName asFilename.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1771
        f renameTo:(f withSuffix:'bak').
2466
66842be773bd care for cross-device rename
Claus Gittinger <cg@exept.de>
parents: 2451
diff changeset
  1772
        tempfile renameOrCopyTo:changeFileName.
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1773
        anyChanges := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1774
    ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1775
    ^ true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1776
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1777
    "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
  1778
    "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
  1779
! !
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1780
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1781
!ChangesBrowser methodsFor:'private-user interaction ops'!
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  1782
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1783
appendChange:changeNr toFile:fileName
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1784
    "append change to a file. return true if ok."
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1785
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1786
    |aStream outStream chunk chunk2 sawExcla separator|
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1787
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1788
    aStream := self streamForChange:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1789
    aStream isNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1790
        self warn:'oops - cannot read change'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1791
        ^ false
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1792
    ].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1793
    aStream skipSeparators.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1794
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1795
    separator := aStream class chunkSeparator.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1796
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1797
    (self changeIsFollowupMethodChange:changeNr) ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1798
        sawExcla := true.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1799
        chunk := changeChunks at:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1800
        chunk withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1801
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1802
        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1803
    ] ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1804
        sawExcla := aStream peekFor:separator.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1805
        chunk := aStream nextChunk.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1806
        chunk withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1807
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1808
        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1809
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1810
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1811
    outStream := FileStream oldFileNamed:fileName.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1812
    outStream isNil ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1813
        outStream isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1814
            outStream := FileStream newFileNamed:fileName.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1815
            outStream isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1816
                self warn:'cannot update file ''%1''' with:fileName.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1817
                ^ false
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1818
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1819
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1820
    ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1821
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1822
    outStream setToEnd.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1823
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1824
    sawExcla ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1825
        outStream nextPut:separator
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1826
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1827
    outStream nextChunkPut:chunk; cr.
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1828
    sawExcla ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1829
        chunk2 := aStream nextChunk.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1830
        chunk2 withoutSeparators isEmpty ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1831
            self halt:'oops - should not happen'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1832
        ].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  1833
        outStream nextChunkPut:chunk2; space
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1834
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1835
    sawExcla ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1836
        outStream nextPut:separator
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1837
    ].
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1838
    outStream cr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1839
    aStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1840
    outStream close.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  1841
    ^ true
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1842
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1843
    "Modified: / 6.2.1998 / 13:03:54 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1844
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  1845
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1846
applyChange:changeNr
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1847
    "fileIn a change"
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1848
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1849
    |aStream nm applyAction nameSpace|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1850
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1851
    aStream := self streamForChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1852
    aStream isNil ifTrue:[^ self].
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1853
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1854
    nm := self classNameOfChange:changeNr.
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1855
    nm notNil ifTrue:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1856
        |cls|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1857
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1858
        cls := Smalltalk at:(nm asSymbol) ifAbsent:[].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1859
        cls notNil ifTrue:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1860
            cls isLoaded ifFalse:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1861
                cls autoload
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1862
            ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1863
        ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1864
    ].
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1865
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  1866
    changeNrProcessed := changeNr.
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1867
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1868
    applyAction := [
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1869
        |sig|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1870
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1871
        (skipSignal notNil) ifTrue:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1872
            sig := skipSignal
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1873
        ] ifFalse:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1874
            sig := Object abortSignal
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1875
        ].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1876
        sig catch:[
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1877
            |reader doItChunk methodsForChunk|
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1878
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1879
            applyInOriginalNameSpace value ifFalse:[
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1880
                nameSpace := Class nameSpaceQuerySignal query.    
2343
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1881
            ] ifTrue:[
20af8b9e9d8d checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
  1882
                nameSpace := Smalltalk.
2301
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1883
            ].
d557a9dec28c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2295
diff changeset
  1884
            Class nameSpaceQuerySignal answer:nameSpace
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1885
            do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1886
                "/ a followup methodsFor: chunk ...
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1887
                (self changeIsFollowupMethodChange:changeNr) ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1888
                    methodsForChunk := (changeChunks at:changeNr).
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1889
                ] ifFalse:[
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1890
                    doItChunk := aStream nextChunk.   "/ an empty chunk sometimes ...
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1891
                    doItChunk notEmpty ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1892
                        Compiler evaluate:doItChunk notifying:self.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1893
                    ] ifFalse:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1894
                        methodsForChunk := aStream nextChunk.   "/ the real one
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1895
                    ]
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1896
                ].
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1897
                methodsForChunk notNil ifTrue:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1898
                    reader := Compiler evaluate:methodsForChunk notifying:self.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1899
                    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
  1900
                ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1901
            ]
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1902
        ].
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1903
        changeNrProcessed := nil.
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1904
    ].
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1905
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1906
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1907
    "/ 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
  1908
    "/
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1909
    changeFileName = ObjectMemory nameForChanges ifTrue:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1910
        Class withoutUpdatingChangesDo:applyAction
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1911
    ] ifFalse:[
1427
0b2794583306 care for methodRedefinitionSignal when accepting
Claus Gittinger <cg@exept.de>
parents: 1425
diff changeset
  1912
        applyAction value
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1913
    ].
132
claus
parents: 126
diff changeset
  1914
    aStream close
358
a7546792f073 update changeFile if applying changes from another changeFile
Claus Gittinger <cg@exept.de>
parents: 326
diff changeset
  1915
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  1916
    "Modified: / 7.2.1998 / 19:56:34 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1917
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  1918
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1919
compareChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1920
    "compare a change with current version"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1921
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1922
    |aStream chunk sawExcla parseTree thisClass cat oldSource newSource
742
2ef5e22d8983 code cleanup (unused vars eliminated)
Claus Gittinger <cg@exept.de>
parents: 724
diff changeset
  1923
     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
  1924
     method beep superClass thisClassSym|
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1925
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1926
    aStream := self streamForChange:changeNr.
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1927
    aStream isNil ifTrue:[^ self].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1928
275
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1929
    showDiff := false.
604a906c0eb7 better handling of changes for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 255
diff changeset
  1930
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1931
    (self changeIsFollowupMethodChange:changeNr) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1932
        sawExcla := aStream peekFor:(aStream class chunkSeparator).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1933
        chunk := aStream nextChunk.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1934
    ] ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1935
        chunk := (changeChunks at:changeNr).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1936
        sawExcla := true.
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1937
    ].
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  1938
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  1939
    beep := false.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  1940
    sawExcla ifFalse:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1941
        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
  1942
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1943
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1944
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1945
            parseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1946
        ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1947
        (parseTree notNil and:[parseTree isMessage]) ifTrue:[
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1948
            selector := parseTree selector.
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1949
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1950
            selector == #'removeSelector:' ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1951
                thisClass := (parseTree receiver evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1952
                thisClass isBehavior ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1953
                    (self checkClassIsLoaded:thisClass) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1954
                        selector := (parseTree arg1 evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1955
                        (thisClass includesSelector:selector) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1956
                            outcome := 'change removes the #' , selector , ' method from ' , thisClass name.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1957
                        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1958
                            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
  1959
                        ]
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
                        beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1962
                        outcome := 'cannot compare this change (compare requires class to be loaded).'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1963
                    ]
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1964
                ] ifFalse:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  1965
                    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
  1966
                ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1967
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1968
            selector == #'category:' ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1969
                parseTree receiver isMessage ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1970
                    parseTree receiver selector == #compiledMethodAt: ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1971
                        (method := parseTree receiver evaluate) isMethod ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1972
                            method category = parseTree arg1 evaluate ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1973
                                outcome := 'change has no effect\\(same category)'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1974
                            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1975
                                outcome := 'category is different (''' , method category , ''' vs. ''' , parseTree arg1 evaluate , ''')'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1976
                            ]
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
                            beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1979
                            outcome := 'there is no such method'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1980
                        ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1981
                    ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  1982
                ]
1713
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  1983
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  1984
            selector == #'comment:' ifTrue:[
2570
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1985
                thisClass := (parseTree receiver evaluate).
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1986
                thisClass isBehavior ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1987
                    (self checkClassIsLoaded:thisClass) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1988
                        (thisClass comment = parseTree arg1 evaluate) ifTrue:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1989
                            outcome := 'change has no effect\\(same comment)'.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1990
                        ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1991
                            outcome := 'comment is different'
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1992
                        ]
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
                        beep := true.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1995
                        outcome := 'cannot compare this change (compare requires class to be loaded).'.
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1996
                    ]
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1997
                ] ifFalse:[
2f15ecfd80de compare comments
Claus Gittinger <cg@exept.de>
parents: 2555
diff changeset
  1998
                    outcome := 'cannot compare this change (class not present)'
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
            ].
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2001
            selector == #'subclass:instanceVariableNames:classVariableNames:poolDictionaries:category:' ifTrue:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2002
                superClass := (parseTree receiver evaluate).
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2003
                superClass isBehavior ifTrue:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2004
                    (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
  2005
                        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
  2006
                        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
  2007
                        thisClass notNil ifTrue:[
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2008
                            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
  2009
                                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
  2010
                                    ((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
  2011
                                        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
  2012
                                            outcome := 'change has no effect\\(same definition)'.
2571
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2013
                                        ] ifFalse:[
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2014
                                            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
  2015
                                        ]
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 := 'sharedPool definition is different'
9812249daf39 more compare changes stuff
Claus Gittinger <cg@exept.de>
parents: 2570
diff changeset
  2018
                                    ].
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 := '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
  2021
                                ]
2571
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 := '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
  2024
                            ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2025
                        ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2026
                    ]
f6a93c02e953 also show '=' for method-removes (if non-existing in image);
Claus Gittinger <cg@exept.de>
parents: 1706
diff changeset
  2027
                ]
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2028
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2029
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2030
    ] ifTrue:[
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2031
        Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2032
        do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2033
            parseTree := Parser parseExpression:chunk.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2034
        ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2035
        (parseTree notNil 
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2036
         and:[parseTree ~~ #Error
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2037
         and:[parseTree isMessage]]) ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2038
            "/ Squeak support (#methodsFor:***)
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2039
            (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2040
               #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2041
               #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2042
               #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2043
               #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2044
               #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2045
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2046
               #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2047
               #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2048
               #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2049
              ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2050
            includes:parseTree selector) ifTrue:[
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2051
                thisClass := (parseTree receiver evaluate).
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2052
                thisClass isBehavior ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2053
                    (isLoaded := self checkClassIsLoaded:thisClass) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2054
                        outcome := 'cannot compare this change\\(compare requires class to be loaded).'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2055
                    ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2056
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2057
                    parseTree selector == #methodsFor ifTrue:[
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2058
                        cat := 'Dolphin methods'.
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2059
                    ] ifFalse:[
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2060
                        parseTree selector == #methods ifTrue:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2061
                            cat := 'STV methods'.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2062
                        ] ifFalse:[
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2063
                            cat := parseTree arg1 evaluate.
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2064
                        ].
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2065
                    ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2066
                    newSource := aStream nextChunk.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2067
2286
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2068
                    Class nameSpaceQuerySignal answer:Smalltalk
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2069
                    do:[
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2070
                        parser := Parser parseMethod:newSource in:thisClass.
6da16a42e507 care for defaultNameSpace being set to something
Claus Gittinger <cg@exept.de>
parents: 2267
diff changeset
  2071
                    ].
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2072
                    (parser notNil and:[parser ~~ #Error]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2073
                        sel := parser selector.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2074
                        oldMethod := thisClass compiledMethodAt:sel.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2075
                        oldMethod notNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2076
                            (oldMethod category = cat) ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2077
                                Transcript showCR:'category changed.'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2078
                            ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2079
                            oldSource := oldMethod source.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2080
                            (oldSource = newSource) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2081
                                outcome := 'same source'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2082
                            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2083
                                oldSource isNil ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2084
                                    beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2085
                                    outcome := 'no source for compare.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2086
                                ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2087
                                    "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2088
                                    "/ compare for tabulator <-> space changes
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2089
                                    "/ before showing diff ...
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
                                    t1 := oldSource asCollectionOfLines collect:[:s | s withTabsExpanded].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2092
                                    t2 := newSource asCollectionOfLines collect:[:s | s withTabsExpanded].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2093
                                    t1 = t2 ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2094
                                        outcome := 'same source'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2095
                                    ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2096
                                        outcome := 'source changed.'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2097
                                        showDiff := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2098
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2099
                                        "/
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2100
                                        "/ check if only historyLine diffs
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
                                        (HistoryManager notNil 
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2103
                                        and:[HistoryManager isActive]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2104
                                            (HistoryManager withoutHistoryLines:newSource)
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2105
                                            =
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2106
                                            (HistoryManager withoutHistoryLines:oldSource)
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2107
                                            ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2108
                                                outcome := 'same source (history only)'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2109
                                                showDiff := false.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2110
                                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2111
                                        ].
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2112
                                    ]
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
                        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2116
                            isLoaded ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2117
                                beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2118
                                outcome := 'method does not exist.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2119
                            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2120
                        ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2121
                    ] ifFalse:[
2267
27ad170baa22 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2266
diff changeset
  2122
                        outcome := 'change unparsable (parse error).'
1472
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
                    (showDiff and:[oldSource notNil and:[newSource notNil]]) ifTrue:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2125
                        d := DiffTextView 
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2126
                                openOn:oldSource label:(resources string:'current version (in image)')
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2127
                                and:newSource label:(resources string:'change version').
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2128
                        d label:'method differences'.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2129
                    ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2130
                ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2131
                    beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2132
                    outcome := 'class does not exist.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2133
                ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2134
            ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2135
                beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2136
                outcome := 'not comparable.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2137
            ]
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2138
        ] ifFalse:[
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2139
            beep := true.
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2140
            outcome := 'not comparable.'
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2141
        ]
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2142
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2143
    aStream close.
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2144
    showDiff ifFalse:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2145
        outcome := (resources string:outcome) withCRs.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2146
        beep ifTrue:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2147
            self warn:outcome.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2148
        ] ifFalse:[
1622
fecb0d17cb42 national strings
Claus Gittinger <cg@exept.de>
parents: 1594
diff changeset
  2149
            self information:outcome.
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2150
        ]
553
b67caadfe334 showCr: -> showCR:
Claus Gittinger <cg@exept.de>
parents: 548
diff changeset
  2151
"/        Transcript showCR:outcome.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2152
    ].
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2153
1472
6620dc742f2a checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1471
diff changeset
  2154
    "Created: / 24.11.1995 / 14:30:46 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2155
    "Modified: / 13.2.2000 / 15:04:39 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2156
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2157
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2158
compressForClass:aClassNameOrNil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2159
    "compress the change-set; 
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2160
     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
  2161
     If the class argument is nil, compress for all classes.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2162
     otherwise, only changes for that class are compressed."
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2163
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2164
    |aStream searchIndex anyMore deleteSet index  
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2165
     str snapshotProto snapshotPrefix snapshotNameIndex fileName|
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 := FileStream readonlyFileNamed:changeFileName.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2168
    aStream isNil ifTrue:[^ self].
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
    aClassNameOrNil isNil ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2171
        self newLabel:'compressing ...'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2172
    ] ifFalse:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2173
        self newLabel:'compressing for ' , aClassNameOrNil.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2174
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2175
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2176
    CompressSnapshotInfo == true ifTrue:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2177
        "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2178
         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
  2179
         the actual format ..
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
        str := WriteStream on:String new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2182
        Class addChangeRecordForSnapshot:'foo' to:str.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2183
        snapshotProto := str contents.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2184
        snapshotPrefix := snapshotProto copyTo:10.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2185
        snapshotNameIndex := snapshotProto findString:'foo'.
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2186
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2187
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2188
    self withExecuteCursorDo:[
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2189
        |numChanges classes selectors types excla sawExcla
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2190
         changeNr chunk aParseTree parseTreeChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2191
         thisClass thisSelector codeChunk codeParser
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2192
         compressThis|
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2193
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2194
        numChanges := self numberOfChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2195
        classes := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2196
        selectors := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2197
        types := Array new:numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2198
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2199
        "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
  2200
         collect all in classes / selectors"
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
        changeNr := numChanges.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2203
        excla := aStream class chunkSeparator.
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 >= 1] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2206
            aStream position:(changePositions at:changeNr).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2207
            sawExcla := aStream peekFor:excla.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2208
            chunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2209
            sawExcla ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2210
                "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
  2211
                (chunk = parseTreeChunk) ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2212
                    aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2213
                    parseTreeChunk := chunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2214
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2215
                (aParseTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2216
                and:[(aParseTree ~~ #Error) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2217
                and:[aParseTree isMessage]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2218
                    (#(
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2219
                       #methodsFor: 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2220
                       #privateMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2221
                       #publicMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2222
                       #ignoredMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2223
                       #protectedMethodsFor:
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2224
                       #methodsFor:stamp:             "/ Squeak support
2527
afa639104477 some support for dolphin source files
Claus Gittinger <cg@exept.de>
parents: 2511
diff changeset
  2225
                       #methodsFor                    "/ Dolphin support
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2226
                       #methods                       "/ STV support
2263
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2227
                      ) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2228
                    includes:aParseTree selector) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2229
                        thisClass := (aParseTree receiver evaluate).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2230
                        codeChunk := aStream nextChunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2231
                        codeParser := Parser 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2232
                                          parseMethodSpecification:codeChunk
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2233
                                          in:thisClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2234
                                          ignoreErrors:true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2235
                                          ignoreWarnings:true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2236
                        (codeParser notNil and:[codeParser ~~ #Error]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2237
                            selectors at:changeNr put:(codeParser selector).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2238
                            classes at:changeNr put:thisClass.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2239
                            types at:changeNr put:#methodsFor
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2240
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2241
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2242
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2243
            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2244
                aParseTree := Parser parseExpression:chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2245
                parseTreeChunk := chunk.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2246
                (aParseTree notNil 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2247
                and:[(aParseTree ~~ #Error) 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2248
                and:[aParseTree isMessage]]) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2249
                    (aParseTree selector == #removeSelector:) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2250
                        selectors at:changeNr put:(aParseTree arg1 value ).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2251
                        classes at:changeNr put:(aParseTree receiver evaluate).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2252
                        types at:changeNr put:#removeSelector
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2253
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2254
                ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2255
                    CompressSnapshotInfo == true ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2256
                        (chunk startsWith:snapshotPrefix) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2257
                            str := chunk readStream position:snapshotNameIndex.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2258
                            fileName := str upTo:(Character space).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2259
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2260
                             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
  2261
                            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2262
                            selectors at:changeNr put:snapshotPrefix.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2263
                            classes at:changeNr put:fileName.
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
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2266
                ]
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
            changeNr := changeNr - 1
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
        aStream close.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2271
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2272
        "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
  2273
         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
  2274
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2275
        deleteSet := OrderedCollection new.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2276
        changeNr := 1.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2277
        [changeNr < self numberOfChanges] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2278
            thisClass := classes at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2279
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2280
            compressThis := false.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2281
            aClassNameOrNil isNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2282
                compressThis := true
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2283
            ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2284
                "/ skipping unloaded/unknown classes
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2285
                thisClass isBehavior ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2286
                    thisClass isMeta ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2287
                        compressThis := aClassNameOrNil = thisClass soleInstance name. 
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2288
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2289
                        compressThis := aClassNameOrNil = thisClass name
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2290
                    ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2291
                ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2292
            ].
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
            compressThis ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2295
                thisSelector := selectors at:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2296
                searchIndex := changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2297
                anyMore := true.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2298
                [anyMore] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2299
                    searchIndex := classes indexOf:thisClass
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2300
                                        startingAt:(searchIndex + 1).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2301
                    (searchIndex ~~ 0) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2302
                        ((selectors at:searchIndex) == thisSelector) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2303
                            thisClass notNil ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2304
                                deleteSet add:changeNr.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2305
                                anyMore := false
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2306
                            ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2307
                        ]
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2308
                    ] ifFalse:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2309
                        anyMore := false      
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
                ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2312
            ].
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
            changeNr := changeNr + 1
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
        "finally delete what has been found"
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
        (deleteSet size > 0) ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2320
            changeListView setSelection:nil.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2321
            index := deleteSet size.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2322
            [index > 0] whileTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2323
                self silentDeleteChange:(deleteSet at:index).
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2324
                index := index - 1
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2325
            ].
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2326
            self setChangeList.
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2327
            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2328
             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
  2329
            "
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2330
            changeListView firstLineShown > self numberOfChanges ifTrue:[
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2331
                changeListView makeLineVisible:self numberOfChanges
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
            self clearCodeView
46fc2bb1b9c1 changes to allow browsing Sqeak fileOut format.
Claus Gittinger <cg@exept.de>
parents: 2214
diff changeset
  2334
        ]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2335
    ].
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2336
    self newLabel:''.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2337
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2338
    "Created: / 29.10.1997 / 01:02:44 / cg"
2606
61cc86fff103 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2604
diff changeset
  2339
    "Modified: / 13.2.2000 / 15:05:07 / cg"
1359
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
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2342
deleteChange:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2343
    "delete a change"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2344
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2345
    self deleteChangesFrom:changeNr to:changeNr
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2346
!
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
deleteChangesFrom:start to:stop
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2349
    "delete a range of changes"
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2350
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2351
    changeListView setSelection:nil.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2352
    stop to:start by:-1 do:[:changeNr |
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2353
        self silentDeleteInternalChange:changeNr.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2354
        changeListView removeIndex:changeNr.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2355
    ].
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2356
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2357
"/    changeListView contentsChanged.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2358
"/    changeListView redrawFromLine:start.
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2359
744
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2360
"/    self setChangeList
cb962cb21e8c faster drawing when deleting items
Claus Gittinger <cg@exept.de>
parents: 742
diff changeset
  2361
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2362
    "Modified: / 18.5.1998 / 14:22:27 / cg"
255
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2363
!
08ec5e9cdbd2 disable entries
Claus Gittinger <cg@exept.de>
parents: 241
diff changeset
  2364
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2365
makeChangeAPatch:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2366
    "append change to patchfile"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2367
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2368
    self appendChange:changeNr toFile:'patches'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2369
!
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
makeChangePermanent:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2372
    "rewrite the source file where change changeNr lies"
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
    self notify:'this is not yet implemented'
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2375
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2376
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2377
silentDeleteChange:changeNr
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2378
    "delete a change do not update changeListView"
57
36e13831b62d *** empty log message ***
claus
parents: 56
diff changeset
  2379
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2380
    anyChanges := true.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2381
    changeChunks removeIndex:changeNr.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2382
    changePositions removeIndex:changeNr.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2383
    changeClassNames removeIndex:changeNr.
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2384
    changeHeaderLines removeIndex:changeNr.
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2385
    changeTimeStamps removeIndex:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2386
    changeIsFollowupMethodChange removeIndex:changeNr.
182
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2387
0c2f9214d531 handle & display timestamp records
Claus Gittinger <cg@exept.de>
parents: 176
diff changeset
  2388
    "Modified: 18.11.1995 / 17:08:44 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2389
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2390
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2391
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
  2392
    "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
  2393
     Return the number of deleted changes."
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2394
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2395
    |thisClassName index numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2396
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2397
    numDeleted := 0.
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2398
    index := stop.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2399
    [index >= start] whileTrue:[
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2400
        thisClassName := self classNameOfChange:index.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2401
        thisClassName = aClassName ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2402
            self silentDeleteChange:index.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2403
            numDeleted := numDeleted + 1.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2404
        ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2405
        index := index - 1
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2406
    ].
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2407
    ^ numDeleted
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2408
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2409
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2410
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2411
silentDeleteChangesForClassAndPrivateClasses:aClassName from:start to:stop
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2412
    "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
  2413
     Return the number of deleted changes."
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2414
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2415
    |thisClassName index numDeleted|
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2416
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2417
    numDeleted := 0.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2418
    index := stop.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2419
    [index >= start] whileTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2420
        thisClassName := self ownerClassNameOfChange:index.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2421
        thisClassName = aClassName ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2422
            self silentDeleteChange:index.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2423
            numDeleted := numDeleted + 1.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2424
        ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2425
        index := index - 1
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2426
    ].
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2427
    ^ numDeleted
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2428
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
1070
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2431
silentDeleteInternalChange:changeNr
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2432
    "delete a change do not update changeListView"
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2433
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2434
    anyChanges := true.
cdf5cf202f3b faster redraw, when deleting items.
Claus Gittinger <cg@exept.de>
parents: 1027
diff changeset
  2435
    changeChunks removeIndex:changeNr.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2436
    changePositions size >= changeNr ifTrue:[changePositions removeIndex:changeNr].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2437
    changeClassNames size >= changeNr ifTrue:[changeClassNames removeIndex:changeNr].
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2438
    changeTimeStamps size >= changeNr ifTrue:[changeTimeStamps removeIndex:changeNr].
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2439
    changeIsFollowupMethodChange size >= changeNr ifTrue:[changeIsFollowupMethodChange removeIndex:changeNr].
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2440
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2441
    "Created: / 7.3.1997 / 16:28:32 / cg"
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2442
    "Modified: / 7.2.1998 / 19:59:11 / cg"
1496
978b3c3565c9 #silentDeleteInternalChange: copy-paste error
Stefan Vogel <sv@exept.de>
parents: 1473
diff changeset
  2443
    "Modified: / 26.2.1998 / 18:20:48 / stefan"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2444
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2445
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2446
!ChangesBrowser methodsFor:'termination'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2447
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2448
closeRequest
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2449
    "window manager wants us to go away"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2450
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2451
    |action again|
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2452
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2453
    anyChanges ifTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2454
        again := true.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2455
        [again] whileTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2456
            action := OptionBox 
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  2457
                              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
  2458
                              label:'ChangesBrowser'
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2459
                              form:(WarningBox iconBitmap)
2353
707dd9391c02 Consistent use of 'update' and 'write' in the user interface
Stefan Vogel <sv@exept.de>
parents: 2343
diff changeset
  2460
                              buttonLabels:(resources array:#('cancel' 'don''t write' 'write'))
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2461
                              values:#(#abort #ignore #save)
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2462
                              default:#save.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2463
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2464
            again := false.
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2465
            action == #abort ifTrue:[^ self].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2466
            action  == #save ifTrue:[
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2467
                again := self writeBackChanges not
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2468
            ].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2469
        ]
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2470
    ].
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2471
    super closeRequest
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
    "Modified: / 31.7.1997 / 18:29:06 / cg"
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2474
    "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
  2475
    "Modified: / 24.8.1999 / 09:45:04 / stefan"
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2476
!
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2477
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2478
saveAndTerminate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2479
    "update the changes file and quit.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2480
     Dont depend on this being sent, not all window managers
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2481
     send it; instead, they simply destroy the view."
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  2482
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2483
    anyChanges ifTrue:[
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2484
        self writeBackChanges.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2485
    ].
1787
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2486
    super saveAndTerminate
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2487
d3d0266b35ec #terminate -> #closeRequest
Claus Gittinger <cg@exept.de>
parents: 1781
diff changeset
  2488
    "Modified: / 3.8.1998 / 19:54:00 / cg"
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2489
! !
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2490
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2491
!ChangesBrowser methodsFor:'user interaction'!
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2492
221
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2493
autoUpdate:aBoolean
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2494
    autoUpdate := aBoolean
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2495
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2496
    "Created: 3.12.1995 / 14:14:24 / cg"
6c278b8ec6ca added autoUpdate
Claus Gittinger <cg@exept.de>
parents: 209
diff changeset
  2497
    "Modified: 3.12.1995 / 14:20:45 / cg"
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
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2500
changeSelection:lineNr
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2501
    "show a change in the codeView"
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2502
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2503
    |aStream sawExcla chunk|
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2504
2293
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2505
    lineNr isNil ifTrue:[
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2506
        codeView contents:nil.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2507
        codeView initializeDoITAction.
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2508
        ^ self
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2509
    ].
6ba9a8ce2780 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2292
diff changeset
  2510
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2511
    aStream := self streamForChange:lineNr.
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2512
    aStream isNil ifTrue:[
2093
Claus Gittinger <cg@exept.de>
parents: 2078
diff changeset
  2513
        codeView initializeDoITAction.
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2514
        ^ self
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2515
    ].
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2516
    sawExcla := aStream peekFor:(aStream class chunkSeparator).
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2517
    chunk := aStream nextChunk.
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2518
    sawExcla ifTrue:[
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2519
        chunk := aStream nextChunk
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2520
    ].
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2521
    aStream close.
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2522
    codeView contents:chunk.
13
145a9461122e *** empty log message ***
claus
parents: 6
diff changeset
  2523
    codeView acceptAction:[:theCode | self doApply "noChangesAllowed"].
2043
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2524
    codeView doItAction:[:theCode |
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2525
        |clsName cls|
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2526
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2527
        clsName := self classNameOfChange:lineNr.
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2528
        cls := Smalltalk at:clsName ifAbsent:nil.
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2529
        Compiler 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2530
            evaluate:theCode 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2531
            in:nil 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2532
            receiver:cls 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2533
            notifying:self 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2534
            logged:true 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2535
            ifFail:nil 
66b5276b2760 set self in changesBrowsers doIt.
Claus Gittinger <cg@exept.de>
parents: 1996
diff changeset
  2536
    ].
15
7fc8fcef7bc6 *** empty log message ***
claus
parents: 13
diff changeset
  2537
    changeNrShown := lineNr.
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  2538
2044
34e663fcfe53 default doItAction
Claus Gittinger <cg@exept.de>
parents: 2043
diff changeset
  2539
    "Modified: / 28.2.1999 / 15:26:46 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2540
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2541
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2542
doApply
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2543
    "user wants a change to be applied"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2544
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2545
    self withSelectedChangeDo:[:changeNr |
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2546
	skipSignal := nil.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2547
	self applyChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2548
	self autoSelect:(changeNr + 1)
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2549
    ]
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2550
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2551
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2552
doApplyAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2553
    "user wants all changes to be applied"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2554
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2555
    self withExecuteCursorDo:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2556
	|lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2557
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2558
	self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2559
	skipSignal isNil ifTrue:[skipSignal := Signal new].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2560
	lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2561
	1 to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2562
	    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2563
	    self applyChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2564
	].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2565
	self autoSelectLast
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2566
    ]
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2567
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2568
    "Modified: 21.1.1997 / 22:26:30 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2569
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2570
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2571
doApplyClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2572
    "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
  2573
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2574
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2575
	|thisClassName classNameToApply lastChange
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2576
	 lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2577
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2578
	classNameToApply := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2579
	classNameToApply notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2580
	    self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2581
	    skipSignal isNil ifTrue:[skipSignal := Signal new].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2582
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2583
	    lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2584
	    changeNr to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2585
		thisClassName := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2586
		thisClassName = classNameToApply ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2587
		    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2588
		    self applyChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2589
		    lastChange := changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2590
		].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2591
	    ].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2592
	    self autoSelect:lastChange.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2593
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2594
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2595
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2596
    "Modified: 21.1.1997 / 22:26:04 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2597
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2598
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2599
doApplyRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2600
    "user wants all changes from changeNr to be applied"
28
eea5a71a1e23 *** empty log message ***
claus
parents: 27
diff changeset
  2601
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2602
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2603
	|lastNr "{ Class: SmallInteger }" |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2604
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2605
	self clearCodeView.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2606
	skipSignal isNil ifTrue:[skipSignal := Signal new].
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
	lastNr := self numberOfChanges.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2609
	changeNr to:lastNr do:[:changeNr |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2610
	    changeListView setSelection:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2611
	    self applyChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2612
	].
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2613
	self autoSelect:self numberOfChanges.
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2614
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2615
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  2616
    "Modified: 21.1.1997 / 22:25:29 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2617
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2618
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2619
doBrowse
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2620
    "user wants a browser on the class of a change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2621
241
9366ced0db42 doBrowse was wrong for class-methods
Claus Gittinger <cg@exept.de>
parents: 226
diff changeset
  2622
    |changeNr className cls isMeta|
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2623
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2624
    changeNr := changeListView selection.
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2625
    changeNr notNil ifTrue:[
1781
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2626
        className := self fullClassNameOfChange:changeNr.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2627
        className notNil ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2628
            isMeta := false.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2629
            (className endsWith:' class') ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2630
                className := className copyWithoutLast:6.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2631
                isMeta := true.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2632
            ].
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2633
            (cls := Smalltalk classNamed:className) notNil ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2634
                isMeta ifTrue:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2635
                    cls := cls class
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2636
                ].
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2637
                SystemBrowser 
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2638
                    openInClass:cls 
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2639
                    selector:(self selectorOfMethodChange:changeNr)
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2640
            ] ifFalse:[
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2641
                self warn:'class not found: ''' , className , ''''.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2642
            ]
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:'could not extract classname from change'.
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2645
        ]
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2646
    ]
209
dc43fdd0aadf browse-menu function opens browser in selected method
Claus Gittinger <cg@exept.de>
parents: 207
diff changeset
  2647
1781
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2648
    "Created: / 24.11.1995 / 23:13:24 / cg"
f1e06a41b1ac show a warning if browse fails.
Claus Gittinger <cg@exept.de>
parents: 1726
diff changeset
  2649
    "Modified: / 31.7.1998 / 20:17:42 / cg"
37
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2650
!
50f59bad66b1 *** empty log message ***
claus
parents: 33
diff changeset
  2651
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2652
doCheckinAndDeleteClassAll
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2653
    "first checkin the selected changes class then delete all changes
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2654
     for it."
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2655
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2656
    self withSelectedChangeDo:[:changeNr |
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2657
        | className class |
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
        className := self classNameOfChange:changeNr.
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2660
        className notNil ifTrue:[
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2661
            class := Smalltalk classNamed:className.
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2662
            class isNil ifTrue:[
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2663
                self halt.
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  2664
            ].
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2665
            class notNil ifTrue:[
2682
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2666
                class isPrivate ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2667
                    (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
  2668
                    ifFalse:[^ self].
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2669
                    (SourceCodeManagerUtilities checkinClass:class owningClass withLog:nil)
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2670
                    ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2671
                        self doDeleteClassAndPrivateClassesAll
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2672
                    ]
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2673
                ] ifFalse:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2674
                    (SourceCodeManagerUtilities checkinClass:class withLog:nil)
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2675
                    ifTrue:[
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2676
                        self doDeleteClassAll
3f35115e39f1 care for private-class-checkin
tm
parents: 2664
diff changeset
  2677
                    ]
2541
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2678
                ]
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2679
            ].
f8b6ae881564 experimental: checkIn & deleteForClass added.
Claus Gittinger <cg@exept.de>
parents: 2527
diff changeset
  2680
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
    "Modified: 6.9.1995 / 17:11:16 / claus"
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
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2687
doCompare
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2688
    "compare change with current system version
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2689
     - give a note in transcript"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2690
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2691
    |changeNr|
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2692
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2693
    changeNr := changeListView selection.
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2694
    changeNr notNil ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2695
	self withExecuteCursorDo:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2696
	    self compareChange:changeNr
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2697
	]
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2698
    ].
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2699
    self newLabel:''
294
a693bd6d7ae6 read cursor while reading
Claus Gittinger <cg@exept.de>
parents: 293
diff changeset
  2700
394
1d19a14fc96e show activity notifiactions
Claus Gittinger <cg@exept.de>
parents: 392
diff changeset
  2701
    "Modified: 24.2.1996 / 19:37:19 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2702
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2703
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2704
doCompress
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2705
    "compress the change-set; this replaces multiple method-changes by the last 
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2706
     (i.e. the most recent) change"
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2707
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2708
    self compressForClass:nil
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2709
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2710
    "Modified: / 29.10.1997 / 01:03:26 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2711
!
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
doCompressClass
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2714
    "compress changes for the selected class.
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2715
     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
  2716
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2717
    self withSelectedChangeDo:[:changeNr |
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2718
	| classNameToCompress |
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2719
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2720
	classNameToCompress := self classNameOfChange:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2721
	classNameToCompress notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2722
	    self compressForClass:classNameToCompress.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2723
	]
1359
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2724
    ]
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2725
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2726
    "Created: / 29.10.1997 / 01:05:16 / cg"
17bc3051f5d7 added #compressForClass
Claus Gittinger <cg@exept.de>
parents: 1321
diff changeset
  2727
    "Modified: / 29.10.1997 / 01:06:22 / cg"
45
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2728
!
950b84ba89e6 *** empty log message ***
claus
parents: 37
diff changeset
  2729
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2730
doDelete
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2731
    "delete currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2732
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2733
    |changeNr|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2734
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2735
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2736
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2737
	self deleteChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2738
	self autoSelectOrEnd:changeNr
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2739
    ]
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2740
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2741
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2742
doDeleteClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2743
    "delete all changes with same class as currently selected change"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2744
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2745
    self withSelectedChangeDo:[:changeNr |
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2746
        |classNameToDelete numDeletedBefore|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2747
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2748
        classNameToDelete := self classNameOfChange:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2749
        classNameToDelete notNil ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2750
            changeListView setSelection:nil.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2751
            self silentDeleteChangesFor:classNameToDelete
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2752
                                   from:changeNr
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2753
                                     to:(self numberOfChanges).
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2754
            numDeletedBefore := self 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2755
                                   silentDeleteChangesFor:classNameToDelete
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2756
                                   from:1
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2757
                                   to:(changeNr-1).
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2758
            self setChangeList. 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2759
            self autoSelectOrEnd:(changeNr - numDeletedBefore)
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2760
        ]
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2761
    ]
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2762
1431
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2763
    "Created: / 13.12.1995 / 16:07:14 / cg"
f4900d4f0c06 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1428
diff changeset
  2764
    "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
  2765
!
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2766
2511
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2767
doDeleteClassAndPrivateClassesAll
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2768
    "delete all changes with same class and private classes
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2769
     as currently selected change"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2770
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2771
    self withSelectedChangeDo:[:changeNr |
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2772
        |classNameToDelete numDeletedBefore|
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
        classNameToDelete := self ownerClassNameOfChange:changeNr.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2775
        classNameToDelete notNil ifTrue:[
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2776
            changeListView setSelection:nil.
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2777
            self silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2778
                                   from:changeNr
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2779
                                     to:(self numberOfChanges).
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2780
            numDeletedBefore := self 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2781
                                   silentDeleteChangesForClassAndPrivateClasses:classNameToDelete
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2782
                                   from:1
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2783
                                   to:(changeNr-1).
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2784
            self setChangeList. 
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2785
            self autoSelectOrEnd:(changeNr - numDeletedBefore)
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2786
        ]
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2787
    ]
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2788
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2789
    "Created: / 13.12.1995 / 16:07:14 / cg"
57e9fd0ec5c5 added new menu action:
Claus Gittinger <cg@exept.de>
parents: 2477
diff changeset
  2790
    "Modified: / 28.1.1998 / 20:42:14 / cg"
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
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2793
doDeleteClassFromBeginning
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2794
    "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
  2795
     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
  2796
     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
  2797
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2798
    self withSelectedChangeDo:[:changeNr |
1428
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2799
        |classNameToDelete prevSelection numDeleted|
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2800
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2801
        classNameToDelete := self classNameOfChange:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2802
        classNameToDelete notNil ifTrue:[
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2803
            prevSelection := changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2804
            changeListView setSelection:nil.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2805
            numDeleted := self 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2806
                                silentDeleteChangesFor:classNameToDelete 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2807
                                from:1 
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2808
                                to:changeNr.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2809
            self setChangeList.
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2810
            self autoSelectOrEnd:(changeNr + 1 - numDeleted)
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2811
        ]
180d03d00db4 fixed selection after deleting a bunch of changes
Claus Gittinger <cg@exept.de>
parents: 1427
diff changeset
  2812
    ].
286
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2813
96d31200b0c1 added delete-for-class-from-beginning; ignore timestamps for fileOut/checkin/snapshot entries
Claus Gittinger <cg@exept.de>
parents: 276
diff changeset
  2814
    "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
  2815
    "Modified: 25.5.1996 / 12:26:34 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2816
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2817
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2818
doDeleteClassRest
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2819
    "delete rest of changes with same class as currently selected change"
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2820
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2821
    self withSelectedChangeDo:[:changeNr |
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2822
        | classNameToDelete |
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2823
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2824
        classNameToDelete := self classNameOfChange:changeNr.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2825
        classNameToDelete notNil ifTrue:[
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2826
            changeListView setSelection:nil.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2827
            self silentDeleteChangesFor:classNameToDelete 
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2828
                                   from:changeNr
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2829
                                     to:(self numberOfChanges).
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2830
            self setChangeList.
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2831
            self autoSelectOrEnd:changeNr
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2832
        ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2833
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2834
1648
db1ca601ad8c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1625
diff changeset
  2835
    "Modified: / 18.5.1998 / 14:25:07 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2836
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2837
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2838
doDeleteRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2839
    "delete all changes from current to the end"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2840
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2841
    |changeNr|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2842
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2843
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2844
    changeNr notNil ifTrue:[
223
d451e2badbd1 fixed handling of primitive def/var/function changes
Claus Gittinger <cg@exept.de>
parents: 221
diff changeset
  2845
	self deleteChangesFrom:changeNr to:(self numberOfChanges).
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2846
	self clearCodeView.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2847
	self autoSelectOrEnd:changeNr-1
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2848
    ]
132
claus
parents: 126
diff changeset
  2849
!
claus
parents: 126
diff changeset
  2850
claus
parents: 126
diff changeset
  2851
doFileoutAndDeleteClassAll
claus
parents: 126
diff changeset
  2852
    "first fileOut the selected changes class then delete all changes
claus
parents: 126
diff changeset
  2853
     for it."
claus
parents: 126
diff changeset
  2854
claus
parents: 126
diff changeset
  2855
    self withSelectedChangeDo:[:changeNr |
claus
parents: 126
diff changeset
  2856
	| className class |
claus
parents: 126
diff changeset
  2857
claus
parents: 126
diff changeset
  2858
	className := self classNameOfChange:changeNr.
claus
parents: 126
diff changeset
  2859
	className notNil ifTrue:[
claus
parents: 126
diff changeset
  2860
	    class := Smalltalk classNamed:className.
claus
parents: 126
diff changeset
  2861
	    class notNil ifTrue:[
claus
parents: 126
diff changeset
  2862
		Class fileOutErrorSignal handle:[:ex |
claus
parents: 126
diff changeset
  2863
		    self warn:('fileout failed: ' , ex errorString).
claus
parents: 126
diff changeset
  2864
		] do:[
claus
parents: 126
diff changeset
  2865
		    class fileOut.
claus
parents: 126
diff changeset
  2866
		    self doDeleteClassAll
claus
parents: 126
diff changeset
  2867
		].
claus
parents: 126
diff changeset
  2868
	    ].
claus
parents: 126
diff changeset
  2869
claus
parents: 126
diff changeset
  2870
	].
claus
parents: 126
diff changeset
  2871
    ]
claus
parents: 126
diff changeset
  2872
claus
parents: 126
diff changeset
  2873
    "Modified: 6.9.1995 / 17:11:16 / claus"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2874
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2875
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2876
doMakePatch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2877
    "user wants a change to be made a patch
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2878
     - copy it over to the patches file"
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2879
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2880
    |changeNr|
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2881
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2882
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2883
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2884
	self makeChangeAPatch:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2885
	self autoSelect:(changeNr + 1)
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2886
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2887
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2888
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2889
doMakePermanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2890
    "user wants a change to be made permanent
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2891
     - rewrite the source file where this change has to go"
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2892
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2893
    |yesNoBox|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2894
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2895
    yesNoBox := YesNoBox new.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2896
    yesNoBox title:(resources at:'Warning: this operation cannot be undone').
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2897
    yesNoBox okText:(resources at:'continue') noText:(resources at:'abort').
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2898
    yesNoBox okAction:[   |changeNr|
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2899
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2900
			  changeNr := changeListView selection.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2901
			  changeNr notNil ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2902
			      self makeChangePermanent:changeNr.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2903
			      self autoSelect:(changeNr + 1)
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2904
			  ]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  2905
		      ].
917
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2906
    yesNoBox showAtPointer.
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2907
    yesNoBox destroy
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2908
72349fe1f8ee destroy box after use
Claus Gittinger <cg@exept.de>
parents: 911
diff changeset
  2909
    "Modified: 7.1.1997 / 23:03:33 / cg"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2910
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2911
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2912
doSave
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2913
    "user wants a change to be appended to a file"
73
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
    |changeNr fileName|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2916
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2917
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2918
    changeNr notNil ifTrue:[
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2919
        fileName := Dialog
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2920
                        requestFileName:'append change to:'
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2921
                        default:(lastSaveFileName ? '')
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2922
                        ok:'append'
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2923
                        abort:'abort'
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2924
                        pattern:'*.chg'.
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2925
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2926
        fileName notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2927
            lastSaveFileName := fileName.
1473
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2928
            self withCursor:(Cursor write) do:[
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2929
                self appendChange:changeNr toFile:fileName.
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2930
            ].
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2931
            self autoSelect:(changeNr + 1)
160652b05e38 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1472
diff changeset
  2932
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2933
    ]
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2934
!
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2935
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2936
doSaveClass
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2937
    "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
  2938
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2939
    self doSaveClassFrom:1
89
43ca5e534f5e *** empty log message ***
claus
parents: 81
diff changeset
  2940
!
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
doSaveClassAll
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2943
    "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
  2944
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2945
    self doSaveClassFrom:1
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2946
!
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2947
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2948
doSaveClassFrom:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2949
    "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
  2950
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2951
    |changeNr classNameToSave|
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2952
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2953
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2954
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2955
	classNameToSave := self classNameOfChange:changeNr.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2956
	classNameToSave notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2957
	    self saveClass:classNameToSave from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2958
	]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2959
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2960
!
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2961
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2962
doSaveClassRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2963
    "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
  2964
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2965
    |changeNr|
132
claus
parents: 126
diff changeset
  2966
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2967
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2968
    changeNr notNil ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2969
	self doSaveClassFrom:changeNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2970
    ]
81
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  2971
!
b3b4d34c5ada *** empty log message ***
claus
parents: 77
diff changeset
  2972
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2973
doSaveRest
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2974
    "user wants changes from current to end to be appended to a file"
73
e332d9c71624 *** empty log message ***
claus
parents: 68
diff changeset
  2975
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2976
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  2977
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2978
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2979
    changeNr notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2980
        fileName := Dialog
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2981
                        requestFileName:'append changes to:'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2982
                        default:(lastSaveFileName ? '')
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2983
                        ok:'append'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2984
                        abort:'abort'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2985
                        pattern:'*.chg'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2986
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2987
        fileName notNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2988
            lastSaveFileName := fileName.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2989
            self withCursor:(Cursor write) do:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2990
                changeNr to:(self numberOfChanges) do:[:changeNr |
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2991
                    changeListView setSelection:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2992
                    (self appendChange:changeNr toFile:fileName) ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2993
                        ^ self
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2994
                    ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2995
                ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2996
            ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  2997
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  2998
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  2999
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3000
    "Modified: 25.5.1996 / 12:26:41 / cg"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3001
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3002
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3003
doUpdate
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3004
    "reread the changes-file"
51
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
    self readChangesFileInBackground:true.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3007
    realized ifTrue:[
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3008
	self setChangeList.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3009
    ]
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3010
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3011
!
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3012
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3013
doWriteBack
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3014
    "write back the list onto the changes file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3015
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3016
    anyChanges ifTrue:[
1378
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3017
	(self writeBackChanges) ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3018
	    realized ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3019
		self readChangesFileInBackground:false.
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3020
		realized ifTrue:[
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3021
		    self setChangeList
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3022
		]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3023
	    ]
f7cf4cf1baf2 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1368
diff changeset
  3024
	]
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3025
    ]
703
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3026
1b3b008d9f19 fixed to allow class-source files to be handled
Claus Gittinger <cg@exept.de>
parents: 627
diff changeset
  3027
    "Modified: 5.9.1996 / 17:19:46 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3028
!
126
claus
parents: 123
diff changeset
  3029
1471
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3030
doubleClickOnChange:lineNr
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3031
    self doBrowse
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3032
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3033
    "Created: / 6.2.1998 / 13:08:49 / cg"
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3034
!
f73ed23816d4 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 1470
diff changeset
  3035
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3036
findClass
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3037
    |nm current search|
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3038
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3039
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3040
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3041
    changeNrShown notNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3042
        current := self classNameOfChange:changeNrShown.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3043
    ].
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3044
    nm := Dialog 
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3045
            request:'class to search for:' 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3046
            initialAnswer:current
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3047
            onCancel:nil.
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3048
    nm isNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3049
        ^ self
1275
b370370cf48c checkin from browser
Claus Gittinger <cg@exept.de>
parents: 1264
diff changeset
  3050
    ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3051
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3052
    changeNrShown isNil ifTrue:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3053
        search := 1.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3054
    ] ifFalse:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3055
        search := changeNrShown + 1
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3056
    ].
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3057
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3058
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3059
        |lastNr nr thisClass |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3060
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3061
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3062
        nr := search.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3063
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3064
            thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3065
            (thisClass = nm
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3066
            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
  3067
                changeListView setSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3068
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3069
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3070
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3071
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3072
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3073
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3074
    self showNotFound.
1706
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
    "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
  3077
    "Modified: / 18.4.1997 / 12:47:52 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3078
    "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
  3079
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3080
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3081
findNext
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3082
    lastSearchType == #selector ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3083
        ^ self findNextForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3084
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3085
    ^ self findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3086
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3087
    "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
  3088
    "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
  3089
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3090
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3091
findNextForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3092
    lastSearchType := #class.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3093
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3094
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3095
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3096
        |lastNr cls nr thisClass |
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
        cls := self classNameOfChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3099
        cls isNil ifTrue:[^ self].
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
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3102
        nr := changeNrShown + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3103
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3104
            thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3105
            (thisClass = cls
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3106
            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
  3107
                changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3108
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3109
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3110
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3111
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3112
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3113
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3114
    self showNotFound.
1706
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
    "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
  3117
    "Modified: / 18.4.1997 / 12:48:18 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3118
    "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
  3119
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3120
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3121
findNextForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3122
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3123
    changeNrShown isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3124
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3125
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3126
        |lastNr sel nr thisSelector |
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
        sel := self selectorOfMethodChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3129
        sel isNil ifTrue:[^ self].
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
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3132
        nr := changeNrShown + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3133
        [nr <= lastNr] whileTrue:[
2078
e2b35171b846 fixed findPrevSelector / findNextSelector
tm
parents: 2044
diff changeset
  3134
            thisSelector := self selectorOfMethodChange:nr.
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3135
            (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3136
            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
  3137
                changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3138
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3139
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3140
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3141
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3142
        ].
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3143
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3144
    self showNotFound.
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3145
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3146
    "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
  3147
    "Created: / 18.6.1998 / 22:17:37 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3148
    "Modified: / 29.4.1999 / 22:41:53 / cg"
1127
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3149
!
32383ecaebe4 added alt-S for search
Claus Gittinger <cg@exept.de>
parents: 1109
diff changeset
  3150
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3151
findNextSnapshot
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3152
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3153
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3154
    self withCursor:Cursor questionMark do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3155
        |cls nr lastNr words chunk|
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
        Object userInterruptSignal handle:[:ex |
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3158
            self beep.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3159
            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3160
        ] do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3161
            lastNr := self numberOfChanges.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3162
            nr := changeNrShown + 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3163
            [nr <= lastNr] whileTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3164
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3165
                 get the chunk
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3166
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3167
                chunk := changeChunks at:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3168
                chunk isNil ifTrue:[^ nil].       "mhmh - empty"
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 startsWith:'''---') ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3171
                    words := chunk asCollectionOfWords.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3172
                    words size > 2 ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3173
                        (words at:2) = 'snapshot' ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3174
                            changeListView setSelection:nr .
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3175
                            self changeSelection:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3176
                            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3177
                        ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3178
                    ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3179
                ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3180
                nr := nr + 1.
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
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3184
    self showNotFound.
1848
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
    "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
  3187
    "Created: / 22.8.1998 / 15:58:49 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3188
    "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
  3189
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3190
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3191
findPrevious
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3192
    lastSearchType == #selector ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3193
        ^ self findPreviousForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3194
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3195
    ^ self findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3196
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3197
    "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
  3198
!
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
findPreviousForClass
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3201
    lastSearchType := #class.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3202
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3203
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3204
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3205
        |cls nr thisClass |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3206
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3207
        Object userInterruptSignal handle:[:ex |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3208
            self beep.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3209
            ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3210
        ] do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3211
            cls := self classNameOfChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3212
            cls isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3213
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3214
            nr := changeNrShown - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3215
            [nr >= 1] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3216
                thisClass := self classNameOfChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3217
                (thisClass = cls
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3218
                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
  3219
                    changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3220
                    self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3221
                    ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3222
                ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3223
                nr := nr - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3224
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3225
        ]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3226
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3227
    self showNotFound.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3228
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3229
    "Modified: / 18.4.1997 / 12:48:41 / stefan"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3230
    "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
  3231
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3232
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3233
findPreviousForSelector
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3234
    lastSearchType := #selector.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3235
    changeNrShown isNil ifTrue:[^ self].
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3236
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3237
    self withCursor:Cursor questionMark do:[
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3238
        |sel nr thisSelector |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3239
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3240
        Object userInterruptSignal handle:[:ex |
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3241
            self beep.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3242
            ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3243
        ] do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3244
            sel := self selectorOfMethodChange:changeNrShown.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3245
            sel isNil ifTrue:[^ self].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3246
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3247
            nr := changeNrShown - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3248
            [nr >= 1] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3249
                thisSelector := self selectorOfMethodChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3250
                (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3251
                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
  3252
                    changeListView setSelection:nr .
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3253
                    self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3254
                    ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3255
                ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3256
                nr := nr - 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3257
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3258
        ]
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3259
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3260
    self showNotFound.
975
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3261
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3262
    "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
  3263
    "Created: / 18.6.1998 / 22:18:19 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3264
    "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
  3265
!
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3266
1848
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3267
findPreviousSnapshot
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3268
    changeNrShown isNil ifTrue:[^ self].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3269
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3270
    self withCursor:Cursor questionMark do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3271
        |cls nr words chunk|
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
        Object userInterruptSignal handle:[:ex |
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3274
            self beep.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3275
            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3276
        ] do:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3277
            nr := changeNrShown - 1.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3278
            [nr >= 1] whileTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3279
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3280
                 get the chunk
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3281
                "
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3282
                chunk := changeChunks at:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3283
                chunk isNil ifTrue:[^ nil].       "mhmh - empty"
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 startsWith:'''---') ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3286
                    words := chunk asCollectionOfWords.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3287
                    words size > 2 ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3288
                        (words at:2) = 'snapshot' ifTrue:[
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3289
                            changeListView setSelection:nr .
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3290
                            self changeSelection:nr.
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3291
                            ^ self
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3292
                        ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3293
                    ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3294
                ].
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3295
                nr := nr - 1.
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
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3299
    self showNotFound.
1848
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
    "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
  3302
    "Created: / 22.8.1998 / 15:57:34 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3303
    "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
  3304
!
61054ff3d470 added find prev/next snapshot to search menu
Claus Gittinger <cg@exept.de>
parents: 1833
diff changeset
  3305
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3306
findSelector
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3307
    |sel current search|
1706
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3308
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3309
    lastSearchType := #selector.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3310
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3311
    changeNrShown notNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3312
        current := self selectorOfMethodChange:changeNrShown.
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
    sel := Dialog 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3315
            request:'selector to search for:' 
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3316
            initialAnswer:current
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3317
            onCancel:nil.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3318
    sel isNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3319
        ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3320
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3321
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3322
    changeNrShown isNil ifTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3323
        search := 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3324
    ] ifFalse:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3325
        search := changeNrShown + 1
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3326
    ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3327
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3328
    self withCursor:Cursor questionMark do:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3329
        |lastNr cls nr thisSelector |
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
        lastNr := self numberOfChanges.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3332
        nr := search.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3333
        [nr <= lastNr] whileTrue:[
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3334
            thisSelector := self selectorOfMethodChange:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3335
            (thisSelector = sel
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3336
            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
  3337
                changeListView setSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3338
                self changeSelection:nr.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3339
                ^ self
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3340
            ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3341
            nr := nr + 1.
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3342
        ].
dd888c645873 added more search functions and a control-menu.
Claus Gittinger <cg@exept.de>
parents: 1670
diff changeset
  3343
    ].
2132
4b6c57b84a10 common code cleanup
Claus Gittinger <cg@exept.de>
parents: 2114
diff changeset
  3344
    self showNotFound.
1706
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
    "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
  3347
    "Created: / 18.6.1998 / 22:17:04 / cg"
2133
f8d0b221c4da checkin from browser
Claus Gittinger <cg@exept.de>
parents: 2132
diff changeset
  3348
    "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
  3349
!
41a41f54874d added findPrev (Alt-B) and findNext (Alt-F)
Claus Gittinger <cg@exept.de>
parents: 958
diff changeset
  3350
2576
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3351
findString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3352
    |sel searchString search|
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3353
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3354
    lastSearchType := #string.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3355
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3356
    searchString := codeView selection.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3357
    searchString := Dialog 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3358
            request:'string to search for:' 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3359
            initialAnswer:searchString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3360
            onCancel:nil.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3361
    searchString isNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3362
        ^ self
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3363
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3364
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3365
    changeNrShown isNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3366
        search := 1.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3367
    ] ifFalse:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3368
        search := changeNrShown + 1
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3369
    ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3370
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3371
    self withCursor:Cursor questionMark do:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3372
        |lastNr cls nr s |
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
        lastNr := self numberOfChanges.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3375
        nr := search.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3376
        [nr <= lastNr] whileTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3377
            s := self sourceOfMethodChange:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3378
            s notNil ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3379
                ((searchString includesMatchCharacters not
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3380
                            and:[(s findString:searchString) ~~ 0])
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3381
                or:[ searchString includesMatchCharacters
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3382
                            and:[s match:('*' , searchString , '*')]]) ifTrue:[
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3383
                    changeListView setSelection:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3384
                    self changeSelection:nr.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3385
                    codeView setSearchPattern:searchString.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3386
                    codeView 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3387
                        searchFwd:searchString
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3388
                        ignoreCase:false 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3389
                        startingAtLine:1 col:0 
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3390
                        ifAbsent:nil.
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3391
                    ^ self
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3392
                ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3393
            ].
b5f0d32b09d3 added string search (in methods code)
Claus Gittinger <cg@exept.de>
parents: 2573
diff changeset
  3394
            nr := nr + 1.
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
    self showNotFound.
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
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3401
noChangesAllowed
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3402
    "show a warning that changes cannot be changed"
93
claus
parents: 92
diff changeset
  3403
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3404
    self warn:'changes are not allowed to be changed'
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3405
!
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3406
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3407
saveClass:aClassName from:startNr
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3408
    "user wants changes from current to end to be appended to a file"
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3409
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3410
    |changeNr fileName|
51
57c1ccc3d7e0 *** empty log message ***
claus
parents: 50
diff changeset
  3411
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3412
    changeNr := changeListView selection.
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3413
    changeNr notNil ifTrue:[
2394
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3414
        fileName := Dialog
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3415
                        requestFileName:'append changes for class to:'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3416
                        default:(lastSaveFileName ? '')
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3417
                        ok:'append'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3418
                        abort:'abort'
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3419
                        pattern:'*.chg'.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3420
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3421
        fileName notNil ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3422
            lastSaveFileName := fileName.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3423
            self withCursor:(Cursor write) do:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3424
                startNr to:(self numberOfChanges) do:[:changeNr |
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3425
                    |thisClassName|
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3426
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3427
                    thisClassName := self classNameOfChange:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3428
                    thisClassName = aClassName ifTrue:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3429
                        changeListView setSelection:changeNr.
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3430
                        (self appendChange:changeNr toFile:fileName) ifFalse:[
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3431
                            ^ self
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3432
                        ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3433
                    ]
0841cfed6ec5 fixed delete followed by save-change
Claus Gittinger <cg@exept.de>
parents: 2353
diff changeset
  3434
                ]
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
        ].
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3437
    ]
562
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3438
8f772068fd1a #selection: now does a notification / #setSelection: does not
Claus Gittinger <cg@exept.de>
parents: 553
diff changeset
  3439
    "Modified: 25.5.1996 / 12:26:44 / cg"
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3440
! !
0
571fd5eee315 Initial revision
claus
parents:
diff changeset
  3441
761
5c2b46a38efa checkin from browser
Claus Gittinger <cg@exept.de>
parents: 744
diff changeset
  3442
!ChangesBrowser class methodsFor:'documentation'!
202
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3443
468378999911 checkin from browser
Claus Gittinger <cg@exept.de>
parents: 183
diff changeset
  3444
version
2683
e76575e4346f private className extraction
tm
parents: 2682
diff changeset
  3445
    ^ '$Header: /cvs/stx/stx/libtool/ChangesBrowser.st,v 1.197 2000-07-24 14:09:15 tm Exp $'
276
017219e571e4 more stuff for autoloaded classes
Claus Gittinger <cg@exept.de>
parents: 275
diff changeset
  3446
! !