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
>>>> [email protected]
>>>> 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
>>> [email protected]
>>> 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
>> [email protected]
>> 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
> [email protected]
> 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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop