From 35c11531c33aa84e935f8d0c7bd59a69ec51eb13 Mon Sep 17 00:00:00 2001 From: Offray Luna Date: Mon, 21 Sep 2015 08:41:51 +0000 Subject: [PATCH] Icons update --- .../Grafoscopio/FontAwesomeIcons.class.st | 139 ++++++++++ .../Grafoscopio/GrafoscopioBrowser.class.st | 140 ++++++---- .../Grafoscopio/GrafoscopioGUI.class.st | 259 ++++++++++++++++++ .../Grafoscopio/GrafoscopioTreeUI.class.st | 41 +++ repository/Grafoscopio/MendaIcons.class.st | 220 +++++++++++++++ 5 files changed, 745 insertions(+), 54 deletions(-) create mode 100644 repository/Grafoscopio/FontAwesomeIcons.class.st create mode 100644 repository/Grafoscopio/GrafoscopioGUI.class.st create mode 100644 repository/Grafoscopio/GrafoscopioTreeUI.class.st create mode 100644 repository/Grafoscopio/MendaIcons.class.st diff --git a/repository/Grafoscopio/FontAwesomeIcons.class.st b/repository/Grafoscopio/FontAwesomeIcons.class.st new file mode 100644 index 0000000..830433f --- /dev/null +++ b/repository/Grafoscopio/FontAwesomeIcons.class.st @@ -0,0 +1,139 @@ +" +Please comment me using the following template inspired by Class Responsibility Collaborator (CRC) design: + +I'm FontAwesomeIcons, a custom selection of some icons in this font family used for the GUI of grafoscopio. + +For the Responsibility part: Three sentences about my main responsibility, what I'm doing, what services do I offer. + +For the Collaborators Part: State my main collaborators and one line about how I interact with them. + +Public API and Key Messages + +- message one +- message two +- what is the way to create instances is a plus. + + One simple example is simply gorgeous. + +Internal Representation and Key Implementation Points. + + Instance Variables + icons: + + + Implementation Points +" +Class { + #name : #FontAwesomeIcons, + #superclass : #Object, + #instVars : [ + 'icons' + ], + #classVars : [ + 'Current' + ], + #category : #'Grafoscopio-UI' +} + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> copyIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self copyIconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> copyIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/copy.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA2UlEQVR4nJXQIU6DQRAF4K+F +4DAYVFHlBEgctQgScL0DCbp3wKNJOAIXQDcEC5iqQoNsA4KkiO6GJX92/p+XvGxm983bN8Mv ++rjFOnFYMNchbvCNSWooUTXopfMalxhjipfiLRucYg9bxf0zXCXBJP1yUkmwxhyviTN8wVsh +yHwsms/wiSUuivu8m3BBR1hglH5tGGxXGmGAO5zjIdBVE9xrjnb8nwQjHBb1ymaJfxAZ7NjM +HSIbHLQJIzxpzpoZYdim6WTQ7xayjmiJ7x1SLHrB4y72Www+fgBc9T/67LlhnQAAAABJRU5E +rkJggg==' +] + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> cutIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self cutIconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> cutIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/cut.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABOUlEQVR4nNXSzyvlYRTH8Rcu +N5dmIt2FX4VpJktRUpKssB//wGSDUsrCahYzuykaGyk/YiFlb2VhYWVhYaUkKxsbTSYSYfE9 +V3e+EQub+dRTz4/zvM85n+fhHXSNhxhX+IHSV+50IVNYbKAKn7EeoO8vXOyNmHFsolFMirWD +89TeFyxhEuXoxjI+ZPAVFZjHX+SRQz3uMINbTOMCoxEzinsYwlGRDw/4iX2s4VNUkcUvDD/X +Wwna0Y8WLGI7snSgGatx9o8KTn4MQB6VqA1ITuL4IP5E76dpyBQuUy0shGmHElPLI3YSs+HZ +k+4kb98QlewGMIsyfMMKOiO+B1toKgDmimC5yHqSqjIb2efRhrqAtGbQhxHJs41JXB9JAW7w +G9WYkHygY5zBQfR9jz0MpE16i2ok7v+HegQfqT9MAMiDKwAAAABJRU5ErkJggg==' +] + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> html5Icon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self html5IconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> html5IconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/html5.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA+UlEQVR4nK3Tv0oDQRDH8c9J +BMFKJGIXBBtFwc7SUlDfwpewEewsbQQL8QHsA2lSiK2NCFr4Av4hjYigVSxuV/bWjRhxYJhl +9uY7v9m9rdR2ikm/tx7OoRUSO5gfA3AfFxMhPo9RDE85ICZ2Uf3gNzkgjhAVzIV4hJlC58Vc +cQ5oh7iJpb+MEBUsF+Snh/wNkI9QsqjuFe+jABu4xgDDxFcS+Ff30ggDrOEs6/6YKGgA8kOc +DfEQV+jgMoDb2bcNm0rkHqv/zOmwt4o93IX9kxIAXjTn/sBDlhviYBRgH7eFguhv6GI9LaoK +oA62sYUF9NWv70Jyff9mnwBsQJo0owsMAAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> pasteIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self pasteIconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> pasteIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/paste.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAqUlEQVR4nK3TTQrBQRzG8c/I +yk6SsrAilk5hYWfjWA6hXICycwtLByDJ2upvgZrG6+BbU7+3nnnmVxNQuDDC2j09LK5xB5u4 +WY7iUpLH9ZcUGaedrZ4wznWQzh0wQfjWwRB9TF33lStwwABHzFG5WfvkCfsH/Vl4MBgToriC +ZpS3sMxxkNJGkbuDO/4isPtFoIwu6km9hdUvwg2cvP8bu/BMAVXU3ly0PQOGrUCXHk1emQAA +AABJRU5ErkJggg==' +] + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> tagIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self tagIconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> tagIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/tag.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAmUlEQVR4nKXPMQ4BQRSA4U9D +oeIgKsdwAUfARSSiUTmExgUcYU8gGoVGpZFIGM0WG5mxM0zyMpni/zKPP0+nvleYNN4BZyxx +yIGedfQ5L8xygIA7RhjjUYoEXNFDH7fIT+ZtQMARpy/rJJFLIorNIgasC4Ao0sW+EJn+i2xi +q+QiFQYxIAepMEzFbUhWnEKK4iayxe6XOOu8ARtNbaMQ63x5AAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +FontAwesomeIcons >> tagsIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self tagsIconContents readStream) +] + +{ #category : #'private - contents' } +FontAwesomeIcons >> tagsIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/FontAwesome/Png/tags.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAABAAAAANCAYAAACgu+4kAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAXRJREFUKJGN0j1Mk1EYxfH/edRFSKijH4kTJBgTJ0cGTdxE +TKyUGAfFSQcKUl3taIjIh3EUTJzaAoORwUGdmUlMXB1ktSaQGNp7HOyrgG8jZ733+d1zc69G +y9NvsC6RRbZhIxQLtkdtX5DjSW1x5hM5CdBtxGnjLUQf6IzQDSfXWu30EvTF4fdjE49GugCA +Wa8vPLuIufO3CSePRnxspzQr+3UKGnlIdGoPlMqV84ihfasdpJX8XLCch0RnZz/SJlD+p2OG +tNNcHhLA57y7dUOwl/YiKk48vCLFuuDYfyGz1Urp8pHQJNK4SUXZZqz8+GqS1w6DGL/j29fr +OnX2O6b1+9XhsIixbyX0M8Sa8Ys/AEBpqjJsa7ULYtt3JTexGoZX5070PtgHANycnL4mYuUA +YsO4TTNwHWlpsNBzv1qtpjh4TGN+9q1JRcPuntr3Av8IXAeWs2HIfn5OSlOVYayntmeON3tr +O4XtD4KNwUJPJRsG+AVxqr+5c/rf8wAAAABJRU5ErkJggg==' +] diff --git a/repository/Grafoscopio/GrafoscopioBrowser.class.st b/repository/Grafoscopio/GrafoscopioBrowser.class.st index ef4d98b..f79df04 100644 --- a/repository/Grafoscopio/GrafoscopioBrowser.class.st +++ b/repository/Grafoscopio/GrafoscopioBrowser.class.st @@ -255,21 +255,27 @@ GrafoscopioBrowser class >> startDockingBar [ { #category : #'as yet unclassified' } GrafoscopioBrowser class >> updateDocumentation [ + "Updates documentation/manual from official repository" -"Updates documentation/manual from official repository" - -| fileLocation filePath client | - fileLocation := './Docs/Es/Manual/'. - fileLocation asFileReference ensureCreateDirectory. - filePath := fileLocation,'manual-grafoscopio.ston'. - client := ZnClient new. - client get: 'http://mutabit.com/deltas/repos.fossil/grafoscopio/doc/tip/Docs/Es/Manual/manual-grafoscopio.ston'. - client isSuccess - ifTrue: [ filePath asFileReference - writeStreamDo: [ :stream | - stream write: client contents asString]. - self inform: 'La actualización de la documentación ha terminado'. ] - ifFalse: [ self inform: 'Algo salió mal. Verifique su conexión a Internet.' ] + | update fileLocation filePath client | + update := (UIManager default + question: '¿Desea actualizar la documentación?' + title: '¿Actualizar documentación?'). + update ifNotNil: [ + update + ifTrue: [ + fileLocation := './Docs/Es/Manual/'. + fileLocation asFileReference ensureCreateDirectory. + filePath := fileLocation,'manual-grafoscopio.ston'. + client := ZnClient new. + client get: 'http://mutabit.com/deltas/repos.fossil/grafoscopio/doc/tip/Docs/Es/Manual/manual-grafoscopio.ston'. + client isSuccess + ifTrue: [ filePath asFileReference + writeStreamDo: [ :stream | + stream write: client contents asString]. + self inform: 'Actualización de la documentación terminada'. ] + ifFalse: [ self inform: 'Algo salió mal. Verifique su conexión a Internet.' ] ] + ifFalse: [self inform: 'Actualización de la documentación cancelada'. ]] ] { #category : #'as yet unclassified' } @@ -300,21 +306,52 @@ localRepository exists GrafoscopioBrowser class >> updateGrafoscopio [ "Updates Grafoscopio with new versions of itself take from the source code repository and the User Interface" - + | update | + + update := (UIManager default + question: '¿Desea actualizar grafoscopio?' + title: 'Actualizar grafoscopio'). + update ifNotNil: [ + update + ifTrue: [ + self updateGrafoscopioScript. + self inform: 'Actualización de grafoscopio terminada'] + ifFalse: [self inform: 'Actualización de grafoscopio no realizada']] +] + +{ #category : #'as yet unclassified' } +GrafoscopioBrowser class >> updateGrafoscopioScript [ + "Updates Grafoscopio with new versions of itself take from the source code repository and + the User Interface" Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio'; - load. - - self updateUI. - self inform: 'La actualización de grafoscopio ha terminado' - + smalltalkhubUser: 'Offray' project: 'Grafoscopio'; + package: 'Grafoscopio'; + load. + self updateUI. ] { #category : #'as yet unclassified' } GrafoscopioBrowser class >> updatePrerrequisites [ "Updates the system prerequisites with new versions of itself take from the source code repository" + | update | + + update := (UIManager default + question: '¿Desea actualizar los prerrequisitos de grafoscopio?' + title: 'Actualizar prerrequisitos de grafoscopio'). + update ifNotNil: [ + update + ifTrue: [ + self updatePrerrequisitesScript. + self inform: 'Actualización de prerrequisitos terminada' + ] + ifFalse: [ self inform: 'Actualización de prerrequisitos NO realizada' ] + ] +] +{ #category : #'as yet unclassified' } +GrafoscopioBrowser class >> updatePrerrequisitesScript [ + "Updates the system prerequisites with new versions of itself take from the source code repository" + "Visualization library (which also makes main menu loadable)" Gofer it smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; @@ -341,21 +378,21 @@ GrafoscopioBrowser class >> updatePrerrequisites [ "Integration with external tools" Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio-ExternalTools'; - load. + smalltalkhubUser: 'Offray' project: 'Grafoscopio'; + package: 'Grafoscopio-ExternalTools'; + load. "HTML scrapping" Gofer new - smalltalkhubUser: 'PharoExtras' project: 'Soup'; - configurationOf: 'Soup'; - loadStable. + smalltalkhubUser: 'PharoExtras' project: 'Soup'; + configurationOf: 'Soup'; + loadStable. - "Data visualization" + "Data visualization helpers" Gofer new - smalltalkhubUser: 'Offray' project: 'Dataviz'; - package: 'Dataviz'; - load. + smalltalkhubUser: 'Offray' project: 'Dataviz'; + package: 'Dataviz'; + load. "Support for Operative System integration" Gofer new @@ -369,36 +406,31 @@ GrafoscopioBrowser class >> updatePrerrequisites [ load. "Bibliographic support" - Gofer new squeaksource: 'Citezen'; - package: 'ConfigurationOfCitezen'; - load. + Gofer new + squeaksource: 'Citezen'; + package: 'ConfigurationOfCitezen'; + load. - - self inform: 'La actualización de los prerrequisitos ha terminado' ] { #category : #'as yet unclassified' } GrafoscopioBrowser class >> updateSystem [ "Updates the system with new versions of itself take from the source code repository" - Gofer it - smalltalkhubUser: 'ObjectProfile' project: 'Roassal2'; - configurationOf: 'Roassal2'; - loadStable. + | update | - Gofer new - smalltalkhubUser: 'SvenVanCaekenberghe' project: 'STON'; - package: 'STON-Core'; - load. + update := (UIManager default + question: '¿Desea actualizar grafoscopio?' + title: 'Actualizar grafoscopio'). + update ifNotNil: [ + update + ifTrue: [ + self updatePrerrequisitesScript. + self updateGrafoscopioScript. + self inform: 'Actualización de todo el sistema terminada.'] + ifFalse: [ + self inform: 'Actualización de todo el sistema NO realizada.' ] + ] - Gofer new squeaksource: 'Citezen'; - package: 'ConfigurationOfCitezen'; - load. - (ConfigurationOfCitezen project latestVersion: #development) load. - - Gofer new - smalltalkhubUser: 'Offray' project: 'Grafoscopio'; - package: 'Grafoscopio'; - load. ] diff --git a/repository/Grafoscopio/GrafoscopioGUI.class.st b/repository/Grafoscopio/GrafoscopioGUI.class.st new file mode 100644 index 0000000..5524e3a --- /dev/null +++ b/repository/Grafoscopio/GrafoscopioGUI.class.st @@ -0,0 +1,259 @@ +" +Please comment me using the following template inspired by Class Responsibility Collaborator (CRC) design: + +I'm the graphical user interface for grafoscopio. I'm using Spec. + +My main responsability is to provide grafoscopio with graphical widgets and other elements to manipulate grafoscopio trees, helping with common task of storing, opening and manipulating trees. + +" +Class { + #name : #GrafoscopioGUI, + #superclass : #ComposableModel, + #instVars : [ + 'windowMainMenu', + 'tree', + 'nodeDetails' + ], + #category : #'Grafoscopio-UI' +} + +{ #category : #'as yet unclassified' } +GrafoscopioGUI class >> defaultSpec [ + + + ^ SpecLayout composed + newColumn: [ :mainWindow | + mainWindow + newRow: [:menu | + menu add: #windowMainMenu + ] height: 35; + newRow: [:outlineView | + outlineView + newColumn: [ :treePart | + treePart add: #tree]; + addSplitter; + newColumn: [ :nodePart | + nodePart add: #nodeDetails]. + ]. + ]; + yourself +] + +{ #category : #'as yet unclassified' } +GrafoscopioGUI >> documentSubMenu [ + + ^ MenuModel new + addGroup: [ :group | + group addItem: [ :item | + item + name: 'Guardar'; + icon: Smalltalk ui icons smallSaveIcon; + shortcut: $s command; + action: [ self inform: 'Guardar | Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Guardar como...'; + icon: Smalltalk ui icons smallSaveAsIcon; + action: [ self inform: 'Guardar | Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Exportar como html'; + icon: Smalltalk ui icons smallWindowIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Exportar como pdf'; + icon: Smalltalk ui icons smallPrintIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Ver html'; + icon: Smalltalk ui icons smallInspectItIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Ver pdf'; + icon: Smalltalk ui icons smallInspectItIcon; + action: [ self inform: 'Por implementar ...' ] ] ] + +] + +{ #category : #'as yet unclassified' } +GrafoscopioGUI >> initializeWidgets [ + + "Buils graphical interface elements" + + windowMainMenu := MenuModel new + addGroup: [ :group | + group addItem: [ :item | + item + name: 'Documento'; + icon: Smalltalk ui icons smallObjectsIcon; + subMenu: self documentSubMenu ]. + group addItem: [ :item | + item + name: 'Proyecto'; + icon: Smalltalk ui icons catalogIcon; + subMenu: self proyectSubMenu ] ]; + addGroup: [ :group | + group addItem: [ :item | + item + name: nil; + description: 'Guardar documento'; + icon: Smalltalk ui icons smallSaveIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Deshacer'; + icon: Smalltalk ui icons smallUndoIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Rehacer'; + icon: Smalltalk ui icons smallRedoIcon; + action: [ self inform: 'Por implementar...' ] ]]; + addGroup: [ :group | + group addItem: [ :item | + item + name: nil; + description: 'Agregar nodo'; + icon: MendaIcons new plusIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Eliminar nodo'; + icon: MendaIcons new minusIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Subir nodo'; + icon: MendaIcons new arrowUpIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Bajar nodo'; + icon: MendaIcons new arrowDownIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Mover nodo a la izquierda'; + icon: MendaIcons new arrowLeftIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Mover nodo a la derecha'; + icon: MendaIcons new arrowRightIcon; + action: [ self inform: 'Por implementar...' ] ]]; + addGroup: [ :group | + group addItem: [ :item | + item + name: nil; + description: 'Intercambiar: código <--> texto'; + icon: MendaIcons new smalltalkCodeIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Etiquetar como...'; + icon: MendaIcons new tagAddIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Desetiquetar ....'; + icon: MendaIcons new tagMinusIcon; + action: [ self inform: 'Por implementar...' ] ]. + group addItem: [ :item | + item + name: nil; + description: 'Editar etiquetas...'; + icon: FontAwesomeIcons new tagsIcon; + action: [ self inform: 'Por implementar...' ] ]. ]. + tree := self newTree. + nodeDetails := self newText. + windowMainMenu applyTo: self. + self focusOrder + add: windowMainMenu; + add: tree; + add: nodeDetails. +] + +{ #category : #accessing } +GrafoscopioGUI >> nodeDetails [ + ^ nodeDetails +] + +{ #category : #accessing } +GrafoscopioGUI >> nodeDetails: anObject [ + nodeDetails := anObject +] + +{ #category : #'as yet unclassified' } +GrafoscopioGUI >> proyectSubMenu [ + + ^ MenuModel new + addGroup: [ :group | + group addItem: [ :item | + item + name: 'Activar repositorio remoto...'; + icon: Smalltalk ui icons smallPushpinIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Activar repositorio local...'; + icon: Smalltalk ui icons homeIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Agregar archivo...'; + icon: Smalltalk ui icons newerPackagesAvailableIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Eliminar archivo...'; + icon: Smalltalk ui icons packageDeleteIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Enviar al histórico'; + icon: Smalltalk ui icons smallScreenshotIcon; + action: [ self inform: 'Por implementar ...' ] ]. + group addItem: [ :item | + item + name: 'Acreditarse'; + icon: Smalltalk ui icons userIcon; + action: [ self inform: 'Por implementar ...' ] ] ] + +] + +{ #category : #'as yet unclassified' } +GrafoscopioGUI >> title [ + ^ ' | Grafoscopio' +] + +{ #category : #accessing } +GrafoscopioGUI >> tree [ + ^ tree +] + +{ #category : #accessing } +GrafoscopioGUI >> tree: anObject [ + tree := anObject +] + +{ #category : #accessing } +GrafoscopioGUI >> windowMainMenu [ + ^ windowMainMenu +] + +{ #category : #accessing } +GrafoscopioGUI >> windowMainMenu: anObject [ + windowMainMenu := anObject +] diff --git a/repository/Grafoscopio/GrafoscopioTreeUI.class.st b/repository/Grafoscopio/GrafoscopioTreeUI.class.st new file mode 100644 index 0000000..3b72a4c --- /dev/null +++ b/repository/Grafoscopio/GrafoscopioTreeUI.class.st @@ -0,0 +1,41 @@ +" +Please comment me using the following template inspired by Class Responsibility Collaborator (CRC) design: + + I'm GrafoscopioTreeUI the Spec model wich reders grafoscopio trees. + +For the Responsibility part: Three sentences about my main responsibility, what I'm doing, what services do I offer. + +For the Collaborators Part: State my main collaborators and one line about how I interact with them. + +Public API and Key Messages + +- message one +- message two +- what is the way to create instances is a plus. + + One simple example is simply gorgeous. + +Internal Representation and Key Implementation Points. + + Instance Variables + tree: + + + Implementation Points +" +Class { + #name : #GrafoscopioTreeUI, + #superclass : #ComposableModel, + #instVars : [ + 'tree' + ], + #category : #'Grafoscopio-UI' +} + +{ #category : #'as yet unclassified' } +GrafoscopioTreeUI >> initializeWidgets [ + + tree := self newTree + + +] diff --git a/repository/Grafoscopio/MendaIcons.class.st b/repository/Grafoscopio/MendaIcons.class.st new file mode 100644 index 0000000..9a3b600 --- /dev/null +++ b/repository/Grafoscopio/MendaIcons.class.st @@ -0,0 +1,220 @@ +" +Please comment me using the following template inspired by Class Responsibility Collaborator (CRC) design: + +I'm MendaIcons the provider of this icons on this environment. + +My main responsibility is to support some menda icons insideCallback pharo environment, for that I convert and package png images to the pharo image. + +For the Collaborators Part: State my main collaborators and one line about how I interact with them. + +Public API and Key Messages + +- message one +- message two +- what is the way to create instances is a plus. + + One simple example is simply gorgeous. + +Internal Representation and Key Implementation Points. + + + Implementation Points +" +Class { + #name : #MendaIcons, + #superclass : #Object, + #instVars : [ + 'icons' + ], + #classVars : [ + 'Current' + ], + #category : #'Grafoscopio-UI' +} + +{ #category : #'instance creation' } +MendaIcons class >> current [ + ^ Current ifNil: [ Current := self new ] +] + +{ #category : #'accessing - icons' } +MendaIcons >> arrowDownIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self arrowDownIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> arrowDownIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/arrowDown.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAALJJREFUGJV9zjEKwkAUBND5i3ZaeJBAcgavIIjX2GwK8QbZ +/bmGjSDYaq5gE/Aa9hIyNkZkXf0w1fCGD5IIIexUNSOJf6nrOvfeb0lCXuBK8m6MWVprOyTO +e5+LSAtgDiA31tqO5EZEFsMwtE3TZDFS1WJEJNfOuZsBAOfc4RdW1YLkZURVVR0BQEi+l0MI +KxHZj2/3fT81xpxj9AVjLCITkrMYJWGEmUI/4Qd+lGV5SvVPkLiZ0qKAa5MAAAAASUVORK5C +YII=' +] + +{ #category : #'accessing - icons' } +MendaIcons >> arrowLeftIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self arrowLeftIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> arrowLeftIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/arrowLeft.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAK1JREFUGJV9kcFpAmEQhb835rpo2giYHsSLBQhiH3NLCf/+ +20XIRexAy7CLkAKEfZ42xNXswJy+j4H3Bts821rr0jayzXhqrTvbn8DHgzBASd+2VzEFM/MS +UxAgpiDArGmafyFA2L5KMjCz/TJOFJl5tL0H5hFxLqW83wkAmXkYJEmnv9JvikGStJB06rpu +CTw22bbtVtKX7Z+IWN8VNbr02vf95umjbFNKebPNDbaypHslWRyiAAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +MendaIcons >> arrowRightIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self arrowRightIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> arrowRightIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/arrowRight.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAAgAAAAOCAYAAAASVl2WAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAMVJREFUGJV9kTFqw0AQRf/M2pWsQK4RMDit2lTpDSbXkFCV +I6xW13AZcK20ukAgOYb7IPTSxMFWLH8YGHgPZpgRoJTSGtC1Cnmev0ra933/VRTFpyZxMzsA +RzPbN02z/SeUZfnh7k9zkkvSLclPzZxkwMXMtm3X4zi+m9k98OKaZBiGpZktAMzs+0JIKT2G +EDpgBeyqqjosziHQSVoBu7qu3/6WjDFufmF+DiUpZFm2cfdO0t0Uni75DFyFkiRAMcaHuWf9 +APv6mfGc3+HbAAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +MendaIcons >> arrowUpIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self arrowUpIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> arrowUpIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/arrowUp.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAICAYAAADJEc7MAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAJRJREFUGJWNy8EJQjEQBNCdVGAdwtca/LYg2EdIsIjNliHi +xQ6sQfRgF4L/LOx4EnJIPg7MaeaBpLRiZnuSn5TSpbWHGXQEcC6l7P6CFXqJyATg1MKhh0hu +AGx7OPRQSukZY7y7+9jCoYd+h5zzw91Hku8aw8wGd7+1UB1VXQG4AliQXAtJUdWDqi5JylzN +bFDVTFK+Zz+PhDBK0j8AAAAASUVORK5CYII=' +] + +{ #category : #'gt-inspector' } +MendaIcons >> gtInspectorIconsIn: composite [ + + composite list + title: 'Icons'; + display: [ + self iconSelectors asSortedCollection + collect: [ :each | each -> (self perform: each) ] ]; + icon: [ :each | each value ]; + format: [ :each | each key ] +] + +{ #category : #initialization } +MendaIcons >> iconSelectors [ + ^ self class selectors select: [ :each | '*Icon' match: each asString ] +] + +{ #category : #initialization } +MendaIcons >> initialize [ + super initialize. + self initializeIcons +] + +{ #category : #initialization } +MendaIcons >> initializeIcons [ + icons := LRUCache new + maximumWeight: 64; + factory: [ :key | self perform: key ]; + yourself +] + +{ #category : #'accessing - icons' } +MendaIcons >> minusIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self minusIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> minusIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/minus.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAADCAYAAACj1j4PAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAADhJREFUCJlj7O7uDmNgYEhjIAEwMTFNZ2FkZJRjYGBwJkXj +379/t7D8////AQMDw05SNDIwMDwEANK6DIovD6CyAAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +MendaIcons >> plusIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self plusIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> plusIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/plus.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAKVJREFUKJHVkjEOgkAQRd9suIFcxUhvZeJpCA2FhoJ2uYyN +nEE9CZ5hP4WQkHVJjIWJv5r5839m83dMEjG6ritCCO3U1lVV3WJN9uYCJOVmtgcws01K41Lk +J/i90bz3haQ84rfAeaob4LEcShqyEEI7B7GCJsH1Xz81A+o4ckm7eZOZnYD7cu6ce1rqALz3 +R+AyGQ9lWV5jzR/949qtDkAPryBSmhE5/jJyCd+z1gAAAABJRU5ErkJggg==' +] + +{ #category : #'accessing - icons' } +MendaIcons >> smalltalkCodeIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self smalltalkCodeIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> smalltalkCodeIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/smalltalkCode.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAQhJREFUKJHtkrFOw0AQRGfOJ1FdkSB6pLgN+QAaJCQkfsS1 +ZbcUDm18EvK/UOQPEA1ROiy+gDQBdxz20BwSsiho0jHV7urN7BbLuq4fJc0kbUn2xpiboige +6rq+JdmXZblcrVbnJJeSLMk5ydZKmpGckrwAAEl3AEDyTNInABhjTgBckkRkUkNyG5vTJEkm +zrk1RnLO3SdJMhmGIY2hGyupJwlr7Vue5/uxCQCyLAsA9t57G5f05jfwL/o3HsJo4xshhHDs +vbdd171XVfXxE2qa5iiE4ABMv32G5BwAjDEvAHbOuatxegjhGsAOwHMcLSzJVlJKciOpjwAA +PAHoY/0qaR2vW0hqvwBnzXKb8TsomwAAAABJRU5ErkJggg==' +] + +{ #category : #'accessing - icons' } +MendaIcons >> tagAddIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self tagAddIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> tagAddIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/tagAdd.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAATFJREFUKJF90DFPAjEcBfD3GuByGg1qiH4FRyOrDhjipl9B +HR25+whu0NldJ0dmHJ2c1U0HY6KigKLJwYE8F8GjAf5Jk+bf/tq+slwunwDIwymSNgiCmtsf +lgGQJ7nrDklVa21xFgQASGpKOpXU/bvRn4VNYn4RhuExgKvEc6fiJDyqVCqXAApO1onYJDZ4 +JHdI0j19EjYkraRoUo71zXcsZOOJmJJgrS1KqpL0k3B77xG31zk0Xv7bkiKS+5QEAGM4X3hG +OvODldUOvj4yiLsG9zfLqD/NAcBA0sEIJvFSrusbI2xsveLhLovPhofvdhpxJzUgeVgqlc6S +v4ogCGok91tvXtSs++j1DNotD826P4ZGGd0a3jy/2PPjKIV+34yhqdDJ7LloJkzgtTAMz921 +X92gun92K18+AAAAAElFTkSuQmCC' +] + +{ #category : #'accessing - icons' } +MendaIcons >> tagMinusIcon [ + "Private - Generated method" + ^Form fromBinaryStream: (Base64MimeConverter mimeDecodeToBytes: self tagMinusIconContents readStream) +] + +{ #category : #'private - contents' } +MendaIcons >> tagMinusIconContents [ + "Private - Method generated with the content of the file File @ /home/offray/Programas/Grafoscopio/Dev/Common/Icons/Menda/Png/tagMinus.png" + ^ 'iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAABHNCSVQICAgIfAhkiAAAAAlw +SFlzAAAOxAAADsQBlSsOGwAAAPhJREFUKJGF0bFKQzEUBuD/D9Zy3RQKPsh9gkpx7Cuoo+NN +HqHbvZm76+TYuY4+gqubIDg4iFBbaP8u9ZIcrrcHAiHJl5NzwrquZwBKmCAZvfdLu/4XDkBJ +8toOSYsY46QPAgAkfUmaS1ofMhZ92CXzpxDCPYCX5Ln/4hTeNU3zDGBsau3ELjkwJHlFkvb2 +LuxIRkmrrjr6MCUhxjiRtCBZHLtA0orklJIAIMPl+AOD020G3l4v8Pl+BgA7STctTPH5aF04 +pwz+fA+w+T3ZkbytquohgzazeWWLgPw7AADe+yXJqWlYhtrmdEWSeWhRL0zwZQjh0e7tAVcM +m6R0vbZ+AAAAAElFTkSuQmCC' +]