That's what I was thinking about. Thanks for the example.

Cheerio,
Roman



On 24 Dub, 09:28, Vitali Lovich <vlov...@gmail.com> wrote:
> Well, for one, you could just style it like:
>
> http://www.webappers.com/2007/06/18/simple-round-css-buttons-wii-butt... A
> more generic approach would be to maintain state in your composite.  You're
> probably  going to need click handlers for the style changes (assuming you
> go with a more complicated example).
>
> So something like:
>
> class MyComposite extends Composite implements HasClickHandler {
>   class MyCompositeHandler implements ClickHandler {
>       void addDelegatedClickHandler(ClickHandler h) {
>               // add h to some set or list
>       }
>
>      void removeDelegatedClickHandler(ClickHandler h) {
>      }
>
>      public void onClick(ClickEvent evt) {
>           // handle MyComposite behaviour
>          for (ClickHandler delegated : toDelegate) {
>                   delegated.onClick(evt);
>          }
>      }
>   }
>
> MyCompositeHandler handler;
>
> public MyComposite() {
>   // initialize foo to your composite
>   initWidget(foo);
>
>   handler = new MyCompositeHandler();
>   button.addClickHandler(handler);
>
> }
>
> public HandlerRegistration addClickHandler(ClickHandler h) {
>     handler.addDelegatedClickHandler(h);
>     // return registration with widget that you are adding too.  maybe wrap
> the result in a handler registration that also removes h from the handler
> when it is unregistered.
>
> }
>
> Hope this gives you some ideas (I'm not saying this is the correct or best
> way).  Just one possible solution.
>
> On Fri, Apr 24, 2009 at 2:39 AM, romant <roman.te...@gmail.com> wrote:
>
> > Yes, setEnabled() is the thing which can do the job for a standard gwt
> > button. But consider the situation when you want to implement your own
> > button (with rounded corners let's say) named RButton. You implement
> > it as a new widget which extends Composite class and implements
> > ClickHandler interface to get mouse clicks, but here the method
> > setEnabled() is not available. So how to implement the setEnabled()
> > method in this case? Do you suggest to store the ClickHandler in the
> > RButton class itself and remove it in its setEnabled() method, or is
> > there any better way?
>
> > On 24 Dub, 06:59, Vitali Lovich <vlov...@gmail.com> wrote:
> > > In general I think you should keep it with the class that does needs to
> > > remove the handler.  I hope you know about setEnabled/setDisabled -
> > that's
> > > the proper way to disable a buttons functionality, not to remove the
> > > handler.  In general, I have only encountered 1 situation where I would
> > be
> > > interested in removing a handler - more often than not, you will be
> > > adding/removing the widget itself which should take care off removing the
> > > handlers to free up memory.
>
> > > On Thu, Apr 23, 2009 at 10:50 AM, romant <roman.te...@gmail.com> wrote:
>
> > > > Hi guys,
> > > > with GWT 1.6 there is the new handler-based approach for managing
> > > > events.
> > > > When I register, let's say, a button handler
>
> > > > HandlerRegistration buttonRegistration = button.addClickHandler(new
> > > > ClickHandler() {...do something...});
>
> > > > I get an instance of HandlerRegistration. Then, if I want to remove
> > > > the button's handler, let's say for a while just to make the button
> > > > functionality temporarily unavailable, I just call
>
> > > > buttonRegistration.removeHandler();
>
> > > > But now the point is where to store the buttonHandler instance. With
> > > > listeners it was easy, you just called button.removeClickListener()
> > > > because the button kept the listener.
>
> > > > If I have a large project with many buttons what is the best approach
> > > > for storing and handling the HandlerRegistration instances of my
> > > > buttons and other widgets? Is there any recommended design pattern?
> > > > This can make a real mess in my application if I do not find some
> > > > general solution of this.
>
> > > > Thanks.
> > > > Roman- Skrýt citovaný text -
>
> > > - Zobrazit citovaný text -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to Google-Web-Toolkit@googlegroups.com
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to