Starting deprecation of GrafoscopioBrowser: Moving class methods to GrafoscopioGUI.

This commit is contained in:
Offray Vladimir Luna Cárdenas 2016-07-21 12:19:22 +00:00
parent 17e0405b11
commit b9f52f2f87
3 changed files with 195 additions and 190 deletions

View File

@ -29,170 +29,6 @@ Class {
#category : #'Grafoscopio-UI' #category : #'Grafoscopio-UI'
} }
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> downloadingFrom: downloadUrl withMessage: aString into: location [
[: bar |
bar title: aString.
[ZnClient new
enforceHttpSuccess: true;
url: downloadUrl;
downloadTo: location;
signalProgress: true
]
on: HTTPProgress
do: [ :progress |
progress isEmpty ifFalse: [ bar current: progress percentage ].
progress resume ].
] asJob run.
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> messageAbout [
"Shows the author, license, sponsors and main contributors to the project and point to further documentation on the web"
LongMessageDialogWindow new
entryText:
'_.:| Grafoscopio |:._',
(String with: Character cr),
'(c) Copyright 2014-2016 by Offray Vladimir Luna Cárdenas',
(String with: Character cr),
'Covered under MIT license.',
(String with: Character cr),
(String with: Character cr),
'[ Sponsors ]',
(String with: Character cr),
'mutabiT | www.mutabit.com ',
(String with: Character cr),
'HiTec Lab, Fundación Universitaria Los Libertadores | www.ulibertadores.edu.co ',
(String with: Character cr),
(String with: Character cr),
'[ Thanks to ]',
(String with: Character cr),
'HackBo, Hackerspace Bogota | http://hackbo.co',
(String with: Character cr),
'// Regular workshops attendees \\
Rafael Medida, Iván Pulido, Camilo Hurtado',
(String with: Character cr),
'// Coffe talk (mostly about grafoscopio) \\
Yanneth Gil, Andrés Calderón, Luis Alejandro Bernal',
(String with: Character cr),
'// Pharo, Moose and Agile Visualization communities \\
Tudor Girba, Alexandre Bergel, Nicolai Hess, Peter Uhnák, Milton Mamani ',
(String with: Character cr),
'// Family support while writing, coding & travelling (among others!) \\
Divian Luna, Hilda Cárdenas',
(String with: Character cr),
(String with: Character cr),
'For further details and versions go to:',
(String with: Character cr),
(String with: Character cr),
'http://mutabit.com/grafoscopio';
title: 'About Grafoscopio';
open.
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> messageNoRecentDocuments [
"Shows that a feature is not implemeted and point to further documentation on the web"
UIManager default abort:
'No hay documentos recientes.',
(String with: Character cr),
'Abra un documento usando el menú:',
(String with: Character cr),
(String with: Character cr),
'"Lanzar > Documento interactivo desde archivo"',
(String with: Character cr),
(String with: Character cr)
title: 'No hay documentos recientes'.
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> messageNotImplementedYet [
"Shows that a feature is not implemeted and point to further documentation on the web"
UIManager default abort:
'Esta funcionalidad aún no está implementada!',
(String with: Character cr),
'Para información sobre futuras versiones, por favor visite: ',
(String with: Character cr),
(String with: Character cr),
'http://mutabit.com/grafoscopio',
(String with: Character cr),
(String with: Character cr)
title: 'No implementado aún'.
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> open [
^ self new open
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> openFromRecentlyUsed [
"Opens a recent notebooks list"
| selection |
recentTrees isNil
ifFalse: [
selection := UIManager default chooseFrom: recentTrees title: 'Elija una documento'.
GrafoscopioBrowser new openFromFile: (recentTrees at: selection)
]
ifTrue: [self messageNoRecentDocuments].
"browser update".
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> openHelpInHtml [
"Launches the help manual in PDF format in an external viewer."
| htmlHelpFileLocation |
htmlHelpFileLocation := (FileSystem disk workingDirectory parent / 'Docs' /'Es' / 'Manual' / 'manual-grafoscopio.html') fullName.
Smalltalk platform name = 'unix'
ifTrue: [OSProcess command: 'xdg-open ', htmlHelpFileLocation].
Smalltalk platform name = 'Win32'
ifTrue: [OSProcess command: 'explorer ', htmlHelpFileLocation].
Smalltalk platform name = 'Mac OS'
ifTrue: [OSProcess command: 'open ', htmlHelpFileLocation].
]
{ #category : #'graphical interface' }
GrafoscopioBrowser class >> openHelpInPdf [
"Launches the help manual in PDF format in an external viewer."
| pdfHelpFileLocation |
pdfHelpFileLocation := (FileSystem disk workingDirectory parent / 'Docs' /'Es' / 'Manual' / 'manual-grafoscopio.pdf') fullName.
Smalltalk platform name = 'unix'
ifTrue: [OSProcess command: 'xdg-open ', pdfHelpFileLocation].
Smalltalk platform name = 'Win32'
ifTrue: [OSProcess command: 'explorer ', pdfHelpFileLocation].
Smalltalk platform name = 'Mac OS'
ifTrue: [OSProcess command: 'open ', pdfHelpFileLocation].
]
{ #category : #configuration }
GrafoscopioBrowser class >> showSettings [
"Shows the settings in a Transcript. This should return a dictionary for better management of the settings. For the moment
is a quick a dirty hack"
Transcript show: fossil; cr.
Transcript show: pandoc
]
{ #category : #updating }
GrafoscopioBrowser class >> updateUI [
"I update the User Interface (UI) with new versions of the docking bar or logos where available.
I'm helpful while testing new functionality that should be expossed to the user via the UI"
dockingBar delete.
GrafoscopioGUI startDockingBar.
]
{ #category : #tags } { #category : #tags }
GrafoscopioBrowser >> addTagTo: aNode [ GrafoscopioBrowser >> addTagTo: aNode [
"Tags the node passed as argument with a value from the collection of tags available" "Tags the node passed as argument with a value from the collection of tags available"

View File

@ -127,6 +127,24 @@ GrafoscopioGUI class >> dockingBar: anObject [
dockingBar := anObject dockingBar := anObject
] ]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> downloadingFrom: downloadUrl withMessage: aString into: location [
[: bar |
bar title: aString.
[ZnClient new
enforceHttpSuccess: true;
url: downloadUrl;
downloadTo: location;
signalProgress: true
]
on: HTTPProgress
do: [ :progress |
progress isEmpty ifFalse: [ bar current: progress percentage ].
progress resume ].
] asJob run.
]
{ #category : #examples } { #category : #examples }
GrafoscopioGUI class >> exampleBootstrapDynamicUI1 [ GrafoscopioGUI class >> exampleBootstrapDynamicUI1 [
"Starting from an example UI from the Spec-Glamour, to customize towards the grafoscopio "Starting from an example UI from the Spec-Glamour, to customize towards the grafoscopio
@ -339,6 +357,134 @@ GrafoscopioGUI class >> isDocUpdatedFor: aDocumentType [
] ]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> messageAbout [
"Shows the author, license, sponsors and main contributors to the project and point to further documentation on the web"
LongMessageDialogWindow new
entryText:
'_.:| Grafoscopio |:._',
(String with: Character cr),
'(c) Copyright 2014-2016 by Offray Vladimir Luna Cárdenas',
(String with: Character cr),
'Covered under MIT license.',
(String with: Character cr),
(String with: Character cr),
'[ Sponsors ]',
(String with: Character cr),
'mutabiT | www.mutabit.com ',
(String with: Character cr),
'HiTec Lab, Fundación Universitaria Los Libertadores | www.ulibertadores.edu.co ',
(String with: Character cr),
(String with: Character cr),
'[ Thanks to ]',
(String with: Character cr),
'HackBo, Hackerspace Bogota | http://hackbo.co',
(String with: Character cr),
'// Regular workshops attendees \\
Rafael Medida, Iván Pulido, Camilo Hurtado',
(String with: Character cr),
'// Coffe talk (mostly about grafoscopio) \\
Yanneth Gil, Andrés Calderón, Luis Alejandro Bernal',
(String with: Character cr),
'// Pharo, Moose and Agile Visualization communities \\
Tudor Girba, Alexandre Bergel, Nicolai Hess, Peter Uhnák, Milton Mamani ',
(String with: Character cr),
'// Family support while writing, coding & travelling (among others!) \\
Divian Luna, Hilda Cárdenas',
(String with: Character cr),
(String with: Character cr),
'For further details and versions go to:',
(String with: Character cr),
(String with: Character cr),
'http://mutabit.com/grafoscopio';
title: 'About Grafoscopio';
open.
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> messageNoRecentDocuments [
"Shows that a feature is not implemeted and point to further documentation on the web"
UIManager default abort:
'No hay documentos recientes.',
(String with: Character cr),
'Abra un documento usando el menú:',
(String with: Character cr),
(String with: Character cr),
'"Lanzar > Documento interactivo desde archivo"',
(String with: Character cr),
(String with: Character cr)
title: 'No hay documentos recientes'.
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> messageNotImplementedYet [
"Shows that a feature is not implemeted and point to further documentation on the web"
UIManager default abort:
'Esta funcionalidad aún no está implementada!',
(String with: Character cr),
'Para información sobre futuras versiones, por favor visite: ',
(String with: Character cr),
(String with: Character cr),
'http://mutabit.com/grafoscopio',
(String with: Character cr),
(String with: Character cr)
title: 'No implementado aún'.
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> open [
^ self new open
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> openFromRecentlyUsed [
"Opens a recent notebooks list"
| selection |
recentTrees isNil
ifFalse: [
selection := UIManager default chooseFrom: recentTrees title: 'Elija una documento'.
GrafoscopioBrowser new openFromFile: (recentTrees at: selection)
]
ifTrue: [self messageNoRecentDocuments].
"browser update".
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> openHelpInHtml [
"Launches the help manual in PDF format in an external viewer."
| htmlHelpFileLocation |
htmlHelpFileLocation := (FileSystem disk workingDirectory parent / 'Docs' /'Es' / 'Manual' / 'manual-grafoscopio.html') fullName.
Smalltalk platform name = 'unix'
ifTrue: [OSProcess command: 'xdg-open ', htmlHelpFileLocation].
Smalltalk platform name = 'Win32'
ifTrue: [OSProcess command: 'explorer ', htmlHelpFileLocation].
Smalltalk platform name = 'Mac OS'
ifTrue: [OSProcess command: 'open ', htmlHelpFileLocation].
]
{ #category : #'graphical interface' }
GrafoscopioGUI class >> openHelpInPdf [
"Launches the help manual in PDF format in an external viewer."
| pdfHelpFileLocation |
pdfHelpFileLocation := (FileSystem disk workingDirectory parent / 'Docs' /'Es' / 'Manual' / 'manual-grafoscopio.pdf') fullName.
Smalltalk platform name = 'unix'
ifTrue: [OSProcess command: 'xdg-open ', pdfHelpFileLocation].
Smalltalk platform name = 'Win32'
ifTrue: [OSProcess command: 'explorer ', pdfHelpFileLocation].
Smalltalk platform name = 'Mac OS'
ifTrue: [OSProcess command: 'open ', pdfHelpFileLocation].
]
{ #category : #accessing } { #category : #accessing }
GrafoscopioGUI class >> recentNotebooks [ GrafoscopioGUI class >> recentNotebooks [
^ recentNotebooks ifNil: [ ^ OrderedCollection new ] ^ recentNotebooks ifNil: [ ^ OrderedCollection new ]
@ -349,6 +495,15 @@ GrafoscopioGUI class >> recentNotebooks: anObject [
recentNotebooks := anObject recentNotebooks := anObject
] ]
{ #category : #configuration }
GrafoscopioGUI class >> showSettings [
"Shows the settings in a Transcript. This should return a dictionary for better management of the settings. For the moment
is a quick a dirty hack"
Transcript show: fossil; cr.
Transcript show: pandoc
]
{ #category : #'graphical interface' } { #category : #'graphical interface' }
GrafoscopioGUI class >> startDockingBar [ GrafoscopioGUI class >> startDockingBar [
"Creates a custom docking bar for grafoscopio on top, with shorcuts for most used actions, and a fixed place for asking for help. "Creates a custom docking bar for grafoscopio on top, with shorcuts for most used actions, and a fixed place for asking for help.
@ -380,7 +535,7 @@ GrafoscopioGUI class >> startDockingBar [
helpMenu := MenuMorph new. helpMenu := MenuMorph new.
helpMenu helpMenu
add: 'Tutorial in Grafoscopio' target: (self new) selector: #openTutorialInGrafoscopio; add: 'Tutorial in Grafoscopio' target: (GrafoscopioNotebook new) selector: #openTutorial;
add: 'PDF Manual' target: self selector: #openHelpInPdf; add: 'PDF Manual' target: self selector: #openHelpInPdf;
add: 'HTML Manual' target: self selector: #openHelpInHtml; add: 'HTML Manual' target: self selector: #openHelpInHtml;
add: 'Manual in grafoscopio' target: (self new) selector: #openHelpInGrafoscopio; add: 'Manual in grafoscopio' target: (self new) selector: #openHelpInGrafoscopio;
@ -581,16 +736,13 @@ GrafoscopioGUI class >> updateSystem [
] ]
] ]
{ #category : #'graphical interface' } { #category : #updating }
GrafoscopioGUI class >> updateUI [ GrafoscopioGUI class >> updateUI [
"I update the User Interface (UI) with new versions of the docking bar or logos where available. "I update the User Interface (UI) with new versions of the docking bar or logos where available.
I'm helpful while testing new functionality that should be expossed to the user via the UI" I'm helpful while testing new functionality that should be expossed to the user via the UI"
self dockingBar dockingBar delete.
ifNil: [^ self ] GrafoscopioGUI startDockingBar.
ifNotNil: [
self dockingBar delete.
self startDockingBar]
] ]
{ #category : #initialization } { #category : #initialization }

View File

@ -44,6 +44,13 @@ GrafoscopioNotebook class >> defaultSpec [
row newColumn: [ :bc | row newColumn: [ :bc |
bc newRow: [ :bcr | bcr add: #header ] height: self toolbarHeight. bc newRow: [ :bcr | bcr add: #header ] height: self toolbarHeight.
bc add: #body ]]] bc add: #body ]]]
]
{ #category : #operation }
GrafoscopioNotebook >> addNode [
] ]
{ #category : #accessing } { #category : #accessing }
@ -111,7 +118,10 @@ GrafoscopioNotebook >> initializePresenter [
(tree selectedItem content header) = arg (tree selectedItem content header) = arg
ifFalse: [ ifFalse: [
(tree selectedItem) content header: header text. (tree selectedItem) content header: header text.
tree roots: tree roots]] tree roots: tree roots]].
body whenTextChanged: [ :arg |
(tree selectedItem) content body: body text
]
] ]
{ #category : #initialization } { #category : #initialization }
@ -169,37 +179,37 @@ GrafoscopioNotebook >> newWindowMainMenu [
name: nil; name: nil;
description: 'Add nodo'; description: 'Add nodo';
icon: MendaIcons new plusIcon; icon: MendaIcons new plusIcon;
action: [ self inform: 'To be implemented...' ] ]. action: [ self addNode ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: nil; name: nil;
description: 'Delete node'; description: 'Delete node';
icon: MendaIcons new minusIcon; icon: MendaIcons new minusIcon;
action: [ self inform: 'To be implemented...' ] ]. action: [ self removeNode ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: nil; name: nil;
description: 'Move up node'; description: 'Move up node';
icon: MendaIcons new arrowUpIcon; icon: MendaIcons new arrowUpIcon;
action: [ self inform: 'To be implemented...' ] ]. action: [ self moveNodeBefore ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: nil; name: nil;
description: 'Move down node'; description: 'Move down node';
icon: MendaIcons new arrowDownIcon; icon: MendaIcons new arrowDownIcon;
action: [ self inform: 'To be implemented...' ] ]. action: [ self moveNodeAfter ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: nil; name: nil;
description: 'Move node left'; description: 'Move node left';
icon: MendaIcons new arrowLeftIcon; icon: MendaIcons new arrowLeftIcon;
action: [ self inform: 'To be implemented...' ] ]. action: [ self promoteNode ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: nil; name: nil;
description: 'Move node right'; description: 'Move node right';
icon: MendaIcons new arrowRightIcon; icon: MendaIcons new arrowRightIcon;
action: [ self inform: 'To be implemented...' ] ]]; action: [ self demoteNode ] ]];
addGroup: [ :group | addGroup: [ :group |
group addItem: [ :item | group addItem: [ :item |
item item
@ -321,6 +331,13 @@ GrafoscopioNotebook >> openFromFileSelector [
nb openFromFile: self workingFile. nb openFromFile: self workingFile.
] ]
{ #category : #persistence }
GrafoscopioNotebook >> openTutorial [
| tutorial |
tutorial := (FileLocator documents / 'Grafoscopio/Docs/Es/Turiales/tutorial.ston' ) asFileReference.
self class new openFromFile: tutorial.
]
{ #category : #initialization } { #category : #initialization }
GrafoscopioNotebook >> projectSubMenu [ GrafoscopioNotebook >> projectSubMenu [
@ -328,34 +345,34 @@ GrafoscopioNotebook >> projectSubMenu [
addGroup: [ :group | addGroup: [ :group |
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Activar repositorio remoto...'; name: 'Activate remote repository...';
icon: Smalltalk ui icons smallPushpinIcon; icon: Smalltalk ui icons smallPushpinIcon;
action: [ self inform: 'Por implementar ...' ] ]. action: [ self inform: 'To be implemented ...' ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Activar repositorio local...'; name: 'Activate local repository...';
icon: Smalltalk ui icons homeIcon; icon: Smalltalk ui icons homeIcon;
action: [ self inform: 'Por implementar ...' ] ]. action: [ self inform: 'To be implemented ...' ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Agregar archivo...'; name: 'Add file...';
icon: Smalltalk ui icons newerPackagesAvailableIcon; icon: Smalltalk ui icons newerPackagesAvailableIcon;
action: [ self inform: 'Por implementar ...' ] ]. action: [ self inform: 'To be implemented ...' ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Eliminar archivo...'; name: 'Delete file...';
icon: Smalltalk ui icons packageDeleteIcon; icon: Smalltalk ui icons packageDeleteIcon;
action: [ self inform: 'Por implementar ...' ] ]. action: [ self inform: 'To be implemented ...' ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Enviar al histórico'; name: 'Commit to repository';
icon: Smalltalk ui icons smallScreenshotIcon; icon: Smalltalk ui icons smallScreenshotIcon;
action: [ self inform: 'Por implementar ...' ] ]. action: [ self inform: 'To be implemented ...' ] ].
group addItem: [ :item | group addItem: [ :item |
item item
name: 'Acreditarse'; name: 'Credentials';
icon: Smalltalk ui icons userIcon; icon: Smalltalk ui icons userIcon;
action: [ self inform: 'Por implementar ...' ] ] ] action: [ self inform: 'To be implemented ...' ] ] ]
] ]