--- a/Tools__ChangeList.st Wed Sep 12 12:00:27 2012 +0100
+++ b/Tools__ChangeList.st Thu Sep 13 10:15:20 2012 +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
@@ -29,7 +29,7 @@
Tools::BrowserListWithFilter subclass:#ChangeList
instanceVariableNames:'listHolder showRemovedHolder showSameHolder showTimestampHolder
- allowRemoveHolder allowAcceptHolder scrollToBottom'
+ allowRemoveHolder allowAcceptHolder scrollToBottom applyAction'
classVariableNames:'LastSelectionConditionString'
poolDictionaries:''
category:'Interface-Browsers-ChangeSet'
@@ -47,7 +47,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
@@ -127,57 +127,57 @@
<resource: #canvas>
- ^
+ ^
#(FullSpec
- name: windowSpec
- window:
+ name: windowSpec
+ window:
(WindowSpec
- label: 'Change List'
- name: 'Change List'
- min: (Point 10 10)
- bounds: (Rectangle 0 0 300 300)
- )
- component:
+ label: 'Change List'
+ name: 'Change List'
+ min: (Point 10 10)
+ bounds: (Rectangle 0 0 300 300)
+ )
+ component:
(SpecCollection
- collection: (
- (InputFieldSpec
- name: 'Filter'
- layout: (LayoutFrame 0 0 0 0 0 1 25 0)
- initiallyInvisible: true
- model: filterPatternHolder
- immediateAccept: true
- acceptOnLeave: false
- acceptOnReturn: false
- acceptOnTab: false
- acceptOnPointerLeave: false
- emptyFieldReplacementText: 'Search Filter...'
- postBuildCallback: postBuildFilterView:
- )
- (DataSetSpec
- name: 'List'
- layout: (LayoutFrame 0 0 0 0 0 1 0 1)
- model: selectionHolder
- menu: menuHolderWithShowFilter
- hasHorizontalScrollBar: true
- hasVerticalScrollBar: true
- dataList: listHolder
- useIndex: false
- doubleClickSelector: selectionDoubleclicked
- columnHolder: listColumns
- showLabels: false
- multipleSelectOk: true
- postBuildCallback: postBuildListView:
- properties:
- (PropertyListDictionary
- startDragSelector: nil
- dropObjectSelector: dragObjects:
- canDropSelector: canDrop:
- dropSelector: dropObjects:
- )
- )
- )
-
- )
+ collection: (
+ (InputFieldSpec
+ name: 'Filter'
+ layout: (LayoutFrame 0 0 0 0 0 1 25 0)
+ initiallyInvisible: true
+ model: filterPatternHolder
+ immediateAccept: true
+ acceptOnLeave: false
+ acceptOnReturn: false
+ acceptOnTab: false
+ acceptOnPointerLeave: false
+ emptyFieldReplacementText: 'Search Filter...'
+ postBuildCallback: postBuildFilterView:
+ )
+ (DataSetSpec
+ name: 'List'
+ layout: (LayoutFrame 0 0 0 0 0 1 0 1)
+ model: selectionHolder
+ menu: menuHolderWithShowFilter
+ hasHorizontalScrollBar: true
+ hasVerticalScrollBar: true
+ dataList: listHolder
+ useIndex: false
+ doubleClickSelector: selectionDoubleclicked
+ columnHolder: listColumns
+ showLabels: false
+ multipleSelectOk: true
+ postBuildCallback: postBuildListView:
+ properties:
+ (PropertyListDictionary
+ startDragSelector: nil
+ dropObjectSelector: dragObjects:
+ canDropSelector: canDrop:
+ dropSelector: dropObjects:
+ )
+ )
+ )
+
+ )
)
! !
@@ -198,100 +198,100 @@
^#(
(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
+ editorType: CheckToggle
+ rendererType: CheckToggle
+ model: notRemoved
+ menuFromApplication: false
+ printSelector: notRemoved
+ isResizeable: false
+ showRowSeparator: false
+ showSelectionHighLighted: 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
+ menuFromApplication: false
+ printSelector: iconDelta
+ canSelect: false
+ isResizeable: false
+ showRowSeparator: false
+ showSelectionHighLighted: 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
+ 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
+ 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
+ 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
+ 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
+ model: timeStamp
+ menuFromApplication: false
+ canSelect: false
+ showRowSeparator: false
+ showColSeparator: false
)
)
-
+
! !
!ChangeList class methodsFor:'menu specs'!
@@ -311,108 +311,108 @@
<resource: #menu>
- ^
+ ^
#(Menu
- (
- (MenuItem
- enabled: hasChangeSelectedAndNotRemoved
- label: 'Apply'
- itemValue: listMenuApply
- translateLabel: true
- isVisible: allowAcceptHolder
- shortcutKey: Accept
- )
- (MenuItem
- label: 'Apply all'
- itemValue: listMenuApplyAll
- translateLabel: true
- isVisible: allowAcceptHolder
- )
- (MenuItem
- enabled: hasSingleChangeSelectedAndCanBrowse
- label: 'Browse'
- itemValue: listMenuBrowse
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Delete'
- itemValue: listMenuDeleteSelection
- nameKey: Delete
- translateLabel: true
- isVisible: allowRemoveHolder
- shortcutKey: Delete
- )
- (MenuItem
- label: '-'
- isVisible: allowRemoveHolder
- )
- (MenuItem
- label: 'Select...'
- translateLabel: true
- submenu:
- (Menu
- (
- (MenuItem
- label: 'Select same'
- itemValue: listMenuSelectSame
- translateLabel: true
- )
- (MenuItem
- label: 'Select additions (new classes/methods)'
- itemValue: listMenuSelectAdditions
- translateLabel: true
- )
- (MenuItem
- label: 'Select removals'
- itemValue: listMenuSelectRemovals
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Select all'
- itemValue: listMenuSelectAll
- translateLabel: true
- )
- (MenuItem
- label: 'Select none'
- itemValue: listMenuSelectNone
- translateLabel: true
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Select using block'
- itemValue: listMenuSelectUsingBlock
- translateLabel: true
- )
- )
- nil
- nil
- )
- )
- (MenuItem
- label: '-'
- )
- (MenuItem
- label: 'Show Deleted'
- translateLabel: true
- isVisible: allowRemoveHolder
- indication: showRemovedHolder
- )
- (MenuItem
- label: 'Inspect change'
- itemValue: listMenuInspect
- translateLabel: true
- )
- )
- nil
- nil
+ (
+ (MenuItem
+ enabled: hasChangeSelectedAndNotRemoved
+ label: 'Apply'
+ itemValue: listMenuApply
+ translateLabel: true
+ isVisible: allowAcceptHolder
+ shortcutKey: Accept
+ )
+ (MenuItem
+ label: 'Apply all'
+ itemValue: listMenuApplyAll
+ translateLabel: true
+ isVisible: allowAcceptHolder
+ )
+ (MenuItem
+ enabled: hasSingleChangeSelectedAndCanBrowse
+ label: 'Browse'
+ itemValue: listMenuBrowse
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Delete'
+ itemValue: listMenuDeleteSelection
+ nameKey: Delete
+ translateLabel: true
+ isVisible: allowRemoveHolder
+ shortcutKey: Delete
+ )
+ (MenuItem
+ label: '-'
+ isVisible: allowRemoveHolder
+ )
+ (MenuItem
+ label: 'Select...'
+ translateLabel: true
+ submenu:
+ (Menu
+ (
+ (MenuItem
+ label: 'Select same'
+ itemValue: listMenuSelectSame
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Select additions (new classes/methods)'
+ itemValue: listMenuSelectAdditions
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Select removals'
+ itemValue: listMenuSelectRemovals
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Select all'
+ itemValue: listMenuSelectAll
+ translateLabel: true
+ )
+ (MenuItem
+ label: 'Select none'
+ itemValue: listMenuSelectNone
+ translateLabel: true
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Select using block'
+ itemValue: listMenuSelectUsingBlock
+ translateLabel: true
+ )
+ )
+ nil
+ nil
+ )
+ )
+ (MenuItem
+ label: '-'
+ )
+ (MenuItem
+ label: 'Show Deleted'
+ translateLabel: true
+ isVisible: allowRemoveHolder
+ indication: showRemovedHolder
+ )
+ (MenuItem
+ label: 'Inspect change'
+ itemValue: listMenuInspect
+ translateLabel: true
+ )
+ )
+ nil
+ nil
)
! !
@@ -430,16 +430,16 @@
(if this app is embedded in a subCanvas)."
^ #(
- #allowAcceptHolder
- #allowRemoveHolder
- #inGeneratorHolder
- #menuHolder
- #outGeneratorHolder
- #selectionHolder
- #showFilterHolder
- #showRemovedHolder
- #showSameHolder
- #showTimestampHolder
+ #allowAcceptHolder
+ #allowRemoveHolder
+ #inGeneratorHolder
+ #menuHolder
+ #outGeneratorHolder
+ #selectionHolder
+ #showFilterHolder
+ #showRemovedHolder
+ #showSameHolder
+ #showTimestampHolder
).
! !
@@ -470,6 +470,12 @@
"Created: / 05-12-2009 / 14:28:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+applyAction:aBlock
+ applyAction := aBlock.
+
+ "Modified (format): / 10-09-2012 / 14:15:30 / cg"
+!
+
list
^ listHolder value
@@ -479,7 +485,7 @@
scrollToBottom:aBoolean
"If set to true, list will automaticallu scroll to bottom
- ehen the list is updated and clears this flag.
+ ehen the list is updated and clears this flag.
This is required as the list is updated asynchronously"
@@ -540,7 +546,7 @@
"return/create the valueHolder 'acceptEnabledHolder'"
allowAcceptHolder isNil ifTrue:[
- allowAcceptHolder := ValueHolder with:nil "defaultValue here".
+ allowAcceptHolder := ValueHolder with:nil "defaultValue here".
].
^ allowAcceptHolder
@@ -555,35 +561,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.
].
!
@@ -591,9 +597,9 @@
|holder|
(holder := builder bindingAt:#listColumns) isNil ifTrue:[
- builder aspectAt:#listColumns put:(holder := List new).
- self listColumnShow: #delta.
- self listColumnShow: #change.
+ builder aspectAt:#listColumns put:(holder := List new).
+ self listColumnShow: #delta.
+ self listColumnShow: #change.
].
^ holder
@@ -602,7 +608,7 @@
listHolder
listHolder isNil ifTrue:[
- listHolder := ValueHolder new.
+ listHolder := ValueHolder new.
].
^ listHolder
!
@@ -611,8 +617,8 @@
"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
!
@@ -623,16 +629,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.
].
!
@@ -640,8 +646,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
@@ -654,16 +660,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.
].
!
@@ -671,8 +677,8 @@
"return/create the 'showTimestampHolder' value holder (automatically generated)"
showTimestampHolder isNil ifTrue:[
- showTimestampHolder := ValueHolder new.
- showTimestampHolder addDependent:self.
+ showTimestampHolder := ValueHolder new.
+ showTimestampHolder addDependent:self.
].
^ showTimestampHolder
!
@@ -683,16 +689,16 @@
|oldValue newValue|
showTimestampHolder notNil ifTrue:[
- oldValue := showTimestampHolder value.
- showTimestampHolder removeDependent:self.
+ oldValue := showTimestampHolder value.
+ showTimestampHolder removeDependent:self.
].
showTimestampHolder := something.
showTimestampHolder notNil ifTrue:[
- showTimestampHolder addDependent:self.
+ showTimestampHolder addDependent:self.
].
newValue := showTimestampHolder value.
oldValue ~~ newValue ifTrue:[
- self update:#value with:newValue from:showTimestampHolder.
+ self update:#value with:newValue from:showTimestampHolder.
].
! !
@@ -701,27 +707,27 @@
update: aspect with: param from: sender
sender == allowRemoveHolder ifTrue:[
- self listColumn: #removed visible: allowRemoveHolder value.
- ^self.
+ self listColumn: #removed visible: allowRemoveHolder value.
+ ^self.
].
sender == showTimestampHolder ifTrue:[
- self listColumn: #timeStamp visible: showTimestampHolder value.
- ^self.
+ self listColumn: #timeStamp visible: showTimestampHolder value.
+ ^self.
].
sender == selectionHolder ifTrue:[
- self selectionChanged.
- ^self
+ self selectionChanged.
+ ^self
].
sender == showSameHolder ifTrue:[
- self updateList.
- ^self.
+ self updateList.
+ ^self.
].
sender == showRemovedHolder ifTrue:[
- self updateList.
- ^self.
+ self updateList.
+ ^self.
].
^super update: aspect with: param from: sender
@@ -736,7 +742,7 @@
canDrop: aDropContext
^(self inGeneratorHolder value isKindOf: Iterator) not
- and:[aDropContext dropObjects allSatisfy:[:obj|(obj theObject isKindOf: Change)]].
+ and:[aDropContext dropObjects allSatisfy:[:obj|(obj theObject isKindOf: Change)]].
"Created: / 01-08-2012 / 17:53:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -764,17 +770,21 @@
!ChangeList methodsFor:'event processing'!
+
+
+
+
handlesKeyPress:key inView:aView
- ^(key == #Accept or:[ key == #Ctrls])
- and:[ listView scrolledView == aView ]
+ ^(key == #Accept or:[ key == #Ctrls])
+ and:[ listView scrolledView == aView ]
"Created: / 08-02-2012 / 14:43:11 / cg"
!
keyPress:key x:x y:y view:aView
(key == #Accept or:[ key == #Ctrls]) ifTrue:[
- self listMenuApply.
- ^ self
+ self listMenuApply.
+ ^ self
].
"Created: / 08-02-2012 / 14:42:18 / cg"
@@ -786,13 +796,13 @@
"Superclass Tools::BrowserList says that I am responsible to implement this method"
^Iterator on:
- [:whatToDo|
- selectionHolder value do:
- [:changeListItem| | change |
- changeListItem notNil ifTrue:[
- change := changeListItem change.
- change isCompositeChange ifTrue:
- [change changes do: whatToDo]]]]
+ [:whatToDo|
+ selectionHolder value do:
+ [:changeListItem| | change |
+ changeListItem notNil ifTrue:[
+ change := changeListItem change.
+ change isCompositeChange ifTrue:
+ [change changes do: whatToDo]]]]
"Modified: / 24-07-2009 / 23:00:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
"Modified: / 25-07-2012 / 15:39:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -815,6 +825,9 @@
super initialize.
menuHolder := [self menuFor: #listMenu].
scrollToBottom := false.
+ applyAction isNil ifTrue:[
+ applyAction := [:change | change apply ].
+ ].
"Created: / 29-10-2010 / 12:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
@@ -826,19 +839,19 @@
self acceptEnabled ifFalse:[^self].
- (sel := self selectionHolder value) do:[:e|e change apply].
+ (sel := self selectionHolder value) do:[:e| applyAction value:e change].
sel size == 1 ifTrue:[
- list := self listHolder value.
- idx := list indexOf:(sel first).
- idx < list size ifTrue:[
- self selectionHolder value:(Array with:(list at:idx+1))
- ] ifFalse:[
- self selectionHolder value:#()
- ].
+ list := self listHolder value.
+ idx := list indexOf:(sel first).
+ idx < list size ifTrue:[
+ self selectionHolder value:(Array with:(list at:idx+1))
+ ] ifFalse:[
+ self selectionHolder value:#()
+ ].
].
"Modified: / 24-10-2009 / 22:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 08-02-2012 / 14:53:25 / cg"
+ "Modified: / 10-09-2012 / 13:57:46 / cg"
!
listMenuApplyAll
@@ -846,15 +859,16 @@
self acceptEnabled ifFalse:[^self].
self selection value do:
- [:e|e removed ifFalse:[e change apply]].
+ [: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"
!
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>"
!
@@ -866,25 +880,25 @@
methods := Set new.
methodsOnly := true.
changes do:
- [:each|
- each isClassChange ifTrue:
- [each changeClass ifNotNil:
- [classes add: each changeClass.
- each isMethodCodeChange
- ifTrue:
- [each changeMethod ifNotNil:
- [methods add:each changeMethod]]
- ifFalse:
- [methodsOnly := false]]]].
- methodsOnly
- ifTrue:
- [methods size = 1
- ifTrue:[Smalltalk browserClass openInMethod: methods anyOne]
- ifFalse:[Smalltalk browserClass browseMethods: methods asArray title: 'Selected methods from changeset' sort: true]]
- ifFalse:
- [classes size = 1
- ifTrue:[Smalltalk browserClass browseClass: classes anyOne]
- ifFalse:[Smalltalk browserClass browseClasses: classes]]
+ [:each|
+ each isClassChange ifTrue:
+ [each changeClass ifNotNil:
+ [classes add: each changeClass.
+ each isMethodCodeChange
+ ifTrue:
+ [each changeMethod ifNotNil:
+ [methods add:each changeMethod]]
+ ifFalse:
+ [methodsOnly := false]]]].
+ methodsOnly
+ ifTrue:
+ [methods size = 1
+ ifTrue:[Smalltalk browserClass openInMethod: methods anyOne]
+ ifFalse:[Smalltalk browserClass browseMethods: methods asArray title: 'Selected methods from changeset' sort: true]]
+ ifFalse:
+ [classes size = 1
+ ifTrue:[Smalltalk browserClass browseClass: classes anyOne]
+ ifFalse:[Smalltalk browserClass browseClasses: classes]]
"Modified: / 24-10-2009 / 22:02:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
"Created: / 24-01-2012 / 22:00:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -893,7 +907,7 @@
listMenuDeleteSelection
self selectionHolder value do:
- [:each|each removed: true].
+ [:each|each removed: true].
self updateList
!
@@ -903,8 +917,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>"
!
@@ -919,11 +933,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
!
@@ -952,23 +966,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].
@@ -978,8 +992,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
@@ -988,7 +1002,7 @@
listMenuUndeleteSelection
self selectionHolder value do:
- [:each|each removed: false].
+ [:each|each removed: false].
self updateList
! !
@@ -1010,9 +1024,9 @@
listColumn: columnId visible: visible
visible ifTrue:[
- self listColumnShow: columnId
+ self listColumnShow: columnId
] ifFalse:[
- self listColumnHide: columnId
+ self listColumnHide: columnId
]
"Created: / 26-07-2012 / 18:20:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1020,13 +1034,13 @@
listColumnHide: columnId
self listColumns do:[:spec|
- spec id = columnId ifTrue:[
- self listColumns remove: spec.
- listView notNil ifTrue:[
- listView invalidate.
- ].
- ^self
- ].
+ spec id = columnId ifTrue:[
+ self listColumns remove: spec.
+ listView notNil ifTrue:[
+ listView invalidate.
+ ].
+ ^self
+ ].
]
"Created: / 26-07-2012 / 18:19:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -1038,33 +1052,33 @@
columns := self listColumns.
columns do:[:spec|
- spec id = columnId ifTrue:[
- ^self.
- ]
+ spec id = columnId ifTrue:[
+ ^self.
+ ]
].
self class listColumnSpec do:[:specArray|
- | spec |
+ | spec |
- spec := specArray decodeAsLiteralArray.
- spec id = columnId ifTrue:[
- columnId == #removed ifTrue:[
- columns addFirst: spec.
- ] ifFalse:[
- columns add: spec.
- ].
- listView notNil ifTrue:[
- listView invalidate.
- ].
- ^self.
- ]
+ spec := specArray decodeAsLiteralArray.
+ spec id = columnId ifTrue:[
+ columnId == #removed ifTrue:[
+ columns addFirst: spec.
+ ] ifFalse:[
+ columns add: spec.
+ ].
+ listView notNil ifTrue:[
+ listView invalidate.
+ ].
+ ^self.
+ ]
].
"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>"
@@ -1092,38 +1106,38 @@
inGenerator := self inGeneratorHolder value.
listView notNil ifTrue:[
- ((listView isKindOf: ScrollableView) not or:[listView scrolledView notNil]) ifTrue:[
- firstLineShown := listView firstLineShown
- ].
+ ((listView isKindOf: ScrollableView) not or:[listView scrolledView notNil]) ifTrue:[
+ firstLineShown := listView firstLineShown
+ ].
].
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 ~~ #=]]
- ].
+ 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:[
- self listHolder value: newList.
- ((newList size ~~ 0) and:[scrollToBottom]) ifTrue:[
- self selection: { newList last }
- ] ifFalse:[
- oldSel notEmptyOrNil ifTrue:[
- newSel := OrderedCollection new: oldSel size.
- oldSel := oldSel reject:[:e|e isNil].
- oldSel := oldSel collect:[:e|e change].
- newList do:[:e|(oldSel includes:e change) ifTrue:[newSel add:e]].
- self selection: newSel.
- ].
- (listView notNil and:[firstLineShown notNil]) ifTrue:[
- listView scrollToLine: (newList size min: firstLineShown).
- ].
- ].
- scrollToBottom := false.
+ self listHolder value: newList.
+ ((newList size ~~ 0) and:[scrollToBottom]) ifTrue:[
+ self selection: { newList last }
+ ] ifFalse:[
+ oldSel notEmptyOrNil ifTrue:[
+ newSel := OrderedCollection new: oldSel size.
+ oldSel := oldSel reject:[:e|e isNil].
+ oldSel := oldSel collect:[:e|e change].
+ newList do:[:e|(oldSel includes:e change) ifTrue:[newSel add:e]].
+ self selection: newSel.
+ ].
+ (listView notNil and:[firstLineShown notNil]) ifTrue:[
+ listView scrollToLine: (newList size min: firstLineShown).
+ ].
+ ].
+ scrollToBottom := false.
]
@@ -1143,7 +1157,7 @@
| selection |
selection := self selectionHolder value ? #().
^selection size > 0 and:
- [selection allSatisfy:[:e|e removed not]].
+ [selection allSatisfy:[:e|e removed not]].
!
hasSingleChangeSelected
@@ -1155,10 +1169,10 @@
self selectionHolder value ? #() do:
- [:each|
- (each change isClassChange and:
- [each change isMethodChange not
- or:[each change isMethodCodeChange]]) ifFalse:[^false]].
+ [:each|
+ (each change isClassChange and:
+ [each change isMethodChange not
+ or:[each change isMethodCodeChange]]) ifFalse:[^false]].
^true
!
@@ -1235,18 +1249,18 @@
children
children isNil ifTrue:[
- change isCompositeChange ifTrue:[
- children := OrderedCollection new: change changes size.
- change changes do:[:chg|
- ((self application showRemovedHolder value or:[ chg removed not ])
- and:[self application showSameHolder value or:[chg delta ~~ #=]])
- ifTrue:[
- children add: ((self application listEntryFor: chg) parent: self)
- ]
- ].
- ] ifFalse:[
- children := #()
- ]
+ change isCompositeChange ifTrue:[
+ children := OrderedCollection new: change changes size.
+ change changes do:[:chg|
+ ((self application showRemovedHolder value or:[ chg removed not ])
+ and:[self application showSameHolder value or:[chg delta ~~ #=]])
+ ifTrue:[
+ children add: ((self application listEntryFor: chg) parent: self)
+ ]
+ ].
+ ] ifFalse:[
+ children := #()
+ ]
].
^children
@@ -1286,9 +1300,9 @@
iconRemoved
- ^self removed
- ifTrue: [self application class uncheckedIcon ]
- ifFalse:[self application class checkedIcon ]
+ ^self removed
+ ifTrue: [self application class uncheckedIcon ]
+ ifFalse:[self application class checkedIcon ]
"Created: / 05-12-2009 / 14:11:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
@@ -1311,17 +1325,17 @@
if there are just 2 lines, then merge them, otherwise add
... to the first line"
(label includes: Character cr) ifTrue:[
- | firstCR secondCR |
- firstCR := label indexOf: Character cr.
- firstCR ~~ label size ifTrue:[
- secondCR := label indexOf: Character cr startingAt: firstCR + 1.
- ].
- secondCR isNil ifTrue:[
- "/2 lines only
- label := label copy at: firstCR put: Character space.
- ] ifFalse:[
- label := (label copyTo: firstCR - 1) , '...'
- ].
+ | firstCR secondCR |
+ firstCR := label indexOf: Character cr.
+ firstCR ~~ label size ifTrue:[
+ secondCR := label indexOf: Character cr startingAt: firstCR + 1.
+ ].
+ secondCR isNil ifTrue:[
+ "/2 lines only
+ label := label copy at: firstCR put: Character space.
+ ] ifFalse:[
+ label := (label copyTo: firstCR - 1) , '...'
+ ].
].
self removed ifTrue:[label := label asText colorizeAllWith: Color gray].
^label
@@ -1377,19 +1391,19 @@
!ChangeList::ListEntry methodsFor:'displaying'!
-displayLabel:aLabel h:lH on:aGC x:newX y:y h:h
+displayLabel:aLabel h:lH on:aGC x:newX y:y h:h
| 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"
@@ -1398,7 +1412,7 @@
"/ "Now, display additional columns..."
"/ (list showColumn: #timestamp) ifTrue:[
"/ cx := cx + (aLabel widthOn: aGC) + 5."px - padding"
-"/ colS := change timeOfChangeIfKnown notNil
+"/ colS := change timeOfChangeIfKnown notNil
"/ ifTrue:[change timeOfChangeIfKnown printString]
"/ ifFalse:['???'].
"/ [ (colW := colS widthOn: aGC) > (aGC width - cx - 5) ] whileTrue:[
@@ -1438,13 +1452,13 @@
!ChangeList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.17 2012/07/27 23:27:04 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.19 2012/09/10 12:16:47 cg Exp $'
!
version_CVS
- ^ '§Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.17 2012/07/27 23:27:04 cg Exp §'
+ ^ '§Header: /cvs/stx/stx/libtool/Tools__ChangeList.st,v 1.19 2012/09/10 12:16:47 cg Exp §'
!
version_SVN
- ^ '$Id: Tools__ChangeList.st 8048 2012-09-07 17:28:09Z vranyj1 $'
+ ^ '$Id: Tools__ChangeList.st 8054 2012-09-13 09:15:20Z vranyj1 $'
! !