diff --git a/repository/Grafoscopio/GrafoscopioDockingBar.class.st b/repository/Grafoscopio/GrafoscopioDockingBar.class.st index eceeb6b..b896725 100644 --- a/repository/Grafoscopio/GrafoscopioDockingBar.class.st +++ b/repository/Grafoscopio/GrafoscopioDockingBar.class.st @@ -95,26 +95,6 @@ GrafoscopioDockingBar class >> dockingBar: anObject [ dockingBar := anObject ] -{ #category : #'graphical interface' } -GrafoscopioDockingBar class >> downloadingFrom: downloadUrl withMessage: aString into: location [ - | fileName | - fileName := (downloadUrl splitOn: $/) last. - (location / fileName) exists ifTrue: [ (location / fileName) ensureDelete ]. - [: 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 } GrafoscopioDockingBar class >> exampleBootstrapDynamicUI1 [ "Starting from an example UI from the Spec-Glamour, to customize towards the grafoscopio @@ -378,11 +358,6 @@ GrafoscopioDockingBar class >> messageNotImplementedYet [ title: 'To be implemented'. ] -{ #category : #'graphical interface' } -GrafoscopioDockingBar class >> messageUpdateNotDone [ - self inform: 'Update not done, by user request.' -] - { #category : #'graphical interface' } GrafoscopioDockingBar class >> open [ ^ self new open @@ -487,18 +462,17 @@ GrafoscopioDockingBar class >> updateDataviz [ { #category : #updating } GrafoscopioDockingBar class >> updateDatavizUI [ - "I'm the User Interface for updating the Dataviz package with new versions of itself take from the source code repository" - | update | - + "I'm the User Interface for updating the Dataviz package with new versions of itself + take from the source code repository" + | update | update := (UIManager default confirm: 'Dataviz is data visualization package, with several', String cr, 'Domain Specific Examples, like Panama Papers, Twitter Data Selfies.', String cr, 'Do you want to update it?' label: 'Update Dataviz package'). - update - ifTrue: [self updateDataviz] - ifFalse: [self messageUpdateNotDone] + update ifFalse: [ ^ self ]. + self updateDataviz ] { #category : #updating } @@ -521,11 +495,9 @@ GrafoscopioDockingBar class >> updateGrafoscopioUI [ update := (UIManager default confirm: 'Do you wish to update Grafoscopio?' label: 'Grafoscopio update'). - update - ifTrue: [ - self updateGrafoscopio. - self inform: 'Grafoscopio update finished'] - ifFalse: [self messageUpdateNotDone] + update ifFalse: [ ^ self ]. + self updateGrafoscopio. + self inform: 'Grafoscopio update finished' ] { #category : #updating } @@ -622,9 +594,8 @@ GrafoscopioDockingBar class >> updateSystem [ tmp2 updateGrafoscopio; updateDataviz. - GrafoscopioDocumentation update. - self inform: 'System update finished.' ] - ifFalse: [ GrafoscopioDockingBar messageUpdateNotDone ] ] + GrafoscopioDocumentation updateAll. + self inform: 'System update finished.' ]] ] { #category : #updating } diff --git a/repository/Grafoscopio/GrafoscopioDocumentation.class.st b/repository/Grafoscopio/GrafoscopioDocumentation.class.st deleted file mode 100644 index ea8a1a3..0000000 --- a/repository/Grafoscopio/GrafoscopioDocumentation.class.st +++ /dev/null @@ -1,216 +0,0 @@ -" -I model a documentation object for Grafoscopio. -Documents are stored in a fossil repository and have -relative paths to it. -" -Class { - #name : #GrafoscopioDocumentation, - #superclass : #Object, - #instVars : [ - 'repository', - 'documents', - 'localPlace' - ], - #category : #'Grafoscopio-Model' -} - -{ #category : #queries } -GrafoscopioDocumentation class >> current [ - "I model the important documents that belong to the Grafoscopio documentation. - When more documents become more mature and usable, I will include them." - - | gfcDocumentation | - gfcDocumentation := self new. - gfcDocumentation repository: (FossilRepo new remote: 'http://mutabit.com/repos.fossil/grafoscopio'). - gfcDocumentation documents - add: 'Docs/Es/Tutoriales/tutorial.ston'; - add: 'Docs/En/Books/Manual/manual.ston'; - add: 'Docs/En/dev-notes.ston'; - add: 'Docs/En/Books/Manual/manual.pdf'. - gfcDocumentation localPlace. - ^ gfcDocumentation -] - -{ #category : #operation } -GrafoscopioDocumentation class >> dataviz [ - "I model the important documents that belong to the Grafoscopio documentation. - When more documents become more mature and usable, I will include them." - - | gfcDocumentation | - gfcDocumentation := self new. - gfcDocumentation repository: (FossilRepo new remote: 'http://mutabit.com/repos.fossil/grafoscopio'). - gfcDocumentation documents - add: 'Packages/Dataviz/dataviz.ston'. - gfcDocumentation localPlace. - ^ gfcDocumentation -] - -{ #category : #updating } -GrafoscopioDocumentation class >> download: fileNameWithRelativePath [ - | fileName relativePathFolders newPath parentFolder | - fileName := (fileNameWithRelativePath splitOn: $/) last. - relativePathFolders := (fileNameWithRelativePath splitOn: $/) allButLast. - newPath := self current localPlace path. - relativePathFolders do: [ :folder | newPath := newPath / folder ]. - parentFolder := newPath asFileReference. - parentFolder exists ifFalse: [ parentFolder ensureCreateDirectory ]. - GrafoscopioDockingBar - downloadingFrom: self current repository remote asString, '/doc/tip/', fileNameWithRelativePath - withMessage: 'Downloading ', fileName - into: parentFolder -] - -{ #category : #updating } -GrafoscopioDocumentation class >> initialize [ - self - update: 'current'; - update: 'dataviz' -] - -{ #category : #updating } -GrafoscopioDocumentation class >> isFileUpdatedFor: relativeFilePath [ - "I compare if the local and remote copies of a relativeFilePath are updated for the current - documentation and return true if they are and false in any other case" - | localFile | - localFile := self current localPlace / relativeFilePath. - localFile exists - ifFalse: [ ^ false ] - ifTrue: [ ^ ExternalApp compareHashFor: localFile with: (self current repository lastHashNumberFor: relativeFilePath) ] -] - -{ #category : #updating } -GrafoscopioDocumentation class >> listOutdatedDocsIn: aDocumentsListName [ - "I return the list of all documentent where the local copy and the remote copy doesn't match" - aDocumentsListName ifNil: [ ^ self ]. - aDocumentsListName ifEmpty: [ ^ self ]. - ^ (self perform: aDocumentsListName asSymbol) documents reject: [ :doc | (self isFileUpdatedFor: doc) ] -] - -{ #category : #updating } -GrafoscopioDocumentation class >> listOutdatedIn: aGrafoscopioDocumentation [ - "I return the list of all documentent where the local copy and the remote copy doesn't match" - self listOutdatedDocsIn: (self perform: aGrafoscopioDocumentation) documents -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openDatavizIntro [ - self openNotebookFrom: 'dataviz' At: 1 -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openDevNotes [ - self openNotebookFrom: 'current' At: 3 -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openManual [ - "I open the proper notebook in the adecuate documentation." - self openNotebookFrom: 'current' At: 2 -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openNotebookFrom: aDocumentation At: index [ - "I open a notebook included with the documentation, located at a given index" - | notebookTemp gfcDocs | - gfcDocs := self perform: aDocumentation asSymbol. - (index between: 1 and: gfcDocs documents size) - ifFalse: [ ^ self ] - ifTrue: [ - notebookTemp := (gfcDocs localPlace fullName, '/', (gfcDocs documents at: index)) asFileReference. - notebookTemp exists - ifTrue: [GrafoscopioNotebook new openFromFile: notebookTemp] - ifFalse: [ self updateUIFor: aDocumentation ]] -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openPDFManual [ - "I open the documentation in PDF format. I only work on Unix right now, but in the future my creator hopes to be able - to have truly multiplatform support" - | pdfManual docs | - docs := self current. - pdfManual := docs documents at: 4. - WebBrowser openOn: (docs localPlace / pdfManual) fullName. -] - -{ #category : #operation } -GrafoscopioDocumentation class >> openTutorial [ - "I open the proper notebook in the adecuate documentation." - self openNotebookFrom: 'current' At: 1 -] - -{ #category : #updating } -GrafoscopioDocumentation class >> update: aDocumentationName [ - (self listOutdatedDocsIn: aDocumentationName) - ifEmpty: [ - self inform: 'All documents in the ', aDocumentationName,' collection are already updated'. - ^ self ] - ifNotEmpty: [:outdatedDocs | - outdatedDocs do: [ :eachDoc | self download: eachDoc]. - self inform: 'Updating of ', aDocumentationName,' documentation finished.' ] -] - -{ #category : #operation } -GrafoscopioDocumentation class >> updateAll [ - self - update: 'current'; - update: 'dataviz' -] - -{ #category : #updating } -GrafoscopioDocumentation class >> updateAllUI [ - "Updates documentation (manual, tutorials) from the official repository for a given documentation." - | update | - update := (UIManager default - confirm: 'Do you wish to update the documentation?' - label: 'Update documentation'). - update - ifTrue: [ self updateAll ] - ifFalse: [ GrafoscopioDockingBar messageUpdateNotDone ] -] - -{ #category : #updating } -GrafoscopioDocumentation class >> updateDocsPlaceUI [ - self current localPlace: (UIManager default chooseDirectory: 'Path to the documentation folder') -] - -{ #category : #updating } -GrafoscopioDocumentation class >> updateUIFor: aDocumentationName [ - "Updates documentation (manual, tutorials) from the official repository for a given documentation." - | update | - update := (UIManager default - confirm: 'Do you wish to update the ', aDocumentationName,' documentation?' - label: 'Update ', aDocumentationName, ' documentation'). - update ifTrue: [ self update: aDocumentationName ] -] - -{ #category : #accessing } -GrafoscopioDocumentation >> documents [ - ^ documents ifNil: [ documents := OrderedCollection new ] -] - -{ #category : #accessing } -GrafoscopioDocumentation >> documents: anObject [ - documents := anObject -] - -{ #category : #accessing } -GrafoscopioDocumentation >> localPlace [ - ^ localPlace ifNil: [ - localPlace := FileLocator workingDirectory asFileReference / 'Grafoscopio'. - self localPlace exists ifFalse: [ self localPlace ensureCreateDirectory ] ]. -] - -{ #category : #accessing } -GrafoscopioDocumentation >> localPlace: anObject [ - localPlace := anObject -] - -{ #category : #accessing } -GrafoscopioDocumentation >> repository [ - ^ repository -] - -{ #category : #accessing } -GrafoscopioDocumentation >> repository: anObject [ - repository := anObject -]