[Pkg] The Trunk: ToolBuilder-MVC-mt.39.mcz
commits at source.squeak.org
commits at source.squeak.org
Sun Apr 12 16:32:04 UTC 2015
Marcel Taeumel uploaded a new version of ToolBuilder-MVC to project The Trunk:
http://source.squeak.org/trunk/ToolBuilder-MVC-mt.39.mcz
==================== Summary ====================
Name: ToolBuilder-MVC-mt.39
Author: mt
Time: 12 April 2015, 6:31:58.165 pm
UUID: 2e8d6ace-8555-3845-8d8f-e28c085c4811
Ancestors: ToolBuilder-MVC-dtl.38
Messages re-organized. We need an MVC tree implementation... or a useful fall-back. (Apple's multi-column views?)
=============== Diff against ToolBuilder-MVC-dtl.38 ===============
Item was added:
+ ----- Method: MVCToolBuilder>>buildPluggableAlternateMultiSelectionList: (in category 'widgets optional') -----
+ buildPluggableAlternateMultiSelectionList: aSpec
+
+ "Trim selector to one argument to match list expectations."
+ aSpec setIndex: (aSpec setIndex first: (aSpec setIndex findString: ':')) asSymbol.
+ ^ self buildPluggableList: aSpec.!
Item was changed:
+ ----- Method: MVCToolBuilder>>buildPluggableButton: (in category 'widgets required') -----
- ----- Method: MVCToolBuilder>>buildPluggableButton: (in category 'pluggable widgets') -----
buildPluggableButton: aSpec
| widget label state |
label := aSpec label.
state := aSpec state.
widget := PluggableButtonView on: aSpec model
getState: (state isSymbol ifTrue:[state])
action: aSpec action
label: (label isSymbol ifTrue:[label]).
self register: widget id: aSpec name.
label ifNotNil: [label isSymbol
ifTrue: [widget label: (aSpec model perform: label)]
ifFalse: [widget label: label]].
self setFrame: aSpec frame in: widget.
parent ifNotNil: [parent addSubView: widget].
^widget!
Item was changed:
+ ----- Method: MVCToolBuilder>>buildPluggableList: (in category 'widgets required') -----
- ----- Method: MVCToolBuilder>>buildPluggableList: (in category 'pluggable widgets') -----
buildPluggableList: aSpec
| widget listClass getIndex setIndex |
aSpec getSelected ifNil:[
listClass := PluggableListView.
getIndex := aSpec getIndex.
setIndex := aSpec setIndex.
] ifNotNil:[
listClass := PluggableListViewByItem.
getIndex := aSpec getSelected.
setIndex := aSpec setSelected.
].
widget := listClass on: aSpec model
list: aSpec list
selected: getIndex
changeSelected: setIndex
menu: aSpec menu
keystroke: aSpec keyPress.
self register: widget id: aSpec name.
self setFrame: aSpec frame in: widget.
parent ifNotNil:[parent addSubView: widget].
panes ifNotNil:[
aSpec list ifNotNil:[panes add: aSpec list].
].
^widget!
Item was changed:
+ ----- Method: MVCToolBuilder>>buildPluggablePanel: (in category 'widgets required') -----
- ----- Method: MVCToolBuilder>>buildPluggablePanel: (in category 'pluggable widgets') -----
buildPluggablePanel: aSpec
| widget children |
widget := View new model: aSpec model.
self register: widget id: aSpec name.
children := aSpec children.
children isSymbol ifTrue:[
"@@@@ FIXME: PluggablePanes need to remember their getChildrenSelector"
"widget getChildrenSelector: children.
widget update: children."
children := #().
].
self setFrame: aSpec frame in: widget.
self buildAll: children in: widget.
parent ifNotNil:[parent addSubView: widget].
self setLayout: aSpec layout in: widget.
^widget!
Item was changed:
+ ----- Method: MVCToolBuilder>>buildPluggableText: (in category 'widgets required') -----
- ----- Method: MVCToolBuilder>>buildPluggableText: (in category 'pluggable widgets') -----
buildPluggableText: aSpec
| widget |
widget := PluggableTextView on: aSpec model
text: aSpec getText
accept: aSpec setText
readSelection: aSpec selection
menu: aSpec menu.
self register: widget id: aSpec name.
self setFrame: aSpec frame in: widget.
parent ifNotNil:[parent addSubView: widget].
panes ifNotNil:[
aSpec getText ifNotNil:[panes add: aSpec getText].
].
^widget!
Item was added:
+ ----- Method: MVCToolBuilder>>buildPluggableTree: (in category 'widgets required') -----
+ buildPluggableTree: aSpec
+
+ self shouldBeImplemented.!
Item was changed:
+ ----- Method: MVCToolBuilder>>buildPluggableWindow: (in category 'widgets required') -----
- ----- Method: MVCToolBuilder>>buildPluggableWindow: (in category 'pluggable widgets') -----
buildPluggableWindow: aSpec
| widget children label |
topSize := 0 at 0 corner: 640 at 480.
aSpec layout == #proportional ifFalse:[
"This needs to be implemented - probably by adding a single pane and then the rest"
^self error: 'Not implemented'.
].
widget := StandardSystemView new.
self register: widget id: aSpec name.
widget model: aSpec model.
label := aSpec label.
label isSymbol ifTrue: [label := aSpec model perform: label].
label isNil ifFalse: [widget setLabel: label].
children := aSpec children.
children isSymbol ifTrue:[
"This isn't implemented by StandardSystemView, so we fake it"
children := widget model perform: children.
].
aSpec extent ifNotNil:[topSize := 0 at 0 extent: aSpec extent].
widget window: topSize.
panes := OrderedCollection new.
self buildAll: children in: widget.
widget setUpdatablePanesFrom: panes.
^widget!
More information about the Packages
mailing list