help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] visualgst


From: Nicolas Petton
Subject: Re: [Help-smalltalk] visualgst
Date: Sat, 12 Jun 2010 22:27:48 +0200

That's awesome Paolo, thanks!
I'll give it a try and report bugs ASAP :)

Cheers,
Nico

Le samedi 12 juin 2010 à 19:45 +0200, Paolo Bonzini a écrit :
> All,
> 
> I spent a pleasant afternoon refactoring and fixing bugs in VisualGST. 
> Diffstat follows:
> 
>   73 files changed, 765 insertions(+), 724 deletions(-)
> 
> Looks pretty brutal. :-)
> 
> Most important changes:
> 
> - Fixed recategorization of classes
> 
> - Fixed add category.  Now it is not anymore an undoable command, since 
> it's enough to just select another class to effectively undo the 
> command.  This can be changed again later, when DeleteCategory is 
> implemented (but how?)
> 
> - Removed UndoableCommand class.  The only interesting method could be 
> moved to UndoCommand.
> 
> - Fixed various backtraces on "nothing is selected".  Commands now can 
> refuse to execute, and there are abstract classes ClassCommand, 
> MethodCommand etc. that refuse to execute if there is no selected class, 
> method, etc.  Then, things such as FileoutClassCommand become subclasses 
> of ClassCommand.
> 
> - Related to this, all commands now take a browser widget as their 
> target.  You really should not pass classes, namespaces etc. to the 
> commands, as this is the task of the UndoCommands instead.  This was 
> necessary for the implementation of ClassCommand etc.
> 
> Anyway, let me say it again.  Commands a) should always decide what to 
> do _only based on the selection in the GUI_, b) are immutable, c) are 
> responsible for checking the validity of the state.   (I think that's 
> already the case for all commands, but didn't really check).
> 
> Why?  Because the plan here is to create commands once and for all at 
> browser creation time, and make them more integrated so that they can be 
> connected to the enabling/disabling/showing/hiding of menu item.
> 
> Instead, UndoCommands should always decide what to do only based on 
> their contents.  They're also immutable and responsible for checking the 
> validity of the state, but the similarities end here.  If later there is 
> a need, it is possible to change UndoCommand to UndoAction and add an 
> abstract Action class for repeatable but non-undoable actions.  I was 
> almost going to do this today, then decided that maybe we AGNI.
> 
> In fact, you could see UndoCommands as an instance of the Command 
> pattern, while Commands mediate between the view (the GTK+ objects) and 
> the controller (the GtkConcreteWidget).  Kudos to Gwen for the design. 
> It was not (and still is not) totally fleshed out, but it's really 
> waiting to come out beatifully.
> 
> - Also related to this, I completely redid the implementation of 
> doit/printit/etc.  These now have their own Commands too.  The browser 
> widget has control on the target object and asks the text widget to 
> doit/printit/etc. with the given object.  The typical implementation is
> 
>      targetObject [
>           ^something
>      ]
> 
>      doIt: anObject [
>           someTextWidget doIt: anObject
>      ]
> 
>      doIt [
>          DoItCommand on: self
>      ]
> 
> This was necessary to fix DoIt and friends in debuggers and in inspector 
> browsers.  I haven't tested it in the SUnit browser, so doit etc. may be 
> broken there.  Despite the pleasure of the experience I was quite tired, 
> so I decided to stop.  Doits in the debugger are much more important.
> 
> - I renamed the VisualGST class to GtkLauncher, since it conflicted with 
> the namespace name.  Declaring the class with the same name as a 
> namespace should really be forbidden.
> 
> - On top of this there are a few small "feel" improvements such as 
> providing default buttons in the "Add" dialogs.
> 
> 
> I already pushed it to the gst repo and to my visualgst fork on github. 
>   Please test it and find bugs.
> 
> I don't think I'll have time for more work in fixing the Debian hangs, 
> so I'll try to publish 3.2.1 in a week or two.  It will already have 
> been almost two months since the release.  I don't have plans for 
> opening the development of 3.3 yet, we need some calm.
> 
> Gwen, please merge master and stable.  Thanks!
> 
> Paolo
> 
> _______________________________________________
> help-smalltalk mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/help-smalltalk

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée


reply via email to

[Prev in Thread] Current Thread [Next in Thread]