--- a/Tools__ChangeList.st Sun Jan 12 23:30:25 2014 +0000
+++ b/Tools__ChangeList.st Wed Apr 01 10:38:01 2015 +0100
@@ -1,6 +1,6 @@
"
COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
- All Rights Reserved
+ All Rights Reserved
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@@ -30,7 +30,7 @@
BrowserListWithFilter subclass:#ChangeList
instanceVariableNames:'listHolder showRemovedHolder showSameHolder showTimestampHolder
allowRemoveHolder allowAcceptHolder scrollToBottom applyAction
- showConflictsOnlyHolder'
+ showConflictsOnlyHolder showDefinitionsOnlyHolder'
classVariableNames:'LastSelectionConditionString'
poolDictionaries:''
category:'Interface-Browsers-ChangeSet'
@@ -48,7 +48,7 @@
copyright
"
COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
- All Rights Reserved
+ All Rights Reserved
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
@@ -103,6 +103,12 @@
"Modified: / 31-08-2011 / 10:54:40 / cg"
!
+iconNone
+ ^ nil
+
+ "Created: / 05-09-2014 / 00:34:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
iconPlus
^ ToolbarIconLibrary iconPlusBlue12x12
@@ -203,100 +209,105 @@
^#(
(DataSetColumnSpec
- label: 'Removed'
- id: 'removed'
- labelButtonType: Button
- width: 20
- minWidth: 20
- editorType: CheckToggle
- rendererType: CheckToggle
- model: notRemoved
- menuFromApplication: false
- printSelector: notRemoved
- isResizeable: false
- showRowSeparator: false
- showSelectionHighLighted: false
- showColSeparator: false
+ label: 'Removed'
+ id: 'removed'
+ labelButtonType: Button
+ width: 20
+ minWidth: 20
+ height: heightOfFirstRow
+ editorType: CheckToggle
+ rendererType: CheckToggle
+ model: notRemoved
+ menuFromApplication: false
+ printSelector: notRemoved
+ isResizeable: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Delta'
- id: 'delta'
- labelButtonType: Button
- width: 20
- minWidth: 20
- menuFromApplication: false
- printSelector: iconDelta
- canSelect: false
- isResizeable: false
- showRowSeparator: false
- showSelectionHighLighted: false
- showColSeparator: false
+ label: 'Delta'
+ id: 'delta'
+ labelButtonType: Button
+ width: 20
+ minWidth: 20
+ height: heightOfFirstRow
+ menuFromApplication: false
+ printSelector: iconDelta
+ canSelect: false
+ isResizeable: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Change'
- id: change
- labelAlignment: left
- labelButtonType: Button
- menuFromApplication: false
- printSelector: label
- canSelect: false
- showRowSeparator: false
- showColSeparator: false
+ label: 'Change'
+ id: change
+ labelAlignment: left
+ labelButtonType: Button
+ height: heightOfFirstRow
+ menuFromApplication: false
+ printSelector: label
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Class'
- id: 'className'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- usePreferredWidth: true
- model: className
- menuFromApplication: false
- canSelect: false
- showRowSeparator: false
- showColSeparator: false
+ label: 'Class'
+ id: 'className'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ usePreferredWidth: true
+ height: heightOfFirstRow
+ model: className
+ menuFromApplication: false
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Selector'
- id: 'selector'
- labelAlignment: left
- activeHelpKey: ''
- activeHelpKeyForLabel: ''
- labelButtonType: Button
- usePreferredWidth: true
- model: selector
- menuFromApplication: false
- canSelect: false
- showRowSeparator: false
- showColSeparator: false
+ label: 'Selector'
+ id: 'selector'
+ labelAlignment: left
+ activeHelpKey: ''
+ activeHelpKeyForLabel: ''
+ labelButtonType: Button
+ usePreferredWidth: true
+ height: heightOfFirstRow
+ model: selector
+ menuFromApplication: false
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Category'
- id: category
- labelAlignment: left
- labelButtonType: Button
- usePreferredWidth: true
- model: category
- menuFromApplication: false
- canSelect: false
- showRowSeparator: false
- showColSeparator: false
+ label: 'Category'
+ id: category
+ labelAlignment: left
+ labelButtonType: Button
+ usePreferredWidth: true
+ height: heightOfFirstRow
+ model: category
+ menuFromApplication: false
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
(DataSetColumnSpec
- label: 'Time Stamp'
- id: timeStamp
- labelAlignment: left
- labelButtonType: Button
- usePreferredWidth: true
- model: timeStamp
- menuFromApplication: false
- canSelect: false
- showRowSeparator: false
- showColSeparator: false
+ label: 'Time Stamp'
+ id: timeStamp
+ labelAlignment: left
+ labelButtonType: Button
+ usePreferredWidth: true
+ height: heightOfFirstRow
+ model: timeStamp
+ menuFromApplication: false
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
)
-
+
! !
!ChangeList class methodsFor:'menu specs'!
@@ -316,7 +327,7 @@
<resource: #menu>
- ^
+ ^
#(Menu
(
(MenuItem
@@ -357,7 +368,7 @@
(MenuItem
label: 'Select...'
translateLabel: true
- submenu:
+ submenu:
(Menu
(
(MenuItem
@@ -440,6 +451,7 @@
(if this app is embedded in a subCanvas)."
^ #(
+ environmentHolder
#allowAcceptHolder
#allowRemoveHolder
#inGeneratorHolder
@@ -451,8 +463,10 @@
#showSameHolder
#showTimestampHolder
#showConflictsOnlyHolder
+ #showDefinitionsOnlyHolder
).
+ "Modified: / 24-02-2014 / 10:37:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ChangeList methodsFor:'accessing'!
@@ -557,7 +571,7 @@
"return/create the valueHolder 'acceptEnabledHolder'"
allowAcceptHolder isNil ifTrue:[
- allowAcceptHolder := ValueHolder with:nil "defaultValue here".
+ allowAcceptHolder := ValueHolder with:nil "defaultValue here".
].
^ allowAcceptHolder
@@ -572,35 +586,35 @@
allowRemoveHolder
"return/create the 'allowRemoveHolder' value holder (automatically generated)"
-
+
allowRemoveHolder isNil ifTrue:[
- allowRemoveHolder := ValueHolder with:true.
- allowRemoveHolder addDependent:self.
+ allowRemoveHolder := ValueHolder with:true.
+ allowRemoveHolder addDependent:self.
].
^ allowRemoveHolder
"Modified (comment): / 24-01-2012 / 19:44:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-allowRemoveHolder:something
+allowRemoveHolder:something
"set the 'showRemovedHolder' value holder (automatically generated)"
-
+
|oldValue newValue|
allowRemoveHolder notNil ifTrue:[
- oldValue := allowRemoveHolder value.
- allowRemoveHolder removeDependent:self.
+ oldValue := allowRemoveHolder value.
+ allowRemoveHolder removeDependent:self.
].
allowRemoveHolder := something.
allowRemoveHolder notNil ifTrue:[
- allowRemoveHolder addDependent:self.
+ allowRemoveHolder addDependent:self.
].
newValue := allowRemoveHolder value.
oldValue ~~ newValue ifTrue:[
- self
- update:#value
- with:newValue
- from:allowRemoveHolder.
+ self
+ update:#value
+ with:newValue
+ from:allowRemoveHolder.
].
!
@@ -619,7 +633,7 @@
listHolder
listHolder isNil ifTrue:[
- listHolder := ValueHolder new.
+ listHolder := ValueHolder new.
].
^ listHolder
!
@@ -628,10 +642,12 @@
"return/create the 'showConflictsOnlyHolder' value holder (automatically generated)"
showConflictsOnlyHolder isNil ifTrue:[
- showConflictsOnlyHolder := ValueHolder with: true.
+ showConflictsOnlyHolder := ValueHolder with: false.
showConflictsOnlyHolder addDependent: self.
].
^ showConflictsOnlyHolder
+
+ "Modified: / 05-09-2014 / 00:54:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
showConflictsOnlyHolder:something
@@ -653,12 +669,43 @@
].
!
+showDefinitionsOnlyHolder
+ "return/create the 'showDefinitionsOnlyHolder' value holder (automatically generated)"
+
+ showDefinitionsOnlyHolder isNil ifTrue:[
+ showDefinitionsOnlyHolder := ValueHolder with: false.
+ showDefinitionsOnlyHolder addDependent: self.
+ ].
+ ^ showDefinitionsOnlyHolder
+
+ "Modified: / 05-09-2014 / 00:52:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+showDefinitionsOnlyHolder:something
+ "set the 'showDefinitionsOnlyHolder' value holder (automatically generated)"
+
+ |oldValue newValue|
+
+ showDefinitionsOnlyHolder notNil ifTrue:[
+ oldValue := showDefinitionsOnlyHolder value.
+ showDefinitionsOnlyHolder removeDependent:self.
+ ].
+ showDefinitionsOnlyHolder := something.
+ showDefinitionsOnlyHolder notNil ifTrue:[
+ showDefinitionsOnlyHolder addDependent:self.
+ ].
+ newValue := showDefinitionsOnlyHolder value.
+ oldValue ~~ newValue ifTrue:[
+ self update:#value with:newValue from:showDefinitionsOnlyHolder.
+ ].
+!
+
showRemovedHolder
"return/create the 'showRemovedHolder' value holder (automatically generated)"
showRemovedHolder isNil ifTrue:[
- showRemovedHolder := ValueHolder with: true.
- showRemovedHolder addDependent: self.
+ showRemovedHolder := ValueHolder with: true.
+ showRemovedHolder addDependent: self.
].
^ showRemovedHolder
!
@@ -669,16 +716,16 @@
|oldValue newValue|
showRemovedHolder notNil ifTrue:[
- oldValue := showRemovedHolder value.
- showRemovedHolder removeDependent:self.
+ oldValue := showRemovedHolder value.
+ showRemovedHolder removeDependent:self.
].
showRemovedHolder := something.
showRemovedHolder notNil ifTrue:[
- showRemovedHolder addDependent:self.
+ showRemovedHolder addDependent:self.
].
newValue := showRemovedHolder value.
oldValue ~~ newValue ifTrue:[
- self update:#value with:newValue from:showRemovedHolder.
+ self update:#value with:newValue from:showRemovedHolder.
].
!
@@ -686,8 +733,8 @@
"return/create the 'showSameHolder' value holder (automatically generated)"
showSameHolder isNil ifTrue:[
- showSameHolder := ValueHolder with: true.
- showSameHolder addDependent:self.
+ showSameHolder := ValueHolder with: true.
+ showSameHolder addDependent:self.
].
^ showSameHolder
@@ -700,16 +747,16 @@
|oldValue newValue|
showSameHolder notNil ifTrue:[
- oldValue := showSameHolder value.
- showSameHolder removeDependent:self.
+ oldValue := showSameHolder value.
+ showSameHolder removeDependent:self.
].
showSameHolder := something.
showSameHolder notNil ifTrue:[
- showSameHolder addDependent:self.
+ showSameHolder addDependent:self.
].
newValue := showSameHolder value.
oldValue ~~ newValue ifTrue:[
- self update:#value with:newValue from:showSameHolder.
+ self update:#value with:newValue from:showSameHolder.
].
!
@@ -775,6 +822,9 @@
sender == showConflictsOnlyHolder ifTrue:[
self updateList
].
+ sender == showDefinitionsOnlyHolder ifTrue:[
+ self updateList
+ ].
^super update: aspect with: param from: sender
@@ -819,19 +869,24 @@
handlesKeyPress:key inView:aView
<resource: #keyboard (#Accept #Ctrls)>
- ^(key == #Accept or:[ key == #Ctrls])
- and:[ listView scrolledView == aView ]
+ (super handlesKeyPress:key inView:aView)
+ or:[(key == #Accept or:[ key == #Ctrls])
+ and:[ listView scrolledView == aView ]]
"Created: / 08-02-2012 / 14:43:11 / cg"
+ "Modified: / 10-04-2014 / 11:31:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
keyPress:key x:x y:y view:aView
(key == #Accept or:[ key == #Ctrls]) ifTrue:[
- self listMenuApply.
- ^ self
- ].
+ self listMenuApply.
+ ^ self
+ ].
+
+ super keyPress:key x:x y:y view:aView
"Created: / 08-02-2012 / 14:42:18 / cg"
+ "Modified: / 10-04-2014 / 11:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ChangeList methodsFor:'generators'!
@@ -842,7 +897,7 @@
^Iterator on:
[:whatToDo|
- selectionHolder value do:
+ (selectionHolder value ? #()) do:
[:changeListItem| | change |
change := changeListItem change.
change isCompositeChange ifTrue:
@@ -857,9 +912,10 @@
postBuildListView: aView
super postBuildListView: aView.
- listView scrolledView delegate: self.
+ aView scrolledView delegate: self.
"Created: / 29-11-2011 / 14:56:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 10-04-2014 / 11:29:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ChangeList methodsFor:'initialization'!
@@ -904,7 +960,7 @@
self acceptEnabled ifFalse:[^self].
self selection value do:
- [:e|e removed ifFalse:[applyAction value:e change]].
+ [:e|e removed ifFalse:[applyAction value:e change]].
"Created: / 05-12-2009 / 14:53:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Modified: / 10-09-2012 / 13:57:58 / cg"
@@ -913,30 +969,34 @@
listMenuBrowse
self listMenuBrowseChanges:
- ((self selectionHolder value ? #()) collect:[:e|e change])
+ ((self selectionHolder value ? #()) collect:[:e|e change])
"Modified: / 24-01-2012 / 22:00:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
listMenuBrowseChanges: changes
- | classes methods methodsOnly browserClass|
+ | collectChanges classes methods methodsOnly browserClass|
classes := Set new.
methods := Set new.
methodsOnly := true.
- changes do: [:each |
- each isClassChange ifTrue:[
- each changeClass ifNotNil:[
+
+ collectChanges :=
+ [:each |
+ (each isClassChange and:[each changeClass notNil]) ifTrue:[
classes add: each changeClass.
- each isMethodCodeChange
- ifTrue:
- [each changeMethod ifNotNil:
- [methods add:each changeMethod]]
- ifFalse:
- [methodsOnly := false]
+ each isMethodCodeChange ifTrue:[
+ each changeMethod notNil ifTrue: [methods add:each changeMethod]
+ ] ifFalse:[
+ methodsOnly := false
+ ]
+ ] ifFalse:[
+ each isCompositeChange ifTrue:[
+ each changes do:collectChanges
+ ]
]
- ]
- ].
+ ].
+ changes do: collectChanges.
browserClass := environment browserClass.
methodsOnly
@@ -956,7 +1016,7 @@
listMenuDeleteSelection
self selectionHolder value do:
- [:each|each removed: true].
+ [:each|each removed: true].
self updateList
!
@@ -966,8 +1026,8 @@
selection := self selectionHolder value collect:[:e|e change].
selection size = 1
- ifTrue:[selection anyOne inspect]
- ifFalse:[selection inspect].
+ ifTrue:[selection anyOne inspect]
+ ifFalse:[selection inspect].
"Modified: / 24-10-2009 / 22:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -982,11 +1042,11 @@
self listMenuSelectAllSuchThat:[:change|true]
!
-listMenuSelectAllSuchThat:conditionBlock
+listMenuSelectAllSuchThat:conditionBlock
|newSelection|
- newSelection := self listHolder value
- select:[:entry | conditionBlock value:entry change ].
+ newSelection := self listHolder value
+ select:[:entry | conditionBlock value:entry change ].
self selectionHolder value:newSelection
!
@@ -1015,23 +1075,23 @@
"/ change is an instance of Change
"/ change will be selected if and only if block returns true
-
+
true"/always select the change
]
'.
LastSelectionConditionString isNil ifTrue:[
- LastSelectionConditionString := template.
+ LastSelectionConditionString := template.
].
textHolder := ValueHolder new.
dialog := Dialog
- forRequestText:(resources string:'Enter condition for selection')
- lines:20
- columns:70
- initialAnswer:LastSelectionConditionString
- model:textHolder.
+ forRequestText:(resources string:'Enter condition for selection')
+ lines:20
+ columns:70
+ initialAnswer:LastSelectionConditionString
+ model:textHolder.
dialog addButton:(Button label:'Template' action:[textHolder value:template. textHolder changed:#value.]).
dialog open.
dialog accepted ifFalse:[^ self].
@@ -1041,8 +1101,8 @@
conditionBlock := Parser evaluate:conditionBlockString.
conditionBlock isBlock ifFalse:[
- self error:'Bad selection block (syntax error?)'.
- ^ self
+ self error:'Bad selection block (syntax error?)'.
+ ^ self
].
self listMenuSelectAllSuchThat: conditionBlock
@@ -1051,7 +1111,7 @@
listMenuUndeleteSelection
self selectionHolder value do:
- [:each|each removed: false].
+ [:each|each removed: false].
self updateList
! !
@@ -1143,7 +1203,7 @@
"Created: / 26-07-2012 / 17:56:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
-listEntryFor:chg
+listEntryFor:chg
^ListEntry change:chg application: self
"Modified: / 05-12-2009 / 14:39:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1167,7 +1227,8 @@
!
updateList
- |inGenerator changeset firstLineShown oldSel newList newSel |
+ |inGenerator changeset firstLineShown oldSel newList newSel|
+
self withWaitCursorDo:[
inGenerator := self inGeneratorHolder value.
listView notNil ifTrue:[
@@ -1178,12 +1239,30 @@
oldSel := self selection.
changeset := inGenerator isNil ifTrue:[ #() ] ifFalse:[ inGenerator ].
- newList := changeset
- select:
- [:chg |
- (self showRemovedHolder value or:[ chg removed not ])
- and:[self showSameHolder value or:[chg delta ~~ #=]]
- ].
+ self showDefinitionsOnlyHolder value ifTrue:[
+ newList := changeset select: [:chg | chg isOrContainsClassDefinitionChange ].
+ ] ifFalse:[
+ self showConflictsOnlyHolder value ifTrue:[
+ newList := changeset select: [:chg | chg isConflict ].
+ ] ifFalse:[
+ | showRemoved showSame |
+
+ showRemoved := self showRemovedHolder value.
+ showSame := self showSameHolder value.
+
+ newList := changeset select: [:chg |
+ (showRemoved or:[ chg removed not ])
+ and:[showSame or:[chg delta ~~ #=]]
+ ].
+ ].
+ ].
+"/ OLD CODE
+"/ newList := changeset
+"/ select:
+"/ [:chg |
+"/ (self showRemovedHolder value or:[ chg removed not ])
+"/ and:[self showSameHolder value or:[chg delta ~~ #=]]
+"/ ].
newList := self filterList: newList.
newList := newList collect:[:chg | self listEntryFor:chg ].
self listHolder value ~= newList ifTrue:[
@@ -1206,8 +1285,9 @@
]
]
+
"Modified: / 28-12-2011 / 15:46:15 / cg"
- "Modified: / 01-08-2012 / 18:10:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 12-02-2014 / 17:15:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ChangeList methodsFor:'queries'!
@@ -1319,30 +1399,33 @@
!
children
+ |app addIf showRemoved showSame|
children isNil ifTrue:[
change isCompositeChange ifTrue:[
+ app := self application.
+
children := OrderedCollection new: change changes size.
- self application showConflictsOnlyHolder value ifTrue:[
- change changes do:[:chg|
- (chg isConflict) ifTrue:[
- children add: ((self application listEntryFor: chg) parent: self)
- ]
- ].
+ app showDefinitionsOnlyHolder value ifTrue:[
+ addIf := [:chg | chg isOrContainsClassDefinitionChange].
] ifFalse:[
- |showRemoved showSame|
+ app showConflictsOnlyHolder value ifTrue:[
+ addIf := [:chg | chg isConflict].
+ ] ifFalse:[
+ showRemoved := app showRemovedHolder value.
+ showSame := app showSameHolder value.
- showRemoved := self application showRemovedHolder value.
- showSame := self application showSameHolder value.
-
- change changes do:[:chg|
- ((showRemoved or:[ chg removed not ])
- and:[showSame or:[chg delta ~~ #=]])
- ifTrue:[
- children add: ((self application listEntryFor: chg) parent: self)
- ]
- ].
- ]
+ addIf := [:chg |
+ ((showRemoved or:[ chg removed not ])
+ and:[showSame or:[chg delta ~~ #=]])
+ ].
+ ]
+ ].
+ change changes do:[:chg|
+ (addIf value:chg) ifTrue:[
+ children add: ((app listEntryFor: chg) parent: self)
+ ]
+ ].
] ifFalse:[
children := #()
]
@@ -1371,29 +1454,6 @@
"Created: / 31-08-2011 / 10:29:21 / cg"
!
-iconDelta
- | iconSelector |
-
- iconSelector := self iconSelector.
- iconSelector isNil ifTrue:[^nil].
- self removed ifTrue:[iconSelector := iconSelector , #Grayed].
- ^self application class perform: iconSelector asSymbol.
-
- "Created: / 05-12-2009 / 14:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 18-11-2011 / 14:56:33 / cg"
-!
-
-iconRemoved
- |appClass|
-
- appClass := self application class.
- ^self removed
- ifTrue: [appClass uncheckedIcon ]
- ifFalse:[appClass checkedIcon ]
-
- "Created: / 05-12-2009 / 14:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
imageSource
"return the source for the in-image version of the change"
@@ -1479,18 +1539,18 @@
!ChangeList::ListEntry methodsFor:'displaying'!
displayLabel:aLabel h:lH on:aGC x:newX y:y h:h
+ | list cx icon |
- | list cx icon colW colS |
list := self application.
cx := x := newX.
(list allowRemoveHolder value and:[list showRemovedHolder value]) ifTrue: [
- (icon := self iconRemoved) notNil ifTrue:[
- icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
- ].
- cx := cx + 22."experimental value - this looks good"
+ (icon := self iconRemoved) notNil ifTrue:[
+ icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
+ ].
+ cx := cx + 22."experimental value - this looks good"
].
(icon := self iconDelta) notNil ifTrue:[
- icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
+ icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
].
cx := cx + 16."12 + 2px gap"
@@ -1510,9 +1570,64 @@
"/ ].
"Modified: / 27-07-2012 / 17:13:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
+!
+
+displayLabel:aLabel h:lH on:aGC x:newX y:y h:h isHighlightedAsSelected:isHighlightedAsSelected
+ | list cx icon |
+
+ list := self application.
+ cx := x := newX.
+ (list allowRemoveHolder value and:[list showRemovedHolder value]) ifTrue: [
+ (icon := self iconRemoved) notNil ifTrue:[
+ icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
+ ].
+ cx := cx + 22."experimental value - this looks good"
+ ].
+ (icon := self iconDelta) notNil ifTrue:[
+ icon displayOn: aGC x: cx y: y + (h / 2) - (icon height / 2)
+ ].
+ cx := cx + 16."12 + 2px gap"
+
+ super displayLabel:aLabel h:lH on:aGC x:cx y:y h:h isHighlightedAsSelected:isHighlightedAsSelected.
-!ChangeList::ListEntry methodsFor:'private'!
+"/ "Now, display additional columns..."
+"/ (list showColumn: #timestamp) ifTrue:[
+"/ cx := cx + (aLabel widthOn: aGC) + 5."px - padding"
+"/ colS := change timeOfChangeIfKnown notNil
+"/ ifTrue:[change timeOfChangeIfKnown printString]
+"/ ifFalse:['???'].
+"/ [ (colW := colS widthOn: aGC) > (aGC width - cx - 5) ] whileTrue:[
+"/ colS = '...' ifTrue:[ ^ self ].
+"/ colS := '...' , (colS copyFrom: 6).
+"/ ].
+"/ super displayLabel:colS h:lH on:aGC x: (aGC width - 5 - colW) y:y h:h.
+"/ ].
+
+ "Modified: / 27-07-2012 / 17:13:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+iconDelta
+ | iconSelector |
+
+ iconSelector := self iconSelector.
+ iconSelector isNil ifTrue:[^nil].
+ self removed ifTrue:[iconSelector := iconSelector , #Grayed].
+ ^self application class perform: iconSelector asSymbol.
+
+ "Created: / 05-12-2009 / 14:11:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 18-11-2011 / 14:56:33 / cg"
+!
+
+iconRemoved
+ |appClass|
+
+ appClass := self application class.
+ ^self removed
+ ifTrue: [appClass uncheckedIcon ]
+ ifFalse:[appClass checkedIcon ]
+
+ "Created: / 05-12-2009 / 14:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
iconSelector
^ application iconSelectorForChange:change
@@ -1530,19 +1645,14 @@
!ChangeList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.26 2013-09-05 23:18:30 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.37 2015-02-26 01:06:39 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.26 2013-09-05 23:18:30 cg Exp $'
-!
-
-version_HG
-
- ^ '$Changeset: <not expanded> $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.37 2015-02-26 01:06:39 cg Exp $'
!
version_SVN
- ^ '$Id: Tools__ChangeList.st,v 1.26 2013-09-05 23:18:30 cg Exp $'
+ ^ '$Id: Tools__ChangeList.st,v 1.37 2015-02-26 01:06:39 cg Exp $'
! !