Dinamic dictionary as a learning exercise for more comples UI. Empty playgrounds are working.
This commit is contained in:
parent
3664284fd0
commit
483ac2acc9
@ -16,7 +16,10 @@ DynamicDict class >> defaultSpec [
|
||||
<spec: #default>
|
||||
|
||||
^ SpecLayout composed
|
||||
add: #list;
|
||||
newRow: [:row |
|
||||
row
|
||||
add: #list right: 0.7;
|
||||
add: #content left: 0.3];
|
||||
yourself
|
||||
]
|
||||
|
||||
@ -33,8 +36,10 @@ DynamicDict >> content: anObject [
|
||||
{ #category : #'as yet unclassified' }
|
||||
DynamicDict >> initializePresenter [
|
||||
list whenSelectedItemChanged: [:item |
|
||||
self rebuildWithNewLayout.
|
||||
|
||||
item = 'first'
|
||||
ifTrue: [ self rebuildWithTextLayout ].
|
||||
item = 'second'
|
||||
ifTrue: [ self rebuildWithCodeLayout ].
|
||||
]
|
||||
]
|
||||
|
||||
@ -45,7 +50,10 @@ DynamicDict >> initializeWidgets [
|
||||
data := { 'first' -> 'I\"m just text' . 'second' -> 'ProfStef openPharoZenWorkspace'} asOrderedDictionary.
|
||||
list := self newList.
|
||||
list items: data keys.
|
||||
self focusOrder add: list.
|
||||
content := self newText.
|
||||
self focusOrder
|
||||
add: list;
|
||||
add: content.
|
||||
]
|
||||
|
||||
{ #category : #accessing }
|
||||
@ -58,6 +66,41 @@ DynamicDict >> list: anObject [
|
||||
list := anObject
|
||||
]
|
||||
|
||||
{ #category : #'as yet unclassified' }
|
||||
DynamicDict >> rebuildWithCodeLayout [
|
||||
| newLayout |
|
||||
|
||||
content := self instantiate: (GlamourPresentationModel).
|
||||
newLayout := SpecLayout composed
|
||||
newRow: [:row |
|
||||
row
|
||||
add: #list right: 0.7;
|
||||
add: #content left: 0.3];
|
||||
yourself.
|
||||
self needRebuild: false.
|
||||
content needRebuild: true.
|
||||
Transcript show: 'código + ', self content asString, String cr.
|
||||
self buildWithSpecLayout: newLayout.
|
||||
]
|
||||
|
||||
{ #category : #'as yet unclassified' }
|
||||
DynamicDict >> rebuildWithTextLayout [
|
||||
| newLayout |
|
||||
|
||||
content := self newText.
|
||||
newLayout := SpecLayout composed
|
||||
newRow: [:row |
|
||||
row
|
||||
add: #list right: 0.7;
|
||||
add: #content left: 0.3];
|
||||
yourself.
|
||||
self needRebuild: false.
|
||||
list needRebuild: false.
|
||||
content needRebuild: true.
|
||||
Transcript show: 'texto + ', self content asString, String cr..
|
||||
self buildWithSpecLayout: newLayout.
|
||||
]
|
||||
|
||||
{ #category : #api }
|
||||
DynamicDict >> title [
|
||||
^'Dynamic UI | test'
|
||||
|
@ -639,8 +639,8 @@ GrafoscopioBrowser >> bodyIn: constructor [
|
||||
|
||||
{ #category : #'graphical interface' }
|
||||
GrafoscopioBrowser >> bodyIn: constructor for: aNode [
|
||||
"Shows the body in a constructor for selected node, if node is not tagged. If it is tagged it will return itself, so it can be rendered
|
||||
properly for other messages"
|
||||
"Shows the body in a constructor for selected node, if node is not tagged.
|
||||
If it is tagged it will return itself, so it can be rendered properly for other messages"
|
||||
|
||||
| specialTags |
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user