Announcements in Nautilus
Hi, I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code. Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right? Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol) Cheers! Uko
Le 4 sept. 2015 à 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself.
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
And the best is that the UI is refreshed for each announcement. Then you understand why Nautilus is slow. Franck did some improvements but Nautilus still refresh itself far too much (there was 12 refresh calls for the source code panel ...). It looks like a design flaw: there should be only one announcement for a selection change. You could define PackageSelectionChanged, ClassSelectionChanged, ProtocolSelectionChanged, MethodSelectionChanged, each one with more or less info (I mean method will have the protocol, class, and package).
Another related issue: 12535 <https://pharo.fogbugz.com/f/cases/12535/To-many-updates-on-the-methods-list> To many updates on the methods list (changes aren't applicable anymore, because to many things had changed). Sometimes I am working on this and try to solve this. But I failed so far. The way Nautilus holds the current selection (model and UI) and how it propagate changes (selectX, selectXwithoutChangingSelection, select silenty ...) doesn't really work good ( or I just don't understand it). (And with rubric as TextModel, this is getting even more complicated). 2015-09-04 9:34 GMT+02:00 Christophe Demarey <Christophe.Demarey@inria.fr>:
Le 4 sept. 2015 à 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself.
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
And the best is that the UI is refreshed for each announcement. Then you understand why Nautilus is slow. Franck did some improvements but Nautilus still refresh itself far too much (there was 12 refresh calls for the source code panel ...).
It looks like a design flaw: there should be only one announcement for a selection change. You could define PackageSelectionChanged, ClassSelectionChanged, ProtocolSelectionChanged, MethodSelectionChanged, each one with more or less info (I mean method will have the protocol, class, and package).
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know. Stef Le 4/9/15 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement... <https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement...> Cheers. Uko
On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr> wrote:
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know.
Stef
Le 4/9/15 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
I will take a look at it, thanks to continue this effort. I agree with Nicolai, there is too many announcements raised but the way to manage selection complicates a deep change. But I trust us, step by step we can simplify all of this. Franck From: yuriy.tymchuk@me.com Date: Fri, 4 Sep 2015 12:08:55 +0200 To: pharo-dev@lists.pharo.org Subject: Re: [Pharo-dev] Announcements in Nautilus Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement... Cheers.Uko On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr> wrote:I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know. Stef Le 4/9/15 09:22, Yuriy Tymchuk a écrit : Hi, I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code. Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right? Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol) Cheers! Uko
Iâve seen that there is a method #package:class:category:method: which is called sometimes with nil values and the method sends 4 messages, and in each message if the arg is not nil it announces the selection. What Iâve done was to break in into 4 methods: #package:, #package:class: and so on. Then Iâve changes all the messages that contained hardcoded nil, to use only the method they need. And each method fires only one announcement. This is not perfect, but at least we donât have to send model package: aPackage class: aClass category: nil method: nil if we only want to select a class. Maybe in the future this can be reduced to a simple "class: aClassâ, because Iâve seen that many of parameters some from âself selectedPackageâ, âself selectedClassâ and so on. Uko
On 04 Sep 2015, at 14:02, Franck Warlouzet <franck.warlouzet@hotmail.fr> wrote:
I will take a look at it, thanks to continue this effort. I agree with Nicolai, there is too many announcements raised but the way to manage selection complicates a deep change. But I trust us, step by step we can simplify all of this.
Franck
From: yuriy.tymchuk@me.com Date: Fri, 4 Sep 2015 12:08:55 +0200 To: pharo-dev@lists.pharo.org Subject: Re: [Pharo-dev] Announcements in Nautilus
Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement... <https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement...>
Cheers. Uko
On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know.
Stef
Le 4/9/15 09:22, Yuriy Tymchuk a écrit : Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
Thanks we should continue to do a pass. I'm sad that I did not have a the time to sit with ben as I did it with franck. But I cannot redo the past so let us invest in the future. Stef Le 4/9/15 14:38, Yuriy Tymchuk a écrit :
Iâve seen that there is a method #package:class:category:method: which is called sometimes with nil values and the method sends 4 messages, and in each message if the arg is not nil it announces the selection.
What Iâve done was to break in into 4 methods: #package:, #package:class: and so on. Then Iâve changes all the messages that contained hardcoded nil, to use only the method they need. And each method fires only one announcement.
This is not perfect, but at least we donât have to send
model package: aPackage class: aClass category: nil method: nil
if we only want to select a class. Maybe in the future this can be reduced to a simple "class: aClassâ, because Iâve seen that many of parameters some from âself selectedPackageâ, âself selectedClassâ and so on.
Uko
On 04 Sep 2015, at 14:02, Franck Warlouzet <franck.warlouzet@hotmail.fr <mailto:franck.warlouzet@hotmail.fr>> wrote:
I will take a look at it, thanks to continue this effort. I agree with Nicolai, there is too many announcements raised but the way to manage selection complicates a deep change. But I trust us, step by step we can simplify all of this.
Franck
------------------------------------------------------------------------ From: yuriy.tymchuk@me.com <mailto:yuriy.tymchuk@me.com> Date: Fri, 4 Sep 2015 12:08:55 +0200 To: pharo-dev@lists.pharo.org <mailto:pharo-dev@lists.pharo.org> Subject: Re: [Pharo-dev] Announcements in Nautilus
Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement...
Cheers. Uko
On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know.
Stef
Le 4/9/15 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
Iâve opened an issue about double announcing method selection change https://pharo.fogbugz.com/f/cases/16480/NethodSelectionChanged-announcement-... <https://pharo.fogbugz.com/f/cases/16480/NethodSelectionChanged-announcement-...>. I think that it should be easier to track down 2 announcement than 7 :). Uko
On 04 Sep 2015, at 19:50, stepharo <stepharo@free.fr> wrote:
Thanks we should continue to do a pass. I'm sad that I did not have a the time to sit with ben as I did it with franck. But I cannot redo the past so let us invest in the future. Stef
Le 4/9/15 14:38, Yuriy Tymchuk a écrit :
Iâve seen that there is a method #package:class:category:method: which is called sometimes with nil values and the method sends 4 messages, and in each message if the arg is not nil it announces the selection.
What Iâve done was to break in into 4 methods: #package:, #package:class: and so on. Then Iâve changes all the messages that contained hardcoded nil, to use only the method they need. And each method fires only one announcement.
This is not perfect, but at least we donât have to send
model package: aPackage class: aClass category: nil method: nil
if we only want to select a class. Maybe in the future this can be reduced to a simple "class: aClassâ, because Iâve seen that many of parameters some from âself selectedPackageâ, âself selectedClassâ and so on.
Uko
On 04 Sep 2015, at 14:02, Franck Warlouzet < <mailto:franck.warlouzet@hotmail.fr>franck.warlouzet@hotmail.fr <mailto:franck.warlouzet@hotmail.fr>> wrote:
I will take a look at it, thanks to continue this effort. I agree with Nicolai, there is too many announcements raised but the way to manage selection complicates a deep change. But I trust us, step by step we can simplify all of this.
Franck
From: yuriy.tymchuk@me.com <mailto:yuriy.tymchuk@me.com> Date: Fri, 4 Sep 2015 12:08:55 +0200 To: pharo-dev@lists.pharo.org <mailto:pharo-dev@lists.pharo.org> Subject: Re: [Pharo-dev] Announcements in Nautilus
Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. <https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcements-for-a-single-action>https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcements-for-a-single-action <https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement...>
Cheers. Uko
On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know.
Stef
Le 4/9/15 09:22, Yuriy Tymchuk a écrit : Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
Le 4/9/15 21:08, Yuriy Tymchuk a écrit :
Iâve opened an issue about double announcing method selection change https://pharo.fogbugz.com/f/cases/16480/NethodSelectionChanged-announcement-.... I think that it should be easier to track down 2 announcement than 7 :).
:) Stef
Uko
On 04 Sep 2015, at 19:50, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
Thanks we should continue to do a pass. I'm sad that I did not have a the time to sit with ben as I did it with franck. But I cannot redo the past so let us invest in the future. Stef
Le 4/9/15 14:38, Yuriy Tymchuk a écrit :
Iâve seen that there is a method #package:class:category:method: which is called sometimes with nil values and the method sends 4 messages, and in each message if the arg is not nil it announces the selection.
What Iâve done was to break in into 4 methods: #package:, #package:class: and so on. Then Iâve changes all the messages that contained hardcoded nil, to use only the method they need. And each method fires only one announcement.
This is not perfect, but at least we donât have to send
model package: aPackage class: aClass category: nil method: nil
if we only want to select a class. Maybe in the future this can be reduced to a simple "class: aClassâ, because Iâve seen that many of parameters some from âself selectedPackageâ, âself selectedClassâ and so on.
Uko
On 04 Sep 2015, at 14:02, Franck Warlouzet <franck.warlouzet@hotmail.fr> wrote:
I will take a look at it, thanks to continue this effort. I agree with Nicolai, there is too many announcements raised but the way to manage selection complicates a deep change. But I trust us, step by step we can simplify all of this.
Franck
------------------------------------------------------------------------ From: yuriy.tymchuk@me.com <mailto:yuriy.tymchuk@me.com> Date: Fri, 4 Sep 2015 12:08:55 +0200 To: pharo-dev@lists.pharo.org <mailto:pharo-dev@lists.pharo.org> Subject: Re: [Pharo-dev] Announcements in Nautilus
Iâve made a prototype, and it seems to work well, though Iâd really like if Franck or Esteban can take a look. https://pharo.fogbugz.com/f/cases/16475/Nautilus-sends-too-many-announcement...
Cheers. Uko
On 04 Sep 2015, at 10:25, stepharo <stepharo@free.fr <mailto:stepharo@free.fr>> wrote:
I will not reply publicly on the true reason of that situation :) Now what we should do is to continue to simplify the code of Nautilus (we made great steps with Franck). And yuriy if you have some fixes please let us know.
Stef
Le 4/9/15 09:22, Yuriy Tymchuk a écrit :
Hi,
I find announcements in Nautilus a bit strange. I guess you are familiar with QualityAssistant. To display the critics about the currently selected entity I need to know which one is selected. There is NautilusMethodSelected and NautilusClassSelected announcements. But here is a small detail, if you select a method, both of them are fired i.e. for the methodâs class and the method itself. For me it does not make any sense because I need to show critics only for currently selected source code.
Moreover if I need to show something about the class while a method is selected, I can just ask the method for its class, right?
Does anybody need this double announcing? (Maybe it is quadruple, I havenât checked for a package and protocol)
Cheers! Uko
participants (5)
-
Christophe Demarey -
Franck Warlouzet -
Nicolai Hess -
stepharo -
Yuriy Tymchuk