author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sun, 05 Feb 2012 01:49:41 +0000 | |
branch | jv |
changeset 12144 | 18c25ec50d96 |
parent 12123 | 4bde08cebd48 |
child 12179 | 47f98e7d6de1 |
permissions | -rw-r--r-- |
"{ Package: 'stx:libtool' }" "{ NameSpace: Tools }" SmalltalkDiffTool subclass:#SmalltalkMergeTool instanceVariableNames:'resolvedHolder changeSetHolder' classVariableNames:'' poolDictionaries:'' category:'Interface-Diff & Merge tool' ! SmalltalkDiffTool::DiffItem subclass:#DiffItem instanceVariableNames:'versionMerged state' classVariableNames:'' poolDictionaries:'' privateIn:SmalltalkMergeTool ! !SmalltalkMergeTool class methodsFor:'documentation'! documentation " documentation to be added. [author:] Jan Vrany (janfrog@bruxa) [instance variables:] [class variables:] [see also:] " ! examples " Starting the application: [exBegin] MergeTool open [exEnd] more examples to be added: [exBegin] ... add code fragment for ... executable example here ... [exEnd] " ! history "Created: / 06-12-2007 / 11:00:54 / janfrog" ! ! !SmalltalkMergeTool class methodsFor:'initialization'! initialize "self initialize" |menuItem| menuItem := (MenuItem label:'Merge tool') nameKey:'MergeTool'; value:[SmalltalkMergeTool open]; isButton:false. NewLauncher addMenuItem:menuItem from:self in:'menu.tools.programming' position:#(before startSmaCCParserGenerator) space:false. "Created: / 11-12-2007 / 19:12:08 / janfrog" "Modified: / 09-08-2009 / 14:15:12 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified (format): / 03-07-2011 / 22:30:30 / cg" ! ! !SmalltalkMergeTool class methodsFor:'interface specs'! conflictsListSpec "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:MergeTool andSelector:#conflictsListSpec MergeTool new openInterface:#conflictsListSpec " <resource: #canvas> ^ #(FullSpec name: conflictsListSpec window: (WindowSpec label: 'VersionBothListSpec' name: 'VersionBothListSpec' min: (Point 10 10) bounds: (Rectangle 0 0 306 406) ) component: (SpecCollection collection: ( (LabelSpec label: 'Conflicts (present in both A and B)' name: 'VersionBothLabel' layout: (LayoutFrame 0 0 0 0 0 1 30 0) translateLabel: true labelChannel: conflictsLabelHolder ) (SelectionInListModelViewSpec name: 'VersionBothList' layout: (LayoutFrame 0 0 30 0 0 1 0 1) model: selectionHolder menu: resolveMenu hasHorizontalScrollBar: true hasVerticalScrollBar: true listModel: conflictsListHolder multipleSelectOk: true useIndex: false highlightMode: line ) ) ) ) "Modified: / 11-12-2007 / 16:46:23 / janfrog" "Created: / 19-04-2008 / 12:58:29 / Jan Vrany <vranyj1@fel.cvut.cz>" ! inAOnlyListSpec "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:MergeTool andSelector:#inAOnlyListSpec MergeTool new openInterface:#inAOnlyListSpec " <resource: #canvas> ^ #(FullSpec name: inAOnlyListSpec window: (WindowSpec label: 'VersionAOnlyListSpec' name: 'VersionAOnlyListSpec' min: (Point 10 10) bounds: (Rectangle 0 0 306 406) ) component: (SpecCollection collection: ( (LabelSpec label: 'In A only' name: 'VersionAOnlyLabel' layout: (LayoutFrame 0 0 0 0 0 1 30 0) translateLabel: true labelChannel: inAOnlyLabelHolder ) (SelectionInListModelViewSpec name: 'VersionAOnlyList' layout: (LayoutFrame 0 0 30 0 0 1 0 1) model: selectionHolder menu: resolveMenu hasHorizontalScrollBar: true hasVerticalScrollBar: true listModel: inAOnlyListHolder multipleSelectOk: true useIndex: false highlightMode: line postBuildCallback: postBuildVersionAListWidget: ) ) ) ) "Modified: / 11-12-2007 / 16:46:29 / janfrog" "Created: / 19-04-2008 / 12:58:29 / Jan Vrany <vranyj1@fel.cvut.cz>" ! inBOnlyListSpec "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:MergeTool andSelector:#inBOnlyListSpec MergeTool new openInterface:#inBOnlyListSpec " <resource: #canvas> ^ #(FullSpec name: inBOnlyListSpec window: (WindowSpec label: 'VersionBOnlyListSpec' name: 'VersionBOnlyListSpec' min: (Point 10 10) bounds: (Rectangle 0 0 306 406) ) component: (SpecCollection collection: ( (LabelSpec label: 'In B only' name: 'VersionBOnlyLabel' layout: (LayoutFrame 0 0 0 0 0 1 30 0) translateLabel: true labelChannel: inBOnlyLabelHolder ) (SelectionInListModelViewSpec name: 'VersionBOnlyList' layout: (LayoutFrame 0 0 30 0 0 1 0 1) model: selectionHolder menu: resolveMenu hasHorizontalScrollBar: true hasVerticalScrollBar: true listModel: inBOnlyListHolder multipleSelectOk: true postBuildCallback: postBuildVersionBListWidget: useIndex: false highlightMode: line ) ) ) ) "Modified: / 11-12-2007 / 16:46:33 / janfrog" "Created: / 19-04-2008 / 12:58:29 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool class methodsFor:'menu specs'! mainMenu "This resource specification was automatically generated by the MenuEditor of ST/X." "Do not manually edit this!! If it is corrupted, the MenuEditor may not be able to read the specification." " MenuEditor new openOnClass:Tools::MergeTool andSelector:#mainMenu (Menu new fromLiteralArrayEncoding:(Tools::MergeTool mainMenu)) startUp " <resource: #menu> ^ #(Menu ( (MenuItem label: 'File' translateLabel: true submenu: (Menu ( (MenuItem label: 'Open file' itemValue: fileMenuMergeFileIntoImage translateLabel: true ) (MenuItem label: '-' ) (MenuItem label: 'Apply resolved' itemValue: fileMenuApplyResolved translateLabel: true ) (MenuItem label: '-' ) (MenuItem label: 'Exit' itemValue: closeRequest translateLabel: true ) ) nil nil ) ) (MenuItem label: 'Resolve' translateLabel: true submenuChannel: resolveMenu ) (MenuItem label: 'Help' translateLabel: true startGroup: right submenu: (Menu ( (MenuItem label: 'About this Application...' itemValue: openAboutThisApplication translateLabel: true ) ) nil nil ) ) ) nil nil ) "Modified: / 08-11-2008 / 11:09:41 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolveMenu "This resource specification was automatically generated by the MenuEditor of ST/X." "Do not manually edit this!! If it is corrupted, the MenuEditor may not be able to read the specification." " MenuEditor new openOnClass:Tools::MergeTool andSelector:#resolveMenu (Menu new fromLiteralArrayEncoding:(Tools::MergeTool resolveMenu)) startUp " <resource: #menu> ^ #(Menu ( (MenuItem enabled: selectionIsNonEmptyAndAllHasVersionA label: 'Resolve using version A <-' itemValue: resolveMenuResolveUsingA translateLabel: true ) (MenuItem enabled: selectionIsNonEmptyAndAllHasVersionB label: 'Resolve using version B ->' itemValue: resolveMenuResolveUsingB translateLabel: true ) (MenuItem enabled: selectionIsNonEmpty label: 'Delete' itemValue: resolveMenuDelete translateLabel: true ) (MenuItem enabled: selectionIsNonEmpty label: 'Unresolve' itemValue: resolveMenuUnresolve translateLabel: true ) (MenuItem label: '-' ) (MenuItem enabled: false label: 'Show changeset' translateLabel: true indication: showMergingChangeSetHolder ) ) nil nil ) "Modified: / 08-11-2008 / 11:06:43 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool class methodsFor:'plugIn spec'! aspectSelectors ^super aspectSelectors, #( #resolvedHolder #changeSetHolder ). "Created: / 02-04-2009 / 22:04:50 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified: / 09-04-2009 / 09:21:32 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool methodsFor:'accessing'! diffItemClass ^SmalltalkMergeTool::DiffItem "Created: / 21-05-2008 / 14:39:38 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified: / 09-08-2009 / 14:57:46 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool methodsFor:'aspects'! changeSetHolder "return/create the 'changeSetHolder' value holder (automatically generated)" changeSetHolder isNil ifTrue:[ changeSetHolder := ValueHolder new. ]. ^ changeSetHolder ! changeSetHolder:aValueHolder "set the 'changeSetHolder' value holder (automatically generated)" changeSetHolder := aValueHolder. ! resolvedHolder resolvedHolder ifNil: [resolvedHolder := false asValue]. ^resolvedHolder "Created: / 02-04-2009 / 21:53:19 / Jan Vrany <vranyj1@fel.cvut.cz>" ! selectionHolder selectionHolder ifNil: [selectionHolder := List new asValue. selectionHolder onChangeSend:#selectionChanged to: self]. ^selectionHolder "Created: / 21-05-2008 / 19:30:59 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool methodsFor:'change & update'! resolutionChanged super resolutionChanged. self resolvedHolder value: self resolved. self changeSetHolder value: self changeSet. "Created: / 22-10-2008 / 10:50:35 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified: / 02-04-2009 / 22:04:06 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool methodsFor:'menu actions'! fileMenuApplyResolved (Dialog confirm:'Really apply resolved?') ifFalse:[ ^ self ]. self inAOnlyListHolder value:(self inAOnlyListHolder value reject:[:e | e isResolved ]). self conflictsListHolder value:(self conflictsListHolder value reject:[:e | e isResolved ]). self inBOnlyListHolder value:(self inBOnlyListHolder value reject:[:e | e isResolved ]). self fileMenuApplyResolved:self changeSetToApply "Modified: / 12-12-2007 / 08:37:21 / janfrog" "Created: / 08-11-2008 / 11:08:34 / Jan Vrany <vranyj1@fel.cvut.cz>" ! fileMenuApplyResolved:aChangeSet (Class updateChangeFileQuerySignal , Class updateChangeListQuerySignal) answer:false do:[ aChangeSet apply ] "Modified: / 12-12-2007 / 08:36:04 / janfrog" "Created: / 08-11-2008 / 11:08:44 / Jan Vrany <vranyj1@fel.cvut.cz>" ! fileMenuMergeFileIntoImage |filename| filename := Dialog requestFileName:'Enter fileout or change file' pattern:'*.st;*.cha'. filename isNilOrEmptyCollection ifTrue:[^self]. filename := filename asFilename. filename isRegularFile ifFalse:[^Dialog warn:'Selected file is not a regular file']. filename isReadable ifFalse:[^Dialog warn:'Selected file is not readable']. [ self diffSet: (ChangeSet fromFile: filename) diffSetsAgainstImage labelA: filename components last labelB: 'image' ] on: Error do:[:ex| Dialog warn: 'Error when reading changeset: ', ex description. ex pass ] "Created: / 11-12-2007 / 16:59:04 / janfrog" "Modified: / 12-12-2007 / 15:12:01 / janfrog" ! resolveMenuDelete self selection do: [:mergeItem|mergeItem delete]. self resolutionChanged "Modified: / 11-12-2007 / 16:54:51 / janfrog" ! resolveMenuResolveUsingA self selection do: [:mergeItem|mergeItem resolveUsingA]. self resolutionChanged "Modified: / 11-12-2007 / 16:54:56 / janfrog" ! resolveMenuResolveUsingB self selection do: [:mergeItem|mergeItem resolveUsingB]. self resolutionChanged "Modified: / 11-12-2007 / 16:55:01 / janfrog" ! resolveMenuUnresolve self selection do: [:mergeItem|mergeItem unresolve]. self resolutionChanged "Modified: / 11-12-2007 / 16:55:05 / janfrog" ! ! !SmalltalkMergeTool methodsFor:'private'! changeSet ^ChangeSet withAll: ((self inAOnlyListHolder value , self conflictsListHolder value, self inBOnlyListHolder value) select:[:e|e isResolved] thenCollect:[:e|e versionMerged]) "Created: / 02-04-2009 / 22:03:25 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolved ^ (self inAOnlyListHolder value allSatisfy:[:e | e isResolved ]) and:[ (self conflictsListHolder value allSatisfy:[:e | e isResolved ]) and:[ (self inBOnlyListHolder value allSatisfy:[:e | e isResolved ]) ] ] "Created: / 21-10-2008 / 09:51:03 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem class methodsFor:'documentation'! version ^'$Id: Tools__SmalltalkMergeTool.st,v 1.2 2011/07/03 20:56:26 cg Exp $' ! ! !SmalltalkMergeTool::DiffItem class methodsFor:'image specs'! resolvedAsRemoveIcon "This resource specification was automatically generated by the ImageEditor of ST/X." "Do not manually edit this!! If it is corrupted, the ImageEditor may not be able to read the specification." " self resolvedAsRemoveIcon inspect ImageEditor openOnClass:self andSelector:#resolvedAsRemoveIcon Icon flushCachedIcons " <resource: #image> ^Icon constantNamed:'Tools::MergeTool::DiffItem class resolvedAsRemoveIcon' ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#[2]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@T@AP@EPAT@@UAT@@AUT@@@ET@@@AU@@@AUT@@ATEP@AT@U@@T@AP@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 255 0 0 170 170 170 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' ?????<@C6A/\N<931>OC0<OC1>ON\=0;6A/@@?????<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself] "Created: / 08-11-2008 / 10:58:51 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolvedAsVersionAIcon <resource: #image> "This resource specification was automatically generated by the ImageEditor of ST/X." "Do not manually edit this!! If it is corrupted, the ImageEditor may not be able to read the specification." " self resolvedUsingVersionAIcon inspect ImageEditor openOnClass:self andSelector:#resolvedUsingVersionAIcon Icon flushCachedIcons" ^ Icon constantNamed:'Tools::MergeTool::DiffItem class resolvedUsingVersionAIcon' ifAbsentPut:[ (Depth2Image new) width:16; height:16; photometric:(#palette); bitsPerSample:(#[ 2 ]); samplesPerPixel:((1)); bits:(ByteArray fromPackedString:'@@@@@@@@@@@EUUUPAUPUT@UTEU@ET@UPAU@ET@UAPU@EPTEPAPUPT@T@@E@D@@@PAAUTD@UUUU@@@@@@@@@@@@@a'); colorMapFromArray:#[ 0 0 0 191 255 191 30 255 30 255 255 255 ]; mask:((Depth1Image new) width:16; height:16; photometric:(#blackIs0); bitsPerSample:(#[ 1 ]); samplesPerPixel:((1)); bits:(ByteArray fromPackedString:' ??????????????????????????????????????????<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself ] "Created: / 08-11-2008 / 10:59:10 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolvedAsVersionBIcon <resource: #image> "This resource specification was automatically generated by the ImageEditor of ST/X." "Do not manually edit this!! If it is corrupted, the ImageEditor may not be able to read the specification." " self resolvedUsingVersionBIcon inspect ImageEditor openOnClass:self andSelector:#resolvedUsingVersionBIcon Icon flushCachedIcons" ^ Icon constantNamed:'Tools::MergeTool::DiffItem class resolvedUsingVersionBIcon' ifAbsentPut:[ (Depth2Image new) width:16; height:16; photometric:(#palette); bitsPerSample:(#[ 2 ]); samplesPerPixel:((1)); bits:(ByteArray fromPackedString:'@@@@@@@@@@@EUUUPAT@ET@UAPU@EPTEPATEAT@U@AU@EP@UPATEAT@UAPU@EPTEPAT@ET@UUUU@@@@@@@@@@@@@a'); colorMapFromArray:#[ 0 0 0 255 191 191 30 255 30 255 255 255 ]; mask:((Depth1Image new) width:16; height:16; photometric:(#blackIs0); bitsPerSample:(#[ 1 ]); samplesPerPixel:((1)); bits:(ByteArray fromPackedString:' ??????????????????????????????????????????<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a'); yourself); yourself ] "Created: / 08-11-2008 / 10:59:01 / Jan Vrany <vranyj1@fel.cvut.cz>" ! unresolvedIcon "This resource specification was automatically generated by the ImageEditor of ST/X." "Do not manually edit this!! If it is corrupted, the ImageEditor may not be able to read the specification." " self unresolvedIcon inspect ImageEditor openOnClass:self andSelector:#unresolvedIcon Icon flushCachedIcons " <resource: #image> ^Icon constantNamed:'Tools::MergeTool::DiffItem class unresolvedIcon' ifAbsentPut:[(Depth2Image new) width: 16; height: 16; photometric:(#palette); bitsPerSample:(#[2]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; colorMapFromArray:#[0 0 0 84 84 84 170 170 170 255 255 255]; mask:((Depth1Image new) width: 16; height: 16; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:' ?????<@C0@O@@<@C0@O@@<@C0@O@@<@C0@O@@?????<@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a') ; yourself); yourself] "Created: / 08-11-2008 / 10:41:16 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem class methodsFor:'instance creation'! versionA: changeA ^self new versionA: changeA; versionMerged: changeA; state: #merged "Created: / 21-05-2008 / 14:14:31 / Jan Vrany <vranyj1@fel.cvut.cz>" ! versionB: changeB ^self new versionB: changeB; versionMerged: changeB; state: #merged "Created: / 21-05-2008 / 14:14:47 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem methodsFor:'accessing'! icon state = #unresolved ifTrue:[^self class unresolvedIcon]. state = #deleted ifTrue:[^self class resolvedAsRemoveIcon]. versionMerged = versionA ifTrue:[^self class resolvedAsVersionAIcon]. versionMerged = versionB ifTrue:[^self class resolvedAsVersionBIcon]. ^self class unresolvedIcon "Created: / 08-11-2008 / 10:59:37 / Jan Vrany <vranyj1@fel.cvut.cz>" ! state ^ state ? #unresolved "Modified: / 06-12-2007 / 20:55:20 / janfrog" "Created: / 21-05-2008 / 11:52:59 / Jan Vrany <vranyj1@fel.cvut.cz>" ! state:aSymbol self assert:(#(unresolved deleted merged) includes: aSymbol). state := aSymbol. "Created: / 21-05-2008 / 11:52:59 / Jan Vrany <vranyj1@fel.cvut.cz>" ! version ^ versionMerged ? versionA ? versionB "Created: / 21-05-2008 / 11:52:50 / Jan Vrany <vranyj1@fel.cvut.cz>" ! versionMerged ^ versionMerged "Created: / 21-05-2008 / 11:52:55 / Jan Vrany <vranyj1@fel.cvut.cz>" ! versionMerged:aChange versionMerged := aChange. "Created: / 21-05-2008 / 11:52:55 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified: / 21-05-2008 / 13:42:09 / Jan Vrany <vranyj1@fel.cvut.cz>" ! versionMergedSource ^ versionMerged ifNil:[nil] ifNotNil:[versionMerged source] "Created: / 21-05-2008 / 11:52:55 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem methodsFor:'displaying'! displayIconOn:aGC x:x y:y self icon displayOn:aGC x:x y:y - 14 "Created: / 21-05-2008 / 11:54:47 / Jan Vrany <vranyj1@fel.cvut.cz>" "Modified: / 08-11-2008 / 11:03:00 / Jan Vrany <vranyj1@fel.cvut.cz>" ! displayOn: aGC x:x y:y self displayIconOn: aGC x:x y:y. self displayChangeOn: aGC x:x + 18 y:y. "Created: / 21-05-2008 / 11:55:01 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem methodsFor:'resolution'! apply ^self versionMerged apply "Modified: / 11-12-2007 / 18:58:37 / janfrog" "Created: / 21-05-2008 / 11:53:12 / Jan Vrany <vranyj1@fel.cvut.cz>" ! delete self state: #deleted. self isMethodChange ifTrue: [versionMerged := MethodRemoveChange class: self version changeClass selector: self version changeSelector] "Modified: / 11-12-2007 / 18:41:49 / janfrog" "Created: / 21-05-2008 / 11:53:12 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolveUsingA self state: #merged. versionMerged := versionA "Created: / 21-05-2008 / 11:53:12 / Jan Vrany <vranyj1@fel.cvut.cz>" ! resolveUsingB self state: #merged. versionMerged := versionB "Created: / 21-05-2008 / 11:53:12 / Jan Vrany <vranyj1@fel.cvut.cz>" ! unresolve self state: #unresolved "Created: / 21-05-2008 / 11:53:12 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool::DiffItem methodsFor:'testing'! isMergedVersionDifferent ^versionMerged notNil and:[versionMerged ~= versionA and:[versionMerged ~= versionB]] "Created: / 21-05-2008 / 11:53:19 / Jan Vrany <vranyj1@fel.cvut.cz>" ! isResolved ^self state ~= #unresolved "Created: / 21-05-2008 / 11:53:22 / Jan Vrany <vranyj1@fel.cvut.cz>" ! ! !SmalltalkMergeTool class methodsFor:'documentation'! version_CVS ^ '§Header: /cvs/stx/stx/libtool/Tools__SmalltalkMergeTool.st,v 1.2 2011/07/03 20:56:26 cg Exp §' ! version_SVN ^ '$Id: Tools__SmalltalkMergeTool.st 7486 2009-10-26 22:06:24Z vranyj1 $' ! ! SmalltalkMergeTool initialize!