Igor Stasenko uploaded a new version of DeltaStreams-Browser to project DeltaStreams: http://www.squeaksource.com/DeltaStreams/DeltaStreams-Browser-Igor.Stasenko....
==================== Summary ====================
Name: DeltaStreams-Browser-Igor.Stasenko.2 Author: Igor.Stasenko Time: 7 September 2009, 4:46:43 am UUID: 39e1b5dc-2a21-be46-8d40-b4dda2eb105f Ancestors: DeltaStreams-Browser-Igor.Stasenko.1
- covered all class change types - cleaned up the code a bit
=============== Diff against DeltaStreams-Browser-Igor.Stasenko.1 ===============
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyClassChange: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyClassChange: (in category 'dschange dispatch') ----- applyClassChange: aChange "Default handler for any class change." ^ { (self makeTextLabel: 'No view for ' , aChange class name) frame: (0@0 corner: 1 @ 1); yourself. } !
Item was added: + ----- Method: DSDeltaChangeViewer>>applyClassTypeChanged: (in category 'class changes') ----- + applyClassTypeChanged: aChange + "Changed the type of a class" + + ^ self buildClassChangePane: aChange + message: 'Class type changed' + showMeta: false + !
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyMethodAdded: (in category 'method changes') ----- - ----- Method: DSDeltaChangeViewer>>applyMethodAdded: (in category 'dschange dispatch') ----- applyMethodAdded: aChange
^ { (self makeTextLabel: 'Method added - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself.
(self makeTextLabel: aChange stamp, ' - ', aChange protocol) frame: (0@0.05 corner: 1 @ 0.1); yourself.
builder pluggableTextSpec new model: aChange; getText: #source; frame: (0@0.1 corner: 1 @ 1); yourself.
}!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyMethodRemoved: (in category 'method changes') ----- - ----- Method: DSDeltaChangeViewer>>applyMethodRemoved: (in category 'dschange dispatch') ----- applyMethodRemoved: aChange
^ { (self makeTextLabel: 'Method removed - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself.
(self makeTextLabel: aChange stamp, ' - ', aChange protocol) frame: (0@0.05 corner: 1 @ 0.1); yourself. builder pluggableTextSpec new model: aChange; getText: #source; frame: (0@0.1 corner: 1 @ 1); yourself.
}!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyClassRemoved: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyClassRemoved: (in category 'dschange dispatch') ----- applyClassRemoved: aChange
^ { (self makeTextLabel: 'Class removed - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself. builder pluggableCodePaneSpec new model: (self getEditorFor: aChange) definition; getText: #value; frame: (0@0.05 corner: 1 @ 1); yourself. }!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyClassCreated: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyClassCreated: (in category 'dschange dispatch') ----- applyClassCreated: aChange
^ { (self makeTextLabel: 'Class added - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself. builder pluggableCodePaneSpec new model: (self getEditorFor: aChange) definition; getText: #value; frame: (0@0.05 corner: 1 @ 1); yourself. }!
Item was changed: DSVisitor subclass: #DSDeltaChangeViewer instanceVariableNames: 'before change builder' classVariableNames: '' poolDictionaries: '' category: 'DeltaStreams-Browser'! + + !DSDeltaChangeViewer commentStamp: 'Igor.Stasenko 9/7/2009 16:25' prior: 0! + This is a DSChange viewer which using a ToolBuilder to construct a UI for + displaying a single delta change.!
Item was added: + ----- Method: DSDeltaChangeViewer>>applyClassNameChanged: (in category 'class changes') ----- + applyClassNameChanged: aChange + "Changed a class name." + ^ self buildClassChangePane: aChange + message: 'Class name changed' + showMeta: false + !
Item was changed: ----- Method: DSDeltaChangeViewer>>applyChange: (in category 'dschange dispatch') ----- applyChange: change + "We should never get here" + self shouldNotImplement + ! - ^ 'boom...'!
Item was changed: + ----- Method: DSDeltaChangeViewer>>makeLabel (in category 'utils') ----- - ----- Method: DSDeltaChangeViewer>>makeLabel (in category 'as yet unclassified') ----- makeLabel ^ builder pluggableInputFieldSpec new model: self; yourself!
Item was added: + ----- Method: DSDeltaChangeViewer>>applyClassVarsChanged: (in category 'class changes') ----- + applyClassVarsChanged: aChange + "Changed class vars, we ignore ordering as it is irrelevant - + they are actually kept in a Dictionary." + + ^ self buildClassChangePane: aChange + message: 'Class variables changed' + showMeta: false + !
Item was added: + ----- Method: DSDeltaChangeViewer>>applySharedPoolVarsChanged: (in category 'class changes') ----- + applySharedPoolVarsChanged: aChange + "Changed shared pool vars. Currently we just raise error if missing!!" + + ^ self buildClassChangePane: aChange + message: 'Class shared pools changed' + showMeta: false + !
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyClassCategoryChanged: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyClassCategoryChanged: (in category 'dschange dispatch') ----- applyClassCategoryChanged: aChange - ^ { - (self makeTextLabel: 'Class category changed - ', aChange timeStampString) - frame: (0@0 corner: 1 @ 0.05); yourself.
+ ^ self buildClassChangePane: aChange + message: 'Class category changed' + showMeta: false + ! - builder pluggableTextSpec new - model: - (self diffFrom: - ((self getEditorFor: aChange) category: aChange oldCategory; yourself) definition - to: (self getEditorFor: aChange) definition); - getText: #value; - frame: (0@0.05 corner: 1 @ 1); - yourself. - - }!
Item was changed: + ----- Method: DSDeltaChangeViewer>>buildViewOf:using: (in category 'utils') ----- - ----- Method: DSDeltaChangeViewer>>buildViewOf:using: (in category 'as yet unclassified') ----- buildViewOf: aChange using: aBuilder
builder := aBuilder. ^ aChange applyUsing: self.!
Item was changed: + ----- Method: DSDeltaChangeViewer>>getEditorFor: (in category 'utils') ----- - ----- Method: DSDeltaChangeViewer>>getEditorFor: (in category 'as yet unclassified') ----- getEditorFor: change
| superclassEditor classEditor | superclassEditor := SystemEditor new ensureClassNamed: change superclassName. classEditor := superclassEditor subclass: change className instanceVariableNames: change instVarNames asSpaceString classVariableNames: change classVarNames asSpaceString poolDictionaries: change poolDictionaryNames asSpaceString category: change category.
classEditor typeOfClass: change type. classEditor class instanceVariableNames: change classInstVarNames asSpaceString. classEditor classComment: change comment stamp: change stamp.
^ classEditor!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyClassInstVarsChanged: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyClassInstVarsChanged: (in category 'dschange dispatch') ----- applyClassInstVarsChanged: aChange + + ^ self buildClassChangePane: aChange + message: 'Class classinstance variables changed' + showMeta: true - ^ { - (self makeTextLabel: 'ClassInstance variables changed - ', aChange timeStampString ) - frame: (0@0 corner: 1 @ 0.05); yourself.
+ ! - (self makeTextLabel: ( - self diffFrom: ((self getEditorFor: aChange) classSide - instanceVariableNames: aChange oldVars; yourself) definitionST80 - to: (self getEditorFor: aChange) classSide definitionST80)) - frame: (0@0.05 corner: 1 @ 1); - yourself. - }!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyMethodChange: (in category 'method changes') ----- - ----- Method: DSDeltaChangeViewer>>applyMethodChange: (in category 'dschange dispatch') ----- applyMethodChange: aChange ^ { (self makeTextLabel: 'No view for ' , aChange class name) frame: (0@0 corner: 1 @ 1); yourself. } !
Item was changed: + ----- Method: DSDeltaChangeViewer>>applySuperclassChanged: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applySuperclassChanged: (in category 'dschange dispatch') ----- applySuperclassChanged: aChange - "Default handler for any class change." - | ed | - ed := self getEditorFor: aChange. - ed superclass: (ed system ensureClassNamed: aChange oldSuperclassName). - - ^ { - (self makeTextLabel: 'Class superclass changed - ', aChange timeStampString) - frame: (0@0 corner: 1 @ 0.05); yourself. - - (self makeTextLabel: - (self diffFrom: ed definition to: (self getEditorFor: aChange) definition)) - frame: (0@0.05 corner: 1 @ 1); - yourself.
+ ^ self buildClassChangePane: aChange + message: 'Class superclass changed' + showMeta: false + ! - }!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyMethodSourceChanged: (in category 'method changes') ----- - ----- Method: DSDeltaChangeViewer>>applyMethodSourceChanged: (in category 'dschange dispatch') ----- applyMethodSourceChanged: aChange "Change the source of a method"
^ { (self makeTextLabel: 'Method source changed - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself.
(self makeTextLabel: (self diffFrom: aChange oldStamp, ' - ', aChange protocol to: aChange newStamp, ' - ', aChange protocol)) frame: (0@0.05 corner: 1 @ 0.15); yourself. builder pluggableTextSpec new model: (self diffFrom: aChange oldSource to: aChange source); getText: #value; frame: (0@0.15 corner: 1 @ 1); yourself. } !
Item was changed: Object subclass: #DSDeltaInspector + instanceVariableNames: 'subject changeSelected displayBefore rightPane' - instanceVariableNames: 'subject changeSelected displayBefore chViewer rightPane' classVariableNames: '' poolDictionaries: '' category: 'DeltaStreams-Browser'!
Item was changed: + ----- Method: DSDeltaChangeViewer>>diffFrom:to: (in category 'utils') ----- - ----- Method: DSDeltaChangeViewer>>diffFrom:to: (in category 'as yet unclassified') ----- diffFrom: oldStr to: newStr ^ TextDiffBuilder buildDisplayPatchFrom: oldStr to: newStr!
Item was added: + ----- Method: DSDeltaChangeViewer>>classPaneFor:meta: (in category 'utils') ----- + classPaneFor: aChange meta: aBool + "Build a text panel which should show a class definition, or metaclass definition" + + | ed oldEd text | + + ed := self getEditorFor: aChange. + oldEd := self getOldEditorFor: aChange. + + text := aBool ifTrue: [ self diffFrom: oldEd classSide definitionST80 to: ed classSide definitionST80] + ifFalse: [ self diffFrom: oldEd definitionST80 to: ed definitionST80]. + ^ self makeTextLabel: text + !
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyMethodProtocolChanged: (in category 'method changes') ----- - ----- Method: DSDeltaChangeViewer>>applyMethodProtocolChanged: (in category 'dschange dispatch') ----- applyMethodProtocolChanged: aChange
^ { (self makeTextLabel: 'Method protocol changed - ', aChange timeStampString) frame: (0@0 corner: 1 @ 0.05); yourself.
(self makeTextLabel: (self diffFrom: aChange stamp, ' - ', aChange oldProtocol to: aChange stamp, ' - ', aChange newProtocol)) frame: (0@0.05 corner: 1 @ 0.15); yourself. builder pluggableTextSpec new model: aChange; getText: #source; frame: (0@0.15 corner: 1 @ 1); yourself. }!
Item was added: + ----- Method: DSDeltaChangeViewer>>buildClassChangePane:message:showMeta: (in category 'utils') ----- + buildClassChangePane: aChange message: aMessage showMeta: aBool + "Common method for building the right pane to display a class change" + + ^ { + (self makeTextLabel: aMessage , ' - ', aChange timeStampString) + frame: (0@0 corner: 1 @ 0.05); yourself. + + (self classPaneFor: aChange meta: aBool) + frame: (0@0.05 corner: 1 @ 1); + yourself. + }!
Item was added: + ----- Method: DSDeltaChangeViewer>>getOldEditorFor: (in category 'utils') ----- + getOldEditorFor: change + + | superclassEditor classEditor | + superclassEditor := SystemEditor new ensureClassNamed: change oldSuperclassName. + + classEditor := superclassEditor + subclass: change oldName + instanceVariableNames: change oldInstVarNames asSpaceString + classVariableNames: change oldClassVarNames asSpaceString + poolDictionaries: change oldPoolDictionaryNames asSpaceString + category: change oldCategory. + + classEditor typeOfClass: change oldType. + classEditor class instanceVariableNames: change oldClassInstVarNames asSpaceString. + classEditor classComment: change oldComment stamp: change oldStamp. + + ^ classEditor!
Item was changed: + ----- Method: DSDeltaChangeViewer>>makeTextLabel: (in category 'utils') ----- - ----- Method: DSDeltaChangeViewer>>makeTextLabel: (in category 'as yet unclassified') ----- makeTextLabel: aString
^ self makeLabel model: aString; getText: #value; yourself. !
Item was added: + ----- Method: DSDeltaChangeViewer>>applyClassCommentChanged: (in category 'class changes') ----- + applyClassCommentChanged: aChange + ^ { + (self makeTextLabel: 'Class comment changed - ', aChange timeStampString) + frame: (0@0 corner: 1 @ 0.05); yourself. + + (self makeTextLabel: + (self diffFrom: aChange oldStamp to: aChange stamp)) + frame: (0@0.05 corner: 1 @ 0.15); yourself. + + builder pluggableTextSpec new + model: (self diffFrom: aChange oldComment to: aChange comment); + getText: #value; + frame: (0@0.15 corner: 1 @ 1); + yourself. + }!
Item was changed: + ----- Method: DSDeltaChangeViewer>>applyInstVarsChanged: (in category 'class changes') ----- - ----- Method: DSDeltaChangeViewer>>applyInstVarsChanged: (in category 'dschange dispatch') ----- applyInstVarsChanged: aChange + + ^ self buildClassChangePane: aChange + message: 'Instance variables changed' + showMeta: false - ^ { - (self makeTextLabel: 'Instance variables changed - ', aChange timeStampString ) - frame: (0@0 corner: 1 @ 0.05); yourself.
+ ! - (self makeTextLabel: ( - self diffFrom: ((self getEditorFor: aChange) - instanceVariableNames: aChange oldVars; yourself) definition - to: (self getEditorFor: aChange) definition)) - frame: (0@0.05 corner: 1 @ 1); - yourself. - }!
Item was removed: - ----- Method: DSDeltaInspector>>initialize (in category 'as yet unclassified') ----- - initialize - chViewer := DSDeltaChangeViewer new!
packages@lists.squeakfoundation.org