Thanks hernan. 

I do not think that there is a fileList in newTools. 
I will check your file dialog.

S

> On 23 Nov 2023, at 20:43, Hernán Morales <hernan-federico.mora...@inria.fr> 
> wrote:
> 
> Hi Stef,
> 
> De: "Stephane Ducasse" <stephane.duca...@inria.fr 
> <mailto:stephane.duca...@inria.fr>>
> Para: "rmod" <r...@inria.fr <mailto:r...@inria.fr>>, 
> pharo-...@lists.pharo.org <mailto:pharo-...@lists.pharo.org>, 
> pharo-users@lists.pharo.org <mailto:pharo-users@lists.pharo.org>
> Enviados: Jueves, 23 de Noviembre 2023 11:28:15
> Asunto: [rmod] Pharo needs you! Call to save the Pharo UI
> Hello people
> If you want that Pharo just do not endlessly stay with such a crappy UI we 
> all know,
> please consider joining the effort.
> 
> We should make sure that as a general principle, a model MUST not refer to a 
> UI. 
> So that we can change the UI. We are working on it. But we need help.
> 
> We should 
> (1) Migrate last cool Morphic-based tools such as Finder, Settings to Spec2, 
> FileList to Spec
> 
> (2) Remove dependencies from Domain objects to Morphic (obviously)
> - remove to UIManager first from code outside Morphic. 
> 
> As a general principle please watch
> http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Videos/M03_S5.mp4
> http://rmod-pharo-mooc.lille.inria.fr/AdvancedDesignMooc/Videos/M09_S4.mp4
> It looks basic but it is so true. 
> 
> 
> Current status 
> (1) 
> Hernan started to work on the Setting Browser
> I know someone started to work on Finder but I think the effort was stalled.
> We need help there.
> As a reference so that anyone can check the new Settings current status, this 
> is the repository I'm working on: 
> https://github.com/hernanmd/new-settings-browser
> 
> Regarding the FileList, I'm afraid we duplicate efforts unnecessarily: I 
> worked some time ago on https://github.com/hernanmd/file-dialog and then I 
> saw that https://github.com/pharo-spec/NewTools appeared, it's a pity to have 
> such a bad communication.
> 
> The issue to close is the following: 
> https://github.com/pharo-project/pharo/issues/15455
> 
> 
> Cheers,
> 
> Hernán
> 
> (2) 
> We started to clean the refactorings and we are making progress but this is 
> slow. 
> I started to remove references to UIManager because it should go away. 
> 
> In Spec we introduced dialog, check the examples in subclasses of 
> SpDialogPresenter
> In addition, an application is able to create some default dialog
> check ui - dialogs in SpApplication
> I introduced a simple notification center that should play a kind of growl. 
> The inform: calls should be redirected to notify: because inform: was in P11 
> not blocking and now in P12 there are. 
> 
> I created special issues about the references to UIManager
> I opened issues with a special tag
> https://github.com/pharo-project/pharo/issues?q=is%3Aissue+is%3Aopen+label%3A%22Project%3A+RemoveUIManager+BAD+dependencies%22
> 
> The analysis is here 
> 
> https://github.com/pharo-project/pharo/issues/14174
> 
> Here are some scripts. 
> 
> # Here we see the dependencies from Spec to UIManager
> | allSpec results |
> results := Dictionary new. 
> allSpec := SpPresenter withAllSubclasses.
> 
> UIManager selectors do: 
>       [ :sel | 
>               | size |
>       size := ((SystemNavigation default allCallsOn: sel )
>               select: [ :mth | allSpec includes: mth methodClass ]) size.
>       size isZero ifFalse: [          
>       results at: sel put:  size]].
> String streamContents: [ :s | 
> results keys sorted do: [ :k | 
>       s nextPutAll: k , ' -> ', (results at: k) asString. s cr. ]]
> # The following script shows the callers that are not in Spec nor in Morphic 
> | allSpec results allMorphs |
> results := Dictionary new. 
> allSpec := SpPresenter withAllSubclasses.
> allMorphs := Morph withAllSubclasses.
> allClasses := Smalltalk allClasses.
> allClasses := allClasses reject: [ :c | allSpec includes: c ].
> allClasses := allClasses reject: [ :c | allMorphs includes: c ].
> 
> UIManager selectors sorted do: 
>       [ :sel | 
>               | size |
>       size := ((SystemNavigation default allCallsOn: sel )
>               select: [ :mth | allClasses includes: mth methodClass ]) size.
>       size isZero ifFalse: [          
>       results at: sel put:  size]].
> String streamContents: [ :s | 
> results keys sorted do: [ :k | 
>       s nextPutAll: k , ' -> ', (results at: k) asString. s cr. ]]
> 
> abort: -> 1
> abort:title: -> 5
> activate -> 15
> alert: -> 4
> alert:title: -> 4
> alert:title:configure: -> 2
> beDefault -> 2
> chooseDirectory -> 1
> chooseDirectory: -> 1
> chooseDirectory:from: -> 2
> chooseDirectoryFrom: -> 1
> chooseFrom: -> 2
> chooseFrom:lines: -> 2
> chooseFrom:lines:message: -> 1
> chooseFrom:lines:message:title: -> 2
> chooseFrom:lines:title: -> 8
> chooseFrom:title: -> 5
> chooseFrom:values: -> 5
> chooseFrom:values:lines: -> 1
> chooseFrom:values:lines:message: -> 1
> chooseFrom:values:lines:message:title: -> 3
> chooseFrom:values:lines:title: -> 4
> chooseFrom:values:message:title: -> 4
> chooseFrom:values:title: -> 8
> chooseFullFileNameMatching: -> 1
> chooseFullFileNameMatching:label: -> 1
> chooseOrRequestFrom:values:lines:title: -> 3
> confirm: -> 47
> confirm:label: -> 5
> confirm:label:trueChoice:falseChoice:cancelChoice:default: -> 1
> confirm:orCancel: -> 1
> confirm:trueChoice:falseChoice: -> 2
> confirm:trueChoice:falseChoice:cancelChoice:default: -> 6
> deactivate -> 5
> debugProcess:context:label:fullView:notification: -> 1
> defer: -> 24
> deny: -> 2565
> deny:title: -> 2
> displayProgress:from:to:during: -> 4
> edit:label: -> 4
> edit:label:accept: -> 3
> fileExistsDefaultAction: -> 1
> handleDebugRequest:fromDebuggerSystem: -> 1
> handleError: -> 2
> handleError:log: -> 2
> handleWarningDebugRequest:fromDebuggerSystem: -> 1
> inform: -> 98
> inform:actionOnClick: -> 1
> informUser:during: -> 13
> informUserDuring: -> 5
> logError: -> 2
> lowSpaceWatcherDefaultAction: -> 1
> merge:informing: -> 2
> multiLineRequest:initialAnswer:answerHeight: -> 5
> newDisplayDepthNoRestore: -> 1
> newMenuIn:for: -> 15
> onPrimitiveError: -> 1
> proceed:title: -> 2
> question:title: -> 2
> questionWithoutCancel: -> 1
> questionWithoutCancel:title: -> 2
> request: -> 13
> request:initialAnswer: -> 19
> request:initialAnswer:entryCompletion: -> 1
> request:initialAnswer:title: -> 13
> request:initialAnswer:title:entryCompletion: -> 6
> requestDebuggerOpeningFor: -> 1
> requestDebuggerOpeningForProcess:named:inContext: -> 1
> requestDebuggerOpeningForWarning: -> 1
> requestDebuggerOpeningNamed:inContext: -> 1
> requestPassword: -> 3
> restoreDisplay -> 3
> restoreDisplayAfter: -> 1
> spawnNewProcess -> 4
> systemNotificationDefaultAction: -> 1
> terminateUIProcess -> 1
> textEntry: -> 2
> textEntry:title: -> 2
> textEntry:title:entryText: -> 2
> unhandledErrorDefaultAction: -> 3
> warningDefaultAction: -> 1
> 
> 
> 
> --------------------------------------------
> Stéphane Ducasse
> http://stephane.ducasse.free.fr / http://www.pharo.org 
> 03 59 35 87 52
> Assistant: Aurore Dalle 
> FAX 03 59 57 78 50
> TEL 03 59 35 86 16
> S. Ducasse - Inria
> 40, avenue Halley, 
> Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
> Villeneuve d'Ascq 59650
> France

--------------------------------------------
Stéphane Ducasse
http://stephane.ducasse.free.fr / http://www.pharo.org 
03 59 35 87 52
Assistant: Aurore Dalle 
FAX 03 59 57 78 50
TEL 03 59 35 86 16
S. Ducasse - Inria
40, avenue Halley, 
Parc Scientifique de la Haute Borne, Bât.A, Park Plaza
Villeneuve d'Ascq 59650
France



Reply via email to