diff --git a/repository/Grafoscopio/GrafoscopioBrowser.class.st b/repository/Grafoscopio/GrafoscopioBrowser.class.st index e8b6bb4..048d1fc 100644 --- a/repository/Grafoscopio/GrafoscopioBrowser.class.st +++ b/repository/Grafoscopio/GrafoscopioBrowser.class.st @@ -70,6 +70,19 @@ GrafoscopioBrowser >> addFileToRepository [ 'echo "Added file to enabled repository"'. ] +{ #category : #'graphical interface' } +GrafoscopioBrowser >> bodyForTransmediaOn: constructor [ + "Shows the body of a transmedia type of node" + + "(constructor text) + title: 'Cuerpo | Body '; + format:[:eachNode | + (eachNode body) isNil + ifTrue: [ '' ] + ifFalse: [ eachNode body]]." + constructor custom: self panelBrowserForTransmedia. +] + { #category : #'graphical interface' } GrafoscopioBrowser >> bodyOn: constructor [ "Shows the body of a selected node" @@ -84,7 +97,7 @@ GrafoscopioBrowser >> bodyOn: constructor [ { #category : #'graphical interface' } GrafoscopioBrowser >> buildBrowser [ -"Main method for building the interface for trees. Is getting long. Needs refactoring" +"Main method for building the interface for trees and its nodes" browser := GLMTabulator new title: 'Grafoscopio'. @@ -140,6 +153,49 @@ browser ] +{ #category : #'graphical interface' } +GrafoscopioBrowser >> buildBrowserTransmedia [ +"Main method for building the interface for trees and its nodes" + +browser := GLMTabulator new + title: 'Transmediaton | Grafoscopio'. + +browser + column: [:c | + c row: #tree; + row: #nodeHeader] span: 2; + column: [ :c | + c row: #nodeBody span: 2] span: 4. +browser + updateOn: GLMItemAdded from: #yourself; + updateOn: GLMItemRemoved from: #yourself. + +(browser transmit) + to: #tree; + andShow: [:a | self treeOn: a]. +"Creating a self updatable body pane" +(browser transmit) + to: #nodeBody; + from: #tree; + andShow: [ :a | self bodyForTransmediaOn: a]. +(browser transmit ) + from: #tree port: #selection; + from: #nodeBody port: #text; + when: [:node :text | text notNil]; + to: #nodeBody port: #neverland; + transformed: [:node :text | node body: text asString]. +(browser transmit) + from: #tree; + to: #nodeHeader; + andShow: [ :h | self headerOn: h ]. +(browser transmit ) + from: #tree port: #selection; + from: #nodeHeader port: #text; + when: [:node :text | text notNil]; + to: #nodeHeader port: #neverland1; + transformed: [:node :text | node header: text asString] +] + { #category : #'system-support' } GrafoscopioBrowser >> configureFossil [ "Stablish where is located fossil according to the operative system and the input of the user" @@ -385,36 +441,15 @@ GrafoscopioBrowser >> openInModeTransmediaton [ 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. After that we will enable other modes" - browser := GLMTabulator new - title: 'Transmediatón ', ' | Grafoscopio'. - browser - column: #tree span: 2; - column: [ :c | - c row: [ :r | r column: #original; column: #transmediado]; - row: #buttons]. - - browser - updateOn: GLMItemAdded from: #yourself; - updateOn: GLMItemRemoved from: #yourself. - - (browser transmit) - to: #tree; - andShow: [:a | self treeOn: a]. - - (browser transmit) - to: #original; - andShow: [ :a | a text title: 'Original' ]. - (browser transmit) - to: #transmediado; - andShow: [ :a | a text title: 'Transmediado' ]. - (browser transmit) - to: #buttons; - andShow: [ :a | - a actionList - act: [:entity | entity inspect ] entitled: 'Subir'; - act: [:entity | entity explore ] entitled: 'Previsualizar'; - act: [:entity | entity explore ] entitled: 'Publicar']. - browser openOn: '' + | draftsLocation | + "self configureSettings." + self buildBrowserTransmedia. + mainTree := GrafoscopioNode new. + mainTree becomeDefaultTree. + draftsLocation := FileSystem disk workingDirectory / 'Grafoscopio' / 'Drafts'. + draftsLocation ensureCreateDirectory. + workingFile := draftsLocation / 'draft.ston'. + browser openOn: mainTree children. ] @@ -452,6 +487,35 @@ GrafoscopioBrowser >> openWorking [ ] +{ #category : #'graphical interface' } +GrafoscopioBrowser >> panelBrowserForTransmedia [ + "**Experimental feature.** + 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. + After that we will enable other modes" + browser := GLMTabulator new. + browser + column: [ :c | + c row: [ :r | r column: #original; column: #transmediado]; + row: #buttons]. + (browser transmit) + to: #original; + andShow: [ :a | a text title: 'Original' ]. + (browser transmit) + to: #transmediado; + andShow: [ :a | a text title: 'Transmediado' ]. + (browser transmit) + to: #buttons; + andShow: [ :a | + a actionList + act: [:entity | entity inspect ] entitled: 'Subir'; + act: [:entity | entity explore ] entitled: 'Previsualizar'; + act: [:entity | entity explore ] entitled: 'Publicar']. + browser openOn: ''. + ^ browser. + +] + { #category : #persistence } GrafoscopioBrowser >> replaceContentsFromCache: aNode [ "Replaces the contents of aNode from the ones in cacheNode. It doesn't work recursively yet, so it doen't copy the children of the nodes"