that is a much bigger question that has already been discussed a couple of times. search the archives.
-igor On Thu, May 21, 2009 at 11:49 PM, Joe Fawzy <[email protected]> wrote: > Hi IgorDoes that mean that u agree on refactoring Component and > MarkupContainer to interfaces?or what > Joe > > On Fri, May 22, 2009 at 9:19 AM, Igor Vaynberg <[email protected]>wrote: > >> well, a big -1 on this until component and markupcontainer are interfaces. >> >> -igor >> >> On Thu, May 21, 2009 at 11:15 PM, Joe Fawzy <[email protected]> wrote: >> > hi dear Igoryes u r right , i am doing a lot of casts ,and i think that >> > Component and MarkupContainer must also b interfaces , and our custom >> > interfaces for composite components extends them >> > BUT it is a major refactoring and not suitable at this stage, so i >> decided >> > to discuss it later,on planning the next release >> > thanks >> > Joe >> > >> > On Fri, May 22, 2009 at 8:20 AM, Igor Vaynberg <[email protected] >> >wrote: >> > >> >> What methods will the interface contain? Component is not an interface >> >> so will your code have to cast an interface to component to access it? >> >> That's not really coding to an interface. >> >> >> >> -Igor >> >> >> >> On Thursday, May 21, 2009, Joe Fawzy <[email protected]> wrote: >> >> > hi dearactually i am not doing a reflection based component >> >> > i am implementing a composite control in which DataView or ListView is >> >> just >> >> > one component, this composite component intended to b used by >> >> implementing >> >> > some factory methods, so i thought it will be a good idea to make Item >> an >> >> > interface so the factory method can return it, and let the component >> >> users >> >> > determine what the actual component is ,Panel, Fragment or ordinary >> >> > MarkupContainer >> >> > alse if this happens it will be nice to provide default Item >> >> implementation >> >> > for Panels and Fragments ItemFragment,ItemPanel >> >> > >> >> > also i think ,even if this refactoring will not save any code, it is >> >> still >> >> > a good design decision (at least to me) as it favour programming to >> >> > interfaces >> >> > thanks >> >> > joe >> >> > >> >> > On Thu, May 21, 2009 at 3:47 AM, Jeremy Thomerson < >> >> [email protected] >> >> >> wrote: >> >> > >> >> >> I'm just not convinced that it would actually save any code... If >> >> >> you're trying to make an reflection-based ListView subclass, you >> could >> >> >> do that now without any change. >> >> >> >> >> >> Give a sample of how code would be shortened by using an interface. >> >> >> >> >> >> -- >> >> >> Jeremy Thomerson >> >> >> http://www.wickettraining.com >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Wed, May 20, 2009 at 6:14 PM, Joe Fawzy <[email protected]> >> wrote: >> >> >> > Hi dearthanks for prompt reply >> >> >> > actually i am using this all the time , and this was a repetitive >> >> piece >> >> >> of >> >> >> > code all over my project so i am trying to make listView subclass >> >> which >> >> >> take >> >> >> > a panel class in its constructor and instantiate it on demand by >> using >> >> a >> >> >> > supplied factory interface whick takes care of differences between >> >> panel >> >> >> and >> >> >> > fragments but produce the same interface which is the suggested >> IItem >> >> or >> >> >> > DataItem and set it as the item >> >> >> > doing this with the current api is possible but require lot of >> >> tweaking >> >> >> to >> >> >> > allow both panels and components to b used >> >> >> > i thought that the suggested refactoring will b a better choice and >> >> also >> >> >> a >> >> >> > good programming practice (programming to interfaces) but i will >> >> respect >> >> >> ur >> >> >> > decision any way >> >> >> > >> >> >> > thanks again >> >> >> > Joe >> >> >> > >> >> >> > On Thu, May 21, 2009 at 1:57 AM, Jeremy Thomerson < >> >> >> [email protected] >> >> >> >> wrote: >> >> >> > >> >> >> >> You can't just use item.add(new YourCustomPanel(id, getModel())? >> >> >> >> >> >> >> >> -- >> >> >> >> Jeremy Thomerson >> >> >> >> http://www.wickettraining.com >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> On Wed, May 20, 2009 at 5:54 PM, Joe Fawzy <[email protected]> >> >> wrote: >> >> >> >> > Hi allcan we refactor org.apache.wicket.markup.repeater.Item to >> an >> >> >> >> interface >> >> >> >> > IItem or DataItem or so , and make the standard Item class >> >> implement >> >> >> this >> >> >> >> > interface , this will maintain backward compatibility but allow >> us >> >> to >> >> >> use >> >> >> >> > panels and fragments as Item implementation (by overriding the >> >> >> newItem() >> >> >> >> > method) instead of being restricted to MarkupContainer which is >> not >> >> as >> >> >> >> > reusable as panels and fragments >> >> >> >> > thanks >> >> >> >> > joe >> >> >> >> > >> >> >> >> >> >> >> > >> >> >> >> >> > >> >> >> > >> >
