Added ChangeEditor, a class for viewing/editong
single change. Not yet used.
--- a/Tools__ChangeSetBrowser2.st Tue Nov 29 11:27:19 2011 +0100
+++ b/Tools__ChangeSetBrowser2.st Tue Nov 29 11:30:07 2011 +0100
@@ -40,6 +40,14 @@
category:'Interface-Browsers-ChangeSet'
!
+ApplicationModel subclass:#ChangeEditor
+ instanceVariableNames:'changeHolder readonlyHolder showdiffHolder sourceChangeHolder
+ sourceImageHolder'
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:ChangeSetBrowser2
+!
+
!ChangeSetBrowser2 class methodsFor:'documentation'!
copyright
@@ -2227,14 +2235,286 @@
"Created: / 04-08-2011 / 18:25:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!ChangeSetBrowser2::ChangeEditor class methodsFor:'documentation'!
+
+documentation
+"
+ A simple, embeddable window to show a single change.
+ If readonlyHolder's value is false, then user is
+ allowed to edit the change (i.e., modify the source code)
+
+ [author:]
+ Jan Vrany <jan.vrany@fit.cvut.cz>
+
+ [instance variables:]
+
+ [class variables:]
+
+ [see also:]
+
+"
+!
+
+examples
+"
+ Starting the application:
+ [exBegin]
+ Tools::ChangeEditor open
+
+ [exEnd]
+
+ more examples to be added:
+ [exBegin]
+ ... add code fragment for
+ ... executable example here ...
+ [exEnd]
+"
+! !
+
+!ChangeSetBrowser2::ChangeEditor class methodsFor:'interface specs'!
+
+windowSpec
+ "This resource specification was automatically generated
+ by the UIPainter of ST/X."
+
+ "Do not manually edit this!! If it is corrupted,
+ the UIPainter may not be able to read the specification."
+
+ "
+ UIPainter new openOnClass:Tools::ChangeSetBrowser2::ChangeEditor andSelector:#windowSpec
+ Tools::ChangeSetBrowser2::ChangeEditor new openInterface:#windowSpec
+ Tools::ChangeSetBrowser2::ChangeEditor open
+ "
+
+ <resource: #canvas>
+
+ ^
+ #(FullSpec
+ name: windowSpec
+ window:
+ (WindowSpec
+ label: 'Change Editor'
+ name: 'Change Editor'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 579 341)
+ )
+ component:
+ (SpecCollection
+ collection: (
+ (SubCanvasSpec
+ name: 'TextDiffTool'
+ layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+ hasHorizontalScrollBar: false
+ hasVerticalScrollBar: false
+ majorKey: #'Tools::TextDiffTool'
+ minorKey: windowSpecForEmbedding
+ subAspectHolders:
+ (Array
+
+ (SubChannelInfoSpec
+ subAspect: classHolder
+ aspect: classAspect
+ )
+ (SubChannelInfoSpec
+ subAspect: codeAspectHolder
+ aspect: codeAspect
+ )
+
+ (SubChannelInfoSpec
+ subAspect: labelAHolder
+ aspect: labelAHolder
+ )
+ (SubChannelInfoSpec
+ subAspect: labelBHolder
+ aspect: labelBHolder
+ )
+
+ (SubChannelInfoSpec
+ subAspect: showDiffHolder
+ aspect: showdiffHolder
+ )
+ (SubChannelInfoSpec
+ subAspect: textAHolder
+ aspect: sourceChangeHolder
+ )
+
+ (SubChannelInfoSpec
+ subAspect: textBHolder
+ aspect: sourceImageHolder
+ )
+ )
+ createNewApplication: true
+ createNewBuilder: true
+ )
+ )
+
+ )
+ )
+! !
+
+!ChangeSetBrowser2::ChangeEditor methodsFor:'accessing'!
+
+sourceChangeHolder
+ ^ sourceChangeHolder
+!
+
+sourceChangeHolder:something
+ sourceChangeHolder := something.
+!
+
+sourceImageHolder
+ ^ sourceImageHolder
+!
+
+sourceImageHolder:something
+ sourceImageHolder := something.
+! !
+
+!ChangeSetBrowser2::ChangeEditor methodsFor:'aspects'!
+
+changeHolder
+ "return/create the 'changeHolder' value holder (automatically generated)"
+
+ changeHolder isNil ifTrue:[
+ changeHolder := ValueHolder new.
+ changeHolder addDependent:self.
+ ].
+ ^ changeHolder
+!
+
+changeHolder:something
+ "set the 'changeHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ changeHolder notNil ifTrue:[
+ oldValue := changeHolder value.
+ changeHolder removeDependent:self.
+ ].
+ changeHolder := something.
+ changeHolder notNil ifTrue:[
+ changeHolder addDependent:self.
+ ].
+ newValue := changeHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:changeHolder.
+ ].
+!
+
+classAspect
+
+ ^(AspectAdaptor forAspect: #changeClass)
+ subjectChannel: self changeHolder
+
+ "Created: / 29-11-2011 / 11:21:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+codeAspect
+
+ ^BlockValue
+ with: [:change|
+ change isMethodCodeChange
+ ifTrue:[#method]
+ ifFalse:[#expression]
+ ] argument: self changeHolder
+
+ "Created: / 29-11-2011 / 11:21:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+labelAText
+
+ ^'Change'
+
+ "Created: / 27-11-2011 / 14:59:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+labelBText
+
+ ^'Current (in image)'
+
+ "Created: / 27-11-2011 / 14:59:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+readonlyHolder
+ "return/create the 'readonlyHolder' value holder (automatically generated)"
+
+ readonlyHolder isNil ifTrue:[
+ readonlyHolder := ValueHolder new.
+ readonlyHolder addDependent:self.
+ ].
+ ^ readonlyHolder
+!
+
+readonlyHolder:something
+ "set the 'readonlyHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ readonlyHolder notNil ifTrue:[
+ oldValue := readonlyHolder value.
+ readonlyHolder removeDependent:self.
+ ].
+ readonlyHolder := something.
+ readonlyHolder notNil ifTrue:[
+ readonlyHolder addDependent:self.
+ ].
+ newValue := readonlyHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:readonlyHolder.
+ ].
+!
+
+showdiffHolder
+ "return/create the 'showdiffHolder' value holder (automatically generated)"
+
+ showdiffHolder isNil ifTrue:[
+ showdiffHolder := ValueHolder new.
+ ].
+ ^ showdiffHolder
+!
+
+showdiffHolder:something
+ "set the 'showdiffHolder' value holder (automatically generated)"
+
+ showdiffHolder := something.
+! !
+
+!ChangeSetBrowser2::ChangeEditor methodsFor:'change & update'!
+
+changeChanged
+
+ "changeHolder has changed, update sources etc..."
+
+ | change |
+ change := changeHolder value.
+
+ sourceChangeHolder value: change changeSource.
+ sourceImageHolder value: change imageSource.
+
+ "Created: / 29-11-2011 / 11:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+update:something with:aParameter from:changedObject
+ "Invoked when an object that I depend upon sends a change notification."
+
+
+ changedObject == changeHolder ifTrue:[
+ self changeChanged.
+ ^ self.
+ ].
+ super update:something with:aParameter from:changedObject
+
+ "Modified: / 29-11-2011 / 11:15:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!ChangeSetBrowser2 class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetBrowser2.st,v 1.22 2011-11-25 15:43:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetBrowser2.st,v 1.23 2011-11-29 10:30:07 vrany Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetBrowser2.st,v 1.22 2011-11-25 15:43:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeSetBrowser2.st,v 1.23 2011-11-29 10:30:07 vrany Exp $'
!
version_SVN