Eelco Hillenius wrote: > If that's what you want, why not do something simple like this? > > public interface IComponentFactory { > > Button createButton(MarkupContainer parent, String id); > } > > class YuiComponentFactory implements IComponentFactory { > > public Button createButton(MarkupContainer parent, String id) { > return new YuiButton(parent, id); > } > }
yes, but if YuiButton extends Button, it can't share code with YuiMenu. meaning, i cant create an AbstractYuiComponent > > I think the framework is flexible enough to be able to do without the > added complexity of having things like renderers. I think if we'd use > such patterns too much, it will only confuse people. The cases where > it does make sense, like with choice renderers, request cycle > processor etc, we use that pattern. What concrete delegates did you > have in mind? i don't understand what you mean by concrete delegates. but concerning the pattern, i think it will be cool to be able to switch widgets easily. say i have a ComponentFactory that returns Component classes, but it constructs them around an implementation based on some configuration. So a page just uses a Button, with a YuiButton, or a HtmlButton. The page always looks the same (and the YuiComponent hierarchy can reuse code through inheritance) > > Eelco > > > > > On 7/5/06, Ittay Dror <[EMAIL PROTECTED]> wrote: >> everything is doable, the question is about design (not if i can make it >> work, but if i can make it work reusing code, easy to change etc.) >> >> say i have YuiButton and YuiMenu, both need to contribute the same js to the >> header. now i want to reuse the code that adds this header contribution. I >> can have YuiButton and YuiMenu both extend YuiComponent. But, what if I also >> want my Page to be unaware of the toolkit I'm using? I would like the page >> to use instances of Button, Menu etc. So YuiButton can extend Button, but >> then it can't share code with YuiMenu through extending. I can have YuiUtils >> that both of them use, which means, in fact, that I'm implementing the >> bridge pattern. >> >> what would be good, i think, for the framework, is to use the bridge pattern >> for all components. Then, different kinds of toolkit can provide the >> implementation. >> >> Button: has methods like onClick, uses model for labels. >> YuiButton (used by Button): has methods like render(), can add headers, and >> probably doesn't use the model, but gets explicitely the attributes to use >> (e.g., label) >> >> ittay >> >> Eelco Hillenius wrote: >>> Maybe you could be more explicit in what you mean? >>> >>> The differences between those versions would primarily be in the >>> different javascript/ css dependencies they use, which is easy to >>> configure using header contributors. And they would need some >>> different initializations, which you could maybe do with attribute >>> modifiers. If that wouldn't work, you can always fall back on >>> abstracting parts of the component into plug-gable pieces so that you >>> configure a component using composition. >>> >>> Eelco >>> >>> >>> On 7/4/06, Ittay Dror <[EMAIL PROTECTED]> wrote: >>>> maybe wicket 2.0 can refactor the components hierarchy to use the bridge >>>> pattern? >>>> >>>> for example, i want a Calendar component that will be implemented with >>>> jscalendar, yui calendar etc. making Calendar abstract and extending it >>>> with YuiCalendar is not efficient if there are other implementations using >>>> Yui, since there is probably a lot of code they share. >>>> >>>> of course i can add the bridge pattern my self, but it will be easier if >>>> wicket already has that, since then all the wicket technical stuff is >>>> taken care of, and the only thing required is understanding the library i >>>> want to integrate with. >>>> >>>> thanx, >>>> ittay >>>> >>>> -- >>>> =================================== >>>> Ittay Dror, >>>> Chief architect, openQRM TL, >>>> R&D, Qlusters Inc. >>>> [EMAIL PROTECTED] >>>> +972-3-6081994 Fax: +972-3-6081841 >>>> >>>> http://www.openQRM.org >>>> - Keeps your Data-Center Up and Running >>>> >>>> Using Tomcat but need to do more? Need to support web services, security? >>>> Get stuff done quickly with pre-integrated technology to make your job >>>> easier >>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>>> _______________________________________________ >>>> Wicket-develop mailing list >>>> Wicket-develop@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/wicket-develop >>>> >>> Using Tomcat but need to do more? Need to support web services, security? >>> Get stuff done quickly with pre-integrated technology to make your job >>> easier >>> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>> _______________________________________________ >>> Wicket-develop mailing list >>> Wicket-develop@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wicket-develop >>> >> >> -- >> =================================== >> Ittay Dror, >> Chief architect, openQRM TL, >> R&D, Qlusters Inc. >> [EMAIL PROTECTED] >> +972-3-6081994 Fax: +972-3-6081841 >> >> http://www.openQRM.org >> - Keeps your Data-Center Up and Running >> >> Using Tomcat but need to do more? Need to support web services, security? >> Get stuff done quickly with pre-integrated technology to make your job easier >> Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> Wicket-develop mailing list >> Wicket-develop@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wicket-develop >> > > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Wicket-develop mailing list > Wicket-develop@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-develop > -- =================================== Ittay Dror, Chief architect, openQRM TL, R&D, Qlusters Inc. [EMAIL PROTECTED] +972-3-6081994 Fax: +972-3-6081841 http://www.openQRM.org - Keeps your Data-Center Up and Running Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Wicket-develop mailing list Wicket-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-develop