Just before testing pager as a way to make custom visualization of nodes instead of opening a new file in a new mode. This save us from reloading the file, gives more flexibility and inmediate feedback according to the kind of node (as marked by tags ) we're located on.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2015-01-16 15:57:44 +00:00
parent a1a8d0d21c
commit 990ff595b1
2 changed files with 34 additions and 6 deletions

View File

@ -609,7 +609,7 @@ GrafoscopioBrowser >> panelBrowserForTransmediaton [
Opens grafoscopio in several 'modes'. Each mode corresponds to a operation way, with an specific interface. Opens grafoscopio in several 'modes'. Each mode corresponds to a operation way, with an specific interface.
We will start with a 'transmediaton' mode to let the people create some transmedia content. We will start with a 'transmediaton' mode to let the people create some transmedia content.
After that we will enable other modes" After that we will enable other modes"
| transmediaNode | | transmediaNode originalNode |
browser := GLMTabulator new. browser := GLMTabulator new.
browser browser
@ -624,9 +624,11 @@ GrafoscopioBrowser >> panelBrowserForTransmediaton [
format:[:eachNode | format:[:eachNode |
(eachNode tags) = 'original' (eachNode tags) = 'original'
ifFalse: [ '' ] ifFalse: [ '' ]
ifTrue: [ ifTrue: [
transmediaNode := eachNode children detect: [:node | node tags = 'transmediado']. originalNode := eachNode.
eachNode body]]]. originalNode children isNotNil
ifTrue: [transmediaNode := originalNode children detect: [:node | node tags = 'transmediado'] ifNone: [ transmediaNode := nil ] ].
originalNode body]]].
(browser transmit) (browser transmit)
from: #original; from: #original;
toOutsidePort: #text. toOutsidePort: #text.

View File

@ -82,6 +82,23 @@ GrafoscopioNode >> addNodeAfter [
] ]
{ #category : #accessing }
GrafoscopioNode >> ancestors [
"Returns a collection of all the nodes wich are ancestors of the receiver node"
| currentNode ancestors |
currentNode := self.
ancestors := OrderedCollection new.
(self level - 1)
timesRepeat: [
ancestors add: currentNode parent.
currentNode := currentNode parent.].
ancestors := ancestors reversed.
^ ancestors
]
{ #category : #accessing } { #category : #accessing }
GrafoscopioNode >> ancestorsHeaders [ GrafoscopioNode >> ancestorsHeaders [
"Returns the headers of all the ancestors of the node. Maybe this and 'headers' should be integrated, so both act on a collection of "Returns the headers of all the ancestors of the node. Maybe this and 'headers' should be integrated, so both act on a collection of
@ -108,7 +125,7 @@ GrafoscopioNode >> asMarkdown [
markdownOutput := '' writeStream. markdownOutput := '' writeStream.
(self preorderTraversal) do: [ :eachNode | (self preorderTraversal) do: [ :eachNode |
(eachNode level > 0) & (eachNode header notNil) ifTrue: [ (eachNode level > 0) & (eachNode header notNil) ifTrue: [
(eachNode hasAncestorWith: '%invisible') not (eachNode hasAncestorHeaderWith: '%invisible') not
ifTrue: [ markdownOutput nextPutAll: (eachNode markdownContent) ]]]. ifTrue: [ markdownOutput nextPutAll: (eachNode markdownContent) ]]].
^markdownOutput contents ^markdownOutput contents
@ -184,12 +201,21 @@ GrafoscopioNode >> demote [
] ]
{ #category : #exporting } { #category : #exporting }
GrafoscopioNode >> hasAncestorWith: aSpecialWord [ GrafoscopioNode >> hasAncestorHeaderWith: aSpecialWord [
"Looks if the receptor node has an ancestor with a header with 'aSpecialWord' as the only or the first word" "Looks if the receptor node has an ancestor with a header with 'aSpecialWord' as the only or the first word"
^ (self ancestorsHeaders includes: aSpecialWord) | ((self ancestorsHeaders collect: [:eachHeader | (eachHeader findTokens: $ ) at: 1 ]) includes: aSpecialWord) ^ (self ancestorsHeaders includes: aSpecialWord) | ((self ancestorsHeaders collect: [:eachHeader | (eachHeader findTokens: $ ) at: 1 ]) includes: aSpecialWord)
]
{ #category : #exporting }
GrafoscopioNode >> hasAncestorTaggedAs: aSpecialWord [
"Looks if the receptor node has an ancestor with a header with 'aSpecialWord' as the only or the first word"
^ self ancestors detect: [:eachAncestor | eachAncestor tags = aSpecialWord ]
] ]
{ #category : #accessing } { #category : #accessing }