--- a/VersionDiffBrowser.st Wed Jul 24 23:35:27 2002 +0200
+++ b/VersionDiffBrowser.st Wed Jul 24 23:41:40 2002 +0200
@@ -94,7 +94,7 @@
#name: 'Version DiffBrowser'
#min: #(#Point 10 10)
#max: #(#Point nil nil)
- #bounds: #(#Rectangle 12 22 877 526)
+ #bounds: #(#Rectangle 157 154 1022 658)
#menu: #mainMenu
)
#component:
@@ -253,6 +253,7 @@
#hasHorizontalScrollBar: true
#hasVerticalScrollBar: true
#miniScrollerHorizontal: true
+ #isReadOnly: true
)
)
@@ -364,11 +365,13 @@
#label: 'Apply'
#translateLabel: true
#value: #applySelectedChangeInA
+ #enabled: #hasChangeSelectedInA
)
#(#MenuItem
#label: 'Browse'
#translateLabel: true
#value: #browseClassInA
+ #enabled: #hasChangeSelectedInA
)
#(#MenuItem
#label: '-'
@@ -378,6 +381,7 @@
#translateLabel: true
#value: #inspectSelectedChangeInA
#choiceValue: 'nil "UndefinedObject" '
+ #enabled: #hasChangeSelectedInA
)
)
nil
@@ -406,11 +410,13 @@
#label: 'Apply'
#translateLabel: true
#value: #applySelectedChangeInB
+ #enabled: #hasChangeSelectedInB
)
#(#MenuItem
#label: 'Browse'
#translateLabel: true
#value: #browseClassInB
+ #enabled: #hasChangeSelectedInB
)
#(#MenuItem
#label: '-'
@@ -420,6 +426,7 @@
#translateLabel: true
#value: #inspectSelectedChangeInB
#choiceValue: 'nil "UndefinedObject" '
+ #enabled: #hasChangeSelectedInA
)
)
nil
@@ -448,6 +455,7 @@
#label: 'Browse'
#translateLabel: true
#value: #browseClassInM
+ #enabled: #hasChangeSelectedInM
)
#(#MenuItem
#label: '-'
@@ -457,6 +465,7 @@
#translateLabel: true
#value: #inspectSelectedChangeInM
#choiceValue: 'nil "UndefinedObject" '
+ #enabled: #hasChangeSelectedInM
)
)
nil
@@ -707,10 +716,9 @@
sel := self methodsOnlyInASelection value.
sel notNil ifTrue:[
- change := (self changeSetA at:sel).
- ^ change
+ change := self changeSetA at:sel.
].
- ^ nil
+ ^ change
!
selectedChangeInB
@@ -724,9 +732,8 @@
sel := self methodsOnlyInBSelection value.
sel notNil ifTrue:[
change := (self changeSetB at:sel).
- ^ change
].
- ^ nil
+ ^ change
!
selectedChangesInM
@@ -740,11 +747,12 @@
sel := self methodsChangedSelection value.
sel notNil ifTrue:[
theTwoChanges := self classChangeSet methodsChanged at:sel.
- changeA := theTwoChanges first.
- changeB := theTwoChanges second.
- ^ Array with:changeA with:changeB
+"/ changeA := theTwoChanges first.
+"/ changeB := theTwoChanges second.
+"/ ^ Array with:changeA with:changeB.
+ ^ theTwoChanges.
].
- ^ nil
+ ^ #(nil nil)
!
versionA
@@ -1029,6 +1037,26 @@
^ onlyInBLabelHolder.
! !
+!VersionDiffBrowser methodsFor:'aspects - menu'!
+
+canAcceptInCodeView
+ ^ self hasChangeSelectedInA
+ or:[self hasChangeSelectedInB
+ or:[self hasChangeSelectedInM]]
+!
+
+hasChangeSelectedInA
+ ^ self selectedChangeInA notNil
+!
+
+hasChangeSelectedInB
+ ^ self selectedChangeInB notNil
+!
+
+hasChangeSelectedInM
+ ^ self methodsChangedSelection value notNil
+! !
+
!VersionDiffBrowser methodsFor:'aspects-exported'!
changedLabelHolder:aValueHolder
@@ -1115,11 +1143,11 @@
!VersionDiffBrowser methodsFor:'menu action'!
applySelectedChangeInA
- self selectedChangeInA apply
+ self applyChange:(self selectedChangeInA)
!
applySelectedChangeInB
- self selectedChangeInB apply
+ self applyChange:(self selectedChangeInB)
!
browseChange:aChange
@@ -1283,6 +1311,30 @@
!VersionDiffBrowser methodsFor:'private'!
+acceptInLeftView
+ |change|
+
+ change := self selectedChangesInM first.
+ self applyChange:change
+!
+
+acceptInRightView
+ |change|
+
+ change := self selectedChangesInM second.
+ self applyChange:change
+!
+
+acceptInSingleView
+ |change|
+
+ change := self selectedChangeInA.
+ change isNil ifTrue:[
+ change := self selectedChangeInB
+ ].
+ self applyChange:change
+!
+
addAcceptToTextViewMenus
"
add to the standard diff text view or single text views menu an accept entry.
@@ -1313,35 +1365,30 @@
m
actionAt:#accept
put:[
- |idx idx2 text change changeSet|
-
- changeSet := self classChangeSet.
-
v == singleView ifTrue:[
- self methodsOnlyInASelection value notNil
- ifTrue: [
- change := (changeSet methodsOnlyInA at: self methodsOnlyInASelection value)
+ self acceptInSingleView
+ ] ifFalse:[
+ v == leftView ifTrue:[
+ self acceptInLeftView
] ifFalse:[
- change := (changeSet methodsOnlyInB at: self methodsOnlyInBSelection value)
+ self acceptInRightView
].
- ] ifFalse:[
- idx := self methodsChangedSelection value.
-
- v == leftView ifTrue:[
- change := (changeSet methodsChanged at:idx) first.
- ] ifFalse:[
- change := (changeSet methodsChanged at:idx) second.
- ].
].
- change apply
].
m selectorAt:#accept put:nil.
m enable:#copySelection.
+ m setEnable:#accept to:[self halt. self canAcceptInCodeView].
v menuHolder:m.
v menuMessage:#value.
]
!
+applyChange:change
+ change notNil ifTrue:[
+ change apply
+ ]
+!
+
generator
"
generate a print string for a change.
@@ -1965,5 +2012,5 @@
!VersionDiffBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.55 2002-07-17 13:55:41 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/VersionDiffBrowser.st,v 1.56 2002-07-24 21:41:40 cg Exp $'
! !