ChangeSetBrowser.st
author claus
Thu, 10 Aug 1995 15:14:54 +0200
changeset 110 570a38362ae1
parent 106 f4eb10b3b463
child 111 b4ef3e799345
permissions -rw-r--r--
.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
     1
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
     2
 COPYRIGHT (c) 1993 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
     3
	      All Rights Reserved
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
     4
205d53e91c52 Initial revision
claus
parents:
diff changeset
     5
 This software is furnished under a license and may be used
205d53e91c52 Initial revision
claus
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
205d53e91c52 Initial revision
claus
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
205d53e91c52 Initial revision
claus
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
205d53e91c52 Initial revision
claus
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
205d53e91c52 Initial revision
claus
parents:
diff changeset
    10
 hereby transferred.
205d53e91c52 Initial revision
claus
parents:
diff changeset
    11
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    12
205d53e91c52 Initial revision
claus
parents:
diff changeset
    13
ChangesBrowser subclass:#ChangeSetBrowser
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    14
	 instanceVariableNames:'changeSet originalChangeSet'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    15
	 classVariableNames:''
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    16
	 poolDictionaries:''
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    17
	 category:'Interface-Browsers'
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    18
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    19
205d53e91c52 Initial revision
claus
parents:
diff changeset
    20
ChangeSetBrowser comment:'
205d53e91c52 Initial revision
claus
parents:
diff changeset
    21
COPYRIGHT (c) 1993 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    22
	      All Rights Reserved
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    23
110
claus
parents: 106
diff changeset
    24
$Header: /cvs/stx/stx/libtool/ChangeSetBrowser.st,v 1.6 1995-08-10 13:13:39 claus Exp $
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    25
'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    26
205d53e91c52 Initial revision
claus
parents:
diff changeset
    27
!ChangeSetBrowser class methodsFor:'documentation'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    28
205d53e91c52 Initial revision
claus
parents:
diff changeset
    29
copyright
205d53e91c52 Initial revision
claus
parents:
diff changeset
    30
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    31
 COPYRIGHT (c) 1993 by Claus Gittinger
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    32
	      All Rights Reserved
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    33
205d53e91c52 Initial revision
claus
parents:
diff changeset
    34
 This software is furnished under a license and may be used
205d53e91c52 Initial revision
claus
parents:
diff changeset
    35
 only in accordance with the terms of that license and with the
205d53e91c52 Initial revision
claus
parents:
diff changeset
    36
 inclusion of the above copyright notice.   This software may not
205d53e91c52 Initial revision
claus
parents:
diff changeset
    37
 be provided or otherwise made available to, or used by, any
205d53e91c52 Initial revision
claus
parents:
diff changeset
    38
 other person.  No title to or ownership of the software is
205d53e91c52 Initial revision
claus
parents:
diff changeset
    39
 hereby transferred.
205d53e91c52 Initial revision
claus
parents:
diff changeset
    40
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    41
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    42
205d53e91c52 Initial revision
claus
parents:
diff changeset
    43
version
205d53e91c52 Initial revision
claus
parents:
diff changeset
    44
"
110
claus
parents: 106
diff changeset
    45
$Header: /cvs/stx/stx/libtool/ChangeSetBrowser.st,v 1.6 1995-08-10 13:13:39 claus Exp $
claus
parents: 106
diff changeset
    46
$Revision: 1.6 $
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    47
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    48
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    49
205d53e91c52 Initial revision
claus
parents:
diff changeset
    50
documentation
205d53e91c52 Initial revision
claus
parents:
diff changeset
    51
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    52
    like a changesBrowser, but manipulates the per-project change-lists.
205d53e91c52 Initial revision
claus
parents:
diff changeset
    53
"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    54
! !
205d53e91c52 Initial revision
claus
parents:
diff changeset
    55
205d53e91c52 Initial revision
claus
parents:
diff changeset
    56
!ChangeSetBrowser class methodsFor:'instance creation'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    57
40
a9ae39be7004 *** empty log message ***
claus
parents: 30
diff changeset
    58
openOn:aChangeSet
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    59
    "create c changes browser on a change set"
205d53e91c52 Initial revision
claus
parents:
diff changeset
    60
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    61
    ^ ((self new label:'ChangeSet Browser') changeSet:aChangeSet) open
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    62
! !
205d53e91c52 Initial revision
claus
parents:
diff changeset
    63
205d53e91c52 Initial revision
claus
parents:
diff changeset
    64
!ChangeSetBrowser methodsFor:'initialize / release'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
    65
205d53e91c52 Initial revision
claus
parents:
diff changeset
    66
initializeMiddleButtonMenu
205d53e91c52 Initial revision
claus
parents:
diff changeset
    67
    |labels|
205d53e91c52 Initial revision
claus
parents:
diff changeset
    68
205d53e91c52 Initial revision
claus
parents:
diff changeset
    69
    labels := resources array:#(
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    70
			       'apply change'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    71
			       'apply changes to end'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    72
			       'apply all changes'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    73
			       '-'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    74
			       'delete'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    75
			       'delete to end'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    76
			       'delete changes for this class to end'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    77
			       'delete all changes for this class'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    78
			       '-'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    79
			       'update'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    80
			       'compress'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    81
			       'compare with current version'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    82
			       '-'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    83
			       'make change a patch'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    84
			       'update sourcefile from change'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    85
			       '-'
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    86
			       'saveback changeSet').
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
    87
205d53e91c52 Initial revision
claus
parents:
diff changeset
    88
    changeListView
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    89
	middleButtonMenu:(PopUpMenu 
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    90
			    labels:labels
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    91
			 selectors:#(
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    92
				     doApply
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    93
				     doApplyRest
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    94
				     doApplyAll
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    95
				     nil
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    96
				     doDelete
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    97
				     doDeleteRest
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    98
				     doDeleteClassRest
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
    99
				     doDeleteClassAll
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   100
				     nil
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   101
				     doUpdate
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   102
				     doCompress
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   103
				     doCompare
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   104
				     nil
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   105
				     doMakePatch
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   106
				     doMakePermanent
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   107
				     nil
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   108
				     doSaveBack)
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   109
			  receiver:self
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   110
			       for:changeListView)
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   111
! !
205d53e91c52 Initial revision
claus
parents:
diff changeset
   112
205d53e91c52 Initial revision
claus
parents:
diff changeset
   113
!ChangeSetBrowser methodsFor:'private'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   114
205d53e91c52 Initial revision
claus
parents:
diff changeset
   115
queryCloseText
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   116
	^ 'Quit without updating changeSet ?'
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   117
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   118
205d53e91c52 Initial revision
claus
parents:
diff changeset
   119
streamForChange:changeNr
205d53e91c52 Initial revision
claus
parents:
diff changeset
   120
    "answer a stream for change"
205d53e91c52 Initial revision
claus
parents:
diff changeset
   121
205d53e91c52 Initial revision
claus
parents:
diff changeset
   122
    |change|
205d53e91c52 Initial revision
claus
parents:
diff changeset
   123
205d53e91c52 Initial revision
claus
parents:
diff changeset
   124
    change := changeSet at:changeNr.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   125
    change isNil ifTrue:[^nil].
205d53e91c52 Initial revision
claus
parents:
diff changeset
   126
    ^ ReadStream on:(change source)
205d53e91c52 Initial revision
claus
parents:
diff changeset
   127
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   128
205d53e91c52 Initial revision
claus
parents:
diff changeset
   129
changeSet:aChangeSet
205d53e91c52 Initial revision
claus
parents:
diff changeset
   130
    originalChangeSet := aChangeSet.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   131
    changeSet := OrderedCollection new.
106
claus
parents: 52
diff changeset
   132
    originalChangeSet notNil ifTrue:[
claus
parents: 52
diff changeset
   133
	originalChangeSet do:[:aChange |
claus
parents: 52
diff changeset
   134
	    changeSet add:aChange
claus
parents: 52
diff changeset
   135
	].
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   136
    ].
205d53e91c52 Initial revision
claus
parents:
diff changeset
   137
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   138
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   139
readChangesFileInBackground:dummy
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   140
    "read the changeSet, create a list of header-lines"
205d53e91c52 Initial revision
claus
parents:
diff changeset
   141
205d53e91c52 Initial revision
claus
parents:
diff changeset
   142
    changeSet size == 0 ifTrue:[^ nil].
205d53e91c52 Initial revision
claus
parents:
diff changeset
   143
205d53e91c52 Initial revision
claus
parents:
diff changeset
   144
    self withCursor:(Cursor read) do:[
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   145
	changeChunks := OrderedCollection new.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   146
	changeHeaderLines := OrderedCollection new.
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   147
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   148
	changeSet do:[:aChange |
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   149
	    changeChunks add:(aChange printString).
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   150
	    changeHeaderLines add:(aChange printString)
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   151
	].
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   152
	changeClassNames := OrderedCollection new:(changeChunks size).
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   153
	anyChanges := false
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   154
    ]
205d53e91c52 Initial revision
claus
parents:
diff changeset
   155
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   156
205d53e91c52 Initial revision
claus
parents:
diff changeset
   157
saveBackChanges
205d53e91c52 Initial revision
claus
parents:
diff changeset
   158
    "save back the change set"
205d53e91c52 Initial revision
claus
parents:
diff changeset
   159
205d53e91c52 Initial revision
claus
parents:
diff changeset
   160
    [originalChangeSet isEmpty] whileFalse:[
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   161
	originalChangeSet removeLast
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   162
    ].
205d53e91c52 Initial revision
claus
parents:
diff changeset
   163
    changeSet do:[:aChange |
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   164
	originalChangeSet add:aChange
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   165
    ]
205d53e91c52 Initial revision
claus
parents:
diff changeset
   166
!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   167
205d53e91c52 Initial revision
claus
parents:
diff changeset
   168
silentDeleteChange:changeNr
205d53e91c52 Initial revision
claus
parents:
diff changeset
   169
    "delete a change do not update changeListView"
205d53e91c52 Initial revision
claus
parents:
diff changeset
   170
205d53e91c52 Initial revision
claus
parents:
diff changeset
   171
    anyChanges := true.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   172
    changeChunks removeIndex:changeNr.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   173
    changeClassNames removeIndex:changeNr.
205d53e91c52 Initial revision
claus
parents:
diff changeset
   174
    changeSet removeIndex:changeNr
205d53e91c52 Initial revision
claus
parents:
diff changeset
   175
! !
205d53e91c52 Initial revision
claus
parents:
diff changeset
   176
205d53e91c52 Initial revision
claus
parents:
diff changeset
   177
!ChangeSetBrowser methodsFor:'user actions'!
205d53e91c52 Initial revision
claus
parents:
diff changeset
   178
205d53e91c52 Initial revision
claus
parents:
diff changeset
   179
doSaveBack
205d53e91c52 Initial revision
claus
parents:
diff changeset
   180
    anyChanges ifTrue:[
45
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   181
	self saveBackChanges.
950b84ba89e6 *** empty log message ***
claus
parents: 40
diff changeset
   182
	self doUpdate
30
205d53e91c52 Initial revision
claus
parents:
diff changeset
   183
    ]
205d53e91c52 Initial revision
claus
parents:
diff changeset
   184
! !