Preliminary support for tagged nodes! :-). When a tag is added the node needs to be revisited to show the changes in the body pane. Will be nice to have this happening as soon as the tag is added.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2015-01-17 16:23:39 +00:00
parent 990ff595b1
commit 9bf5bb4332

View File

@ -85,6 +85,52 @@ GrafoscopioBrowser >> addToTagsAvailable [
]
{ #category : #'graphical interface' }
GrafoscopioBrowser >> bodyForCodeIn: constructor for: aNode [
"Shows the body of a selected node"
aNode tags = 'código'
ifFalse: [ ^self ].
(constructor smalltalkCode)
title: 'Código en Smalltalk';
format: [aNode body]
"
^(constructor smalltalkCode)
title: 'Código en Smalltalk';
format:[aNode body].
constructor tags = 'código'
ifFalse: [^self ]
ifTrue: [
^(constructor smalltalkCode)
title: 'Código de Smalltalk';
populate: #acceptedCode icon: GLMUIThemeExtraIcons glamorousAccept on: $s entitled: 'Accept' with: [:text | text text ]
]"
]
{ #category : #'graphical interface' }
GrafoscopioBrowser >> bodyForCodeOn: constructor [
"Shows the body of a selected node"
^(constructor smalltalkCode)
title: 'Código en Smalltalk';
format:[:eachNode | eachNode body].
"
constructor tags = 'código'
ifFalse: [^self ]
ifTrue: [
^(constructor smalltalkCode)
title: 'Código de Smalltalk';
populate: #acceptedCode icon: GLMUIThemeExtraIcons glamorousAccept on: $s entitled: 'Accept' with: [:text | text text ]
]"
]
{ #category : #'graphical interface' }
GrafoscopioBrowser >> bodyForTransmediaOn: constructor [
"Shows the body of a transmedia type of node"
@ -93,17 +139,33 @@ GrafoscopioBrowser >> bodyForTransmediaOn: constructor [
]
{ #category : #'graphical interface' }
GrafoscopioBrowser >> bodyOn: constructor [
GrafoscopioBrowser >> bodyIn: constructor [
"Shows the body of a selected node"
(constructor text)
title: 'Cuerpo | Body ';
title: 'Texto ';
format:[:eachNode |
(eachNode body) isNil
ifTrue: [ '' ]
ifFalse: [ eachNode body]].
]
{ #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"
aNode tags isNil
ifFalse: [^self ].
(constructor text)
title: 'Texto ';
format:[
aNode body isNil
ifTrue: [ '' ]
ifFalse: [ aNode body]].
]
{ #category : #'graphical interface' }
GrafoscopioBrowser >> buildBrowser [
"Main method for building the interface for trees and its nodes"
@ -125,11 +187,11 @@ browser
(browser transmit)
to: #tree;
andShow: [:a | self treeOn: a].
"Creating a self updatable body pane"
"Creating a self updateable body pane"
(browser transmit)
to: #nodeBody;
from: #tree;
andShow: [ :a | self bodyOn: a].
andShow: [ :a | self bodyIn: a].
(browser transmit )
from: #tree port: #selection;
from: #nodeBody port: #text;
@ -188,9 +250,11 @@ browser
andShow: [:a | self treeOn: a].
"Creating a self updatable body pane"
(browser transmit)
to: #nodeBody;
from: #tree;
andShow: [ :a | self bodyOn: a].
to: #nodeBody;
andShow: [ :a :node |
self bodyIn: a for: node.
self bodyForCodeIn: a for: node].
(browser transmit )
from: #tree port: #selection;
from: #nodeBody port: #text;
@ -284,7 +348,8 @@ GrafoscopioBrowser >> configureInitialTags [
tagsAvailable
add: 'obra';
add: 'original';
add: 'transmediado'.
add: 'transmediado';
add: 'código'.
]
{ #category : #'system-support' }
@ -833,7 +898,13 @@ GrafoscopioBrowser >> treeOn: constructor [
(treePresentation selection isNotNil)
ifTrue: [self addTagTo: treePresentation selection]]
entitled: 'Agregar al nodo' categorized: 'Etiquetas';
act: [self messageNotImplementedYet] entitled: 'Eliminar del nodo' categorized: 'Etiquetas';
act: [:treePresentation |
(treePresentation selection isNotNil)
ifTrue: [
treePresentation selection tagAs: nil.
browser update.
]]
entitled: 'Eliminar del nodo' categorized: 'Etiquetas';
act: [self showTagsAvailable] entitled: 'Ver disponibles' categorized: 'Etiquetas';
act: [self addToTagsAvailable] entitled: 'Agregar a disponibles' categorized: 'Etiquetas';