Preliminar support for notebooks with proper
%metadata nodes to be subscribed into the main help menu.
This commit is contained in:
parent
c5fc48c272
commit
880006df73
@ -21,11 +21,58 @@ Class {
|
|||||||
],
|
],
|
||||||
#classInstVars : [
|
#classInstVars : [
|
||||||
'dockingBar',
|
'dockingBar',
|
||||||
'recentNotebooks'
|
'recentNotebooks',
|
||||||
|
'helpMenu'
|
||||||
],
|
],
|
||||||
#category : #'Grafoscopio-UI'
|
#category : #'Grafoscopio-UI'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{ #category : #adding }
|
||||||
|
GrafoscopioDockingBar class >> addToHelpMenu: aGrafoscopioNotebook [
|
||||||
|
| metadata nbFile |
|
||||||
|
metadata := aGrafoscopioNotebook metadata.
|
||||||
|
nbFile := aGrafoscopioNotebook workingFile.
|
||||||
|
(metadata at: 'showOnHelp' ifAbsent: [ ^ self ])
|
||||||
|
ifTrue: [
|
||||||
|
self helpMenu submorphs
|
||||||
|
detect: [ :s | s contents = (metadata at: 'shortTitle') ]
|
||||||
|
ifFound: [
|
||||||
|
self inform:
|
||||||
|
'The notebook: ', String cr,
|
||||||
|
nbFile fullName, String cr,
|
||||||
|
' needs another shortTitle to be added to the docking bar Help Menu.' ]
|
||||||
|
ifNone: [
|
||||||
|
self helpMenu
|
||||||
|
add: (metadata at: 'shortTitle')
|
||||||
|
target: [ GrafoscopioNotebook open: nbFile ]
|
||||||
|
selector: #value ] ].
|
||||||
|
self updateUI
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
GrafoscopioDockingBar class >> defaultHelpMenu [
|
||||||
|
| defaultHelpMenu |
|
||||||
|
defaultHelpMenu := MenuMorph new.
|
||||||
|
defaultHelpMenu
|
||||||
|
add: 'Tutorial (Spanish)'
|
||||||
|
target: [ GrafoscopioNotebook open: GrafoscopioDocs tutorial ]
|
||||||
|
selector: #value;
|
||||||
|
add: 'Manual'
|
||||||
|
target: [ GrafoscopioNotebook open: GrafoscopioDocs manual ]
|
||||||
|
selector: #value;
|
||||||
|
add: 'Manual (PDF)'
|
||||||
|
target: GrafoscopioDocs
|
||||||
|
selector: #openPDFManual;
|
||||||
|
add: 'Dataviz'
|
||||||
|
target: [ GrafoscopioNotebook open: DatavizDocs introNotebook ]
|
||||||
|
selector: #value;
|
||||||
|
add: 'Dev''s notes'
|
||||||
|
target: [ GrafoscopioNotebook open: GrafoscopioDocs devNotes ]
|
||||||
|
selector: #value;
|
||||||
|
add: 'About Grafoscopio' target: self selector: #messageAbout.
|
||||||
|
^ defaultHelpMenu
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #specs }
|
{ #category : #specs }
|
||||||
GrafoscopioDockingBar class >> defaultSpec [
|
GrafoscopioDockingBar class >> defaultSpec [
|
||||||
<spec: #default>
|
<spec: #default>
|
||||||
@ -243,11 +290,49 @@ GrafoscopioDockingBar class >> exampleBootstrapUI [
|
|||||||
ui openWithSpecLayout: lay.
|
ui openWithSpecLayout: lay.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
GrafoscopioDockingBar class >> helpMenu [
|
||||||
|
^ helpMenu ifNil: [ helpMenu := self defaultHelpMenu ]
|
||||||
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
GrafoscopioDockingBar class >> helpMenu: anObject [
|
||||||
|
helpMenu := anObject
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #'class initialization' }
|
{ #category : #'class initialization' }
|
||||||
GrafoscopioDockingBar class >> initialize [
|
GrafoscopioDockingBar class >> initialize [
|
||||||
self start.
|
self start.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
GrafoscopioDockingBar class >> launchMenu [
|
||||||
|
| launchMenu |
|
||||||
|
launchMenu := MenuMorph new.
|
||||||
|
launchMenu
|
||||||
|
add: 'New notebook'
|
||||||
|
target: GrafoscopioNotebook new
|
||||||
|
selector: #openDefault;
|
||||||
|
add: 'Notebook from file...'
|
||||||
|
target: GrafoscopioNotebook new
|
||||||
|
selector: #openFromFileSelector;
|
||||||
|
add: 'Notebook from the Internet...'
|
||||||
|
target: GrafoscopioNotebook new
|
||||||
|
selector: #openFromUrlUI;
|
||||||
|
add: 'Recent notebooks...'
|
||||||
|
target: self
|
||||||
|
selector: #openFromRecentlyUsed;
|
||||||
|
add: 'Example notebooks...'
|
||||||
|
target: self
|
||||||
|
selector: #messageNotImplementedYet;
|
||||||
|
add: 'Roassal visualizations gallery'
|
||||||
|
target: RTExampleBrowser new
|
||||||
|
selector: #open;
|
||||||
|
add: 'Playground' target: Smalltalk tools selector: #openWorkspace;
|
||||||
|
add: 'Transcript' target: Smalltalk tools selector: #openTranscript.
|
||||||
|
^ launchMenu
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #'graphical interface' }
|
{ #category : #'graphical interface' }
|
||||||
GrafoscopioDockingBar class >> messageAbout [
|
GrafoscopioDockingBar class >> messageAbout [
|
||||||
"I show the author(s), license, sponsors and main contributors to the project
|
"I show the author(s), license, sponsors and main contributors to the project
|
||||||
@ -371,48 +456,14 @@ GrafoscopioDockingBar class >> showSettings [
|
|||||||
GrafoscopioDockingBar class >> start [
|
GrafoscopioDockingBar class >> start [
|
||||||
"Creates a custom docking bar for grafoscopio on top, for shorcuts to the most used actions,
|
"Creates a custom docking bar for grafoscopio on top, for shorcuts to the most used actions,
|
||||||
and as a fixed place for asking for help, external tools and grafoscopio updates and about"
|
and as a fixed place for asking for help, external tools and grafoscopio updates and about"
|
||||||
|
|
||||||
| launchMenu helpMenu updateMenu |
|
|
||||||
|
|
||||||
launchMenu := MenuMorph new.
|
|
||||||
launchMenu
|
|
||||||
add: 'New notebook' target: (GrafoscopioNotebook new) selector: #openDefault;
|
|
||||||
add: 'Notebook from file...' target: (GrafoscopioNotebook new) selector: #openFromFileSelector;
|
|
||||||
add: 'Notebook from the Internet...' target: (GrafoscopioNotebook new) selector: #openFromUrlUI;
|
|
||||||
add: 'Recent notebooks...' target: self selector: #openFromRecentlyUsed;
|
|
||||||
add: 'Example notebooks...' target: self selector: #messageNotImplementedYet;
|
|
||||||
add: 'Roassal visualizations gallery' target: (RTExampleBrowser new) selector: #open;
|
|
||||||
add: 'Playground' target: (Smalltalk tools) selector: #openWorkspace;
|
|
||||||
add: 'Transcript' target: (Smalltalk tools) selector: #openTranscript.
|
|
||||||
|
|
||||||
updateMenu := MenuMorph new.
|
|
||||||
updateMenu
|
|
||||||
add: 'Grafoscopio' target: self selector: #updateGrafoscopioUI;
|
|
||||||
add: 'Documentation' target: GrafoscopioDocumentation selector: #updateAllUI;
|
|
||||||
add: 'DataViz package' target: self selector: #updateDatavizUI;
|
|
||||||
add: 'Notebooks places' target: GrafoscopioDocumentation selector: #updateDocsPlaceUI;
|
|
||||||
"add: 'Database engine' target: ExternalApp selector: #installSQLite32BitsUI;
|
|
||||||
add: 'Pandoc path' target: ExternalApp selector: #configurePandoc;
|
|
||||||
add: 'Fossil path' target: ExternalApp selector: #configureFossil;"
|
|
||||||
add: 'All the system' target: self selector: #updateSystem.
|
|
||||||
|
|
||||||
helpMenu := MenuMorph new.
|
|
||||||
helpMenu
|
|
||||||
add: 'Tutorial (Spanish)' target: [GrafoscopioNotebook open: GrafoscopioDocs tutorial] selector: #value;
|
|
||||||
add: 'Manual' target: [ GrafoscopioNotebook open: GrafoscopioDocs manual ] selector: #value;
|
|
||||||
add: 'Manual (PDF)' target: GrafoscopioDocs selector: #openPDFManual;
|
|
||||||
add: 'Dataviz' target: [ GrafoscopioNotebook open: DatavizDocs introNotebook ] selector: #value ;
|
|
||||||
add: 'Dev''s notes' target: [GrafoscopioNotebook open: GrafoscopioDocs devNotes ] selector: #value;
|
|
||||||
add: 'About Grafoscopio' target: self selector: #messageAbout.
|
|
||||||
|
|
||||||
dockingBar := DockingBarMorph new.
|
dockingBar := DockingBarMorph new.
|
||||||
dockingBar
|
dockingBar
|
||||||
add: 'Launch' subMenu: launchMenu;
|
add: 'Launch' subMenu: self launchMenu;
|
||||||
add: 'Update' subMenu: updateMenu;
|
add: 'Update' subMenu: self updateMenu;
|
||||||
add: 'Help' subMenu: helpMenu.
|
add: 'Help' subMenu: self helpMenu.
|
||||||
dockingBar
|
dockingBar
|
||||||
adhereToTop;
|
adhereToTop;
|
||||||
openInWorld.
|
openInWorld
|
||||||
]
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
@ -469,6 +520,23 @@ GrafoscopioDockingBar class >> updateGrafoscopioUI [
|
|||||||
self inform: 'Grafoscopio update finished'
|
self inform: 'Grafoscopio update finished'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #accessing }
|
||||||
|
GrafoscopioDockingBar class >> updateMenu [
|
||||||
|
| updateMenu |
|
||||||
|
updateMenu := MenuMorph new.
|
||||||
|
updateMenu
|
||||||
|
add: 'Grafoscopio' target: self selector: #updateGrafoscopioUI;
|
||||||
|
add: 'Documentation'
|
||||||
|
target: GrafoscopioDocumentation
|
||||||
|
selector: #updateAllUI;
|
||||||
|
add: 'DataViz package' target: self selector: #updateDatavizUI;
|
||||||
|
add: 'Notebooks places'
|
||||||
|
target: GrafoscopioDocumentation
|
||||||
|
selector: #updateDocsPlaceUI;
|
||||||
|
add: 'All the system' target: self selector: #updateSystem.
|
||||||
|
^ updateMenu
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #updating }
|
{ #category : #updating }
|
||||||
GrafoscopioDockingBar class >> updatePrerrequisitesScript [
|
GrafoscopioDockingBar class >> updatePrerrequisitesScript [
|
||||||
"Updates the system prerequisites with new versions of itself take from the source code repository"
|
"Updates the system prerequisites with new versions of itself take from the source code repository"
|
||||||
|
@ -409,6 +409,11 @@ GrafoscopioNotebook >> markdownFileChecksumUpto: anInteger [
|
|||||||
^ self markdownFileChecksum copyFrom: 1 to: anInteger asInteger.
|
^ self markdownFileChecksum copyFrom: 1 to: anInteger asInteger.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
{ #category : #utilities }
|
||||||
|
GrafoscopioNotebook >> metadata [
|
||||||
|
^ self notebook metadata
|
||||||
|
]
|
||||||
|
|
||||||
{ #category : #'editing nodes' }
|
{ #category : #'editing nodes' }
|
||||||
GrafoscopioNotebook >> moveNodeAfter [
|
GrafoscopioNotebook >> moveNodeAfter [
|
||||||
| editedNode |
|
| editedNode |
|
||||||
|
Loading…
Reference in New Issue
Block a user