--- a/VersionDiffBrowser.st Sun Dec 05 15:46:34 1999 +0100
+++ b/VersionDiffBrowser.st Tue Dec 07 14:30:15 1999 +0100
@@ -303,6 +303,14 @@
#value: #inspectSelectedChangeInA
#choiceValue: 'nil "UndefinedObject" '
)
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Browse'
+ #translateLabel: true
+ #value: #browseClassInA
+ )
)
nil
nil
@@ -332,6 +340,14 @@
#value: #inspectSelectedChangeInB
#choiceValue: 'nil "UndefinedObject" '
)
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Browse'
+ #translateLabel: true
+ #value: #browseClassInB
+ )
)
nil
nil
@@ -361,6 +377,14 @@
#value: #inspectSelectedChangeInM
#choiceValue: 'nil "UndefinedObject" '
)
+ #(#MenuItem
+ #label: '-'
+ )
+ #(#MenuItem
+ #label: 'Browse'
+ #translateLabel: true
+ #value: #browseClassInM
+ )
)
nil
nil
@@ -746,25 +770,63 @@
!VersionDiffBrowser methodsFor:'menu action'!
-inspectSelectedChangeInA
- |sel|
+browseChange:aChange
+ |class|
+
+ class := Smalltalk classNamed:(aChange className).
+ SystemBrowser openInClass:class selector:aChange selector.
+!
+
+browseClassInA
+ self browseChange:(self selectedChangeInA).
+!
- sel := self methodsOnlyInASelection value.
- sel notNil ifTrue:[
- (changeSetA at:sel) inspect
- ]
+browseClassInB
+ self browseChange:(self selectedChangeInB).
+!
+
+browseClassInM
+ self browseChange:(self selectedChangesInM first).
+!
+
+inspectSelectedChangeInA
+ self selectedChangeInA inspect.
!
inspectSelectedChangeInB
- |sel|
+ self selectedChangeInB inspect.
+!
+
+inspectSelectedChangeInM
+ |changes|
+
+ changes := self selectedChangesInM.
+ changes do:[:change |
+ change inspect
+ ].
+!
+
+selectedChangeInA
+ |sel change|
+
+ sel := self methodsOnlyInASelection value.
+ sel notNil ifTrue:[
+ change := (changeSetA at:sel).
+ ].
+ ^ change
+!
+
+selectedChangeInB
+ |sel change|
sel := self methodsOnlyInBSelection value.
sel notNil ifTrue:[
- (changeSetB at:sel) inspect
- ]
+ change := (changeSetB at:sel).
+ ].
+ ^ change
!
-inspectSelectedChangeInM
+selectedChangesInM
|sel idxA idxB|
sel := self methodsChangedSelection value.
@@ -772,9 +834,10 @@
idxA := indexFromChangedToA at:sel ifAbsent:nil.
idxB := indexFromChangedToB at:sel ifAbsent:nil.
- (changeSetA at:idxA) inspect.
- (changeSetB at:idxB) inspect.
- ]
+ ^ Array with:(changeSetA at:idxA)
+ with:(changeSetB at:idxB)
+ ].
+ ^ nil
! !
!VersionDiffBrowser methodsFor:'private'!
@@ -783,6 +846,8 @@
(self builder componentAt:#diffTextViewBox) raise; beVisible.
(self builder componentAt:#singleTextView) beInvisible.
(self builder componentAt:#diffTextView) realizeAllSubViews.
+ self addAcceptToTextViewMenus.
+
!
showSingleTextView
@@ -975,6 +1040,39 @@
!VersionDiffBrowser methodsFor:'values'!
+addAcceptToTextViewMenus
+ |m v|
+
+ (Array
+ with:diffTextView leftTextView
+ with:diffTextView rightTextView)
+ do:[:v |
+ m := v editMenu.
+ m addLabels:#('-' 'accept')
+ selectors:(Array with:nil with:#accept)
+ after:#copySelection.
+ m
+ actionAt:#accept
+ put:[|idx idx2 text change|
+
+ idx := self methodsChangedSelection value.
+
+ v == diffTextView leftTextView ifTrue:[
+ idx2 := indexFromChangedToA at:idx.
+ change := changeSetA at:idx2.
+ ] ifFalse:[
+ idx2 := indexFromChangedToB at:idx.
+ change := changeSetB at:idx2.
+ ].
+ change apply
+ ].
+ m selectorAt:#accept put:nil.
+ v menuHolder:m.
+ v menuMessage:#value.
+ ]
+
+!
+
diffTextView
"automatically generated by UIPainter ..."
@@ -983,6 +1081,8 @@
for:DiffTextView
miniScrollerH:true miniScrollerV:false.
diffTextView addNextPreviousButtons.
+
+ self addAcceptToTextViewMenus.
].
^ diffTextView
! !
@@ -990,5 +1090,5 @@
!VersionDiffBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.8 1999-10-06 12:03:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.9 1999-12-07 13:30:15 cg Exp $'
! !