Just one more thing on this subject. Is is really a good ideia to set the default of the inherit-specification to true? Like you said Jesse...
"...but I worry about what kind of unexpected behaviour would come about as a result of doing this. (for people relying on it ~not~ happening)" I'm thinking out loud here. I myself think it's obviously the desired bahaviour, since it's only logical to inherit the whole information/resources when we subclass a component, but like you said, for those who are not expecting this and since the old Tap 4.0 dis not behave this way... is it not dangerous? I can just imagine the mail list spam with this question over and over again... :-) On the other hand it's only natural that such a feature would be inteligent enough to know that since an inhetitance took place the correct behaviour would be to inherit the spec also... humm... I don't know, just thinking... maybe if nobody else makes any remark on this it means everybody agrees on the course described and it is in fact the best one! ;-) Regards, On 8/28/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote:
I've already created it, it's called "inherit-specification"... Description: If yes (the default), all elements contained in any superclass components will be directly inherited in this specification.(this includes parameters/properties/assets/etc..) No one should get their hopes up too much yet...(in case I'm setting myself up for some unknown blocking reason for this not to be possible...) On 8/27/06, andyhot <[EMAIL PROTECTED]> wrote: > > Are you thinking about a new 'inherits' or 'extends' attribute in the > <component-specification> element ? > > > Jesse Kuhnert wrote: > > Ok...I'm giving the whole "inheritance" thing a go..We'll see how that > > works > > out ;) > > > > On 8/27/06, Pedro Viegas <[EMAIL PROTECTED]> wrote: > >> > >> Humm, so the inheritance is actually easyer that the inclusion of an > >> external .xml... ok, the inheritance is the best solution by far so > good > >> news! > >> Has for the .xml and so on... thanks for the tip. :-D > >> > >> On 8/28/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: > >> > > >> > I don't think it needs to be as complicated as you think. > >> > > >> > There is a whole set of classes people don't normally see that > >> encapsulate > >> > all of the information parsed from templates. It wouldn't be very > hard > >> to > >> > walk up the class heirarchy and create a "union" view of a template. > >> > > >> > As for filename extensions, it only takes a second or two to go into > >> > eclipse > >> > -> window -> preferences -> editor -> content types -> to > >> associated all > >> > *.jwc/*.page/*.application/etc.. with wtp xml.. > >> > > >> > I've been using autocompleting xsd/dtd stuff with wtp for a pretty > >> long > >> > time > >> > now and have found it mostly sufficient for my needs, especially when > >> > tapestry is able to dynamically see my changes made to them. > >> > > >> > On 8/27/06, Pedro Viegas <[EMAIL PROTECTED]> wrote: > >> > > > >> > > By the way... since we're diging into this... > >> > > Again from the wiki... > >> > > > >> > > *"Rename the template page from *.page to *.xml or *.page.xml* This > >> > > feature > >> > > would allow the IDE to provide some completion and validate the > >> > template" > >> > > > >> > > If we didn't break compatibility with the use of the previous > >> excception > >> > > simply allowing the use of normal .xml exception this would by just > >> > > trivial... and the IDE validation and autocompletion would be VERY > >> > > welcome! > >> > > Sorry, this was me trying to compensate Geoff's decision somehow! > >> :-( > >> > > > >> > > What do you say? > >> > > > >> > > On 8/28/06, Pedro Viegas <[EMAIL PROTECTED]> wrote: > >> > > > > >> > > > Don't you sleep Jesse? :-D > >> > > > Another lightning fast response, thanks! > >> > > > > >> > > > Gathering the bullet item from the wiki... > >> > > > * > >> > > > * > >> > > > > >> > > > * "Default Page/JWC Files and/or Page/JWC Inheritance* Often > there > >> is > >> > a > >> > > > need to use the exact same services/beans/etc one multiple pages. > >> The > >> > > > current solution is to add them to all the page/jwc files. There > >> > should > >> > > be a > >> > > > way to inherit another page/jwc file and/or simply import another > >> > > page/jwc > >> > > > file's settings. (Note that this is already possible with > >> > annotations.)" > >> > > > > >> > > > > >> > > > Of course the simple class inheritance would be just perfect. But > >> that > >> > > may > >> > > > be veeeery hard to implement at this point right? So many > >> component > >> to > >> > > > refactor. > >> > > > One thing pops up in my mind like a very handy and not so hard to > >> > > > implement feature from the item above... "or simply import > another > >> > > page/jwc > >> > > > file's settings". A new Tag to import another jwc/page (or > another > >> > > extension > >> > > > since it would be a section of the specification and not a > >> complete > >> > > one... > >> > > > say like .spec or something like that) would be relay simple > >> right? > >> > And > >> > > that > >> > > > would be veeery handy! > >> > > > The "There should be a way to inherit another page/jwc file" > would > >> > also > >> > > > not be a problem to other users if it were not the default > >> behaviour > >> > > right? > >> > > > Something like... > >> > > > > >> > > > <component-specification > >> > > > class="Some class..." > >> > > > inherits="/org/apache/tapestry/form/Form.jwc"> > >> > > > (...) > >> > > > > >> > > > ...would be heaven right now, even if it would still let all > >> the not > >> > > > wanted page and jwc files endure a while longer! :-D > >> > > > > >> > > > So, if implementing these two little wishes... > >> > > > > >> > > > 1. Import a .spec or something else file into a page/jwc (for > >> > > > recurring resources) > >> > > > 2. Inherit from another jwc/page > >> > > > > >> > > > ...are quick to do... please Jesse, feel absolutely free to do > >> so! I > >> > for > >> > > > one think it would benefit much the complexity of defining > >> > > components/pages, > >> > > > along with the move to annotations we are already able to do > since > >> > Tap4! > >> > > > > >> > > > Of course one should also think, if it is worth to keep > >> building on > >> > top > >> > > > the the page/jwc reality or simply eradicate it for good and > >> build a > >> > > > different approach full annotations all way long? So much has > >> allready > >> > > been > >> > > > done in this direction! OK, I could not resist... shame on me, I > >> will > >> > > > quietly punish myself for that previous remark! :-D > >> > > > > >> > > > Regards, > >> > > > > >> > > > On 8/28/06, Jesse Kuhnert <[EMAIL PROTECTED]> wrote: > >> > > > > >> > > > > I think inherited jwc configurations are part of the 4.1 > >> wishlist. > >> > > > > > >> > > > > http://wiki.apache.org/tapestry/Tapestry41WishList > >> > > > > > >> > > > > Besides that, annotations are definitely the way to go to get > >> > > > > inheritance > >> > > > > today. I would love nothing more than to be able to use them > >> > > exclusively > >> > > > > - > >> > > > > but I don't think I'd be able to get away with it yet... > >> > > > > > >> > > > > I don't think jwc inheritance should be very hard to implement, > >> but > >> > I > >> > > > > worry > >> > > > > about what kind of unexpected behaviour would come about as a > >> result > >> > > of > >> > > > > doing this. (for people relying on it ~not~ happening) > >> > > > > > >> > > > > Maybe I should pause on my other things and tackle this really > >> > quick? > >> > > > > (besides bugs of course) > >> > > > > > >> > > > > On 8/27/06, Pedro Viegas <[EMAIL PROTECTED]> wrote: > >> > > > > > > >> > > > > > Hi all, > >> > > > > > > >> > > > > > Been creating a component lybrary that is composed of several > >> > > tapestry > >> > > > > > components with some add-ons or default customizations and a > >> bunch > >> > > of > >> > > > > new > >> > > > > > ones. > >> > > > > > Been having a very repeating anoyance in doing this and would > >> like > >> > > to > >> > > > > get > >> > > > > > opinions on how to do this the best way, or if this is really > >> > > > > something we > >> > > > > > sould think about for the Tapestry wish list. > >> > > > > > > >> > > > > > If we get say for instance the Form component and want to > >> > basically > >> > > > > add a > >> > > > > > few funcionallity to it. Say a new parameter or two with some > >> work > >> > > in > >> > > > > the > >> > > > > > backstages (java class! :-D). > >> > > > > > The normal approuch would be to subclass the > >> > > > > > org.apache.tapestry.form.Formand build the .jwc companion > >> file. > >> > > > > > This is the problem, it's very anoying to have to copy > several > >> > > > > parameters > >> > > > > > and injection and other Form Component needed recourses > >> that are > >> > > > > defined > >> > > > > > in > >> > > > > > the jwc to our own jwc. > >> > > > > > If for instance in Tap4.2 the component suffers an > >> enhancement, > >> or > >> > > > > even in > >> > > > > > the current Tap version a BUG is detected and corrected in > the > >> jwc > >> > > > > file > >> > > > > > one > >> > > > > > has to correct it in our code as well. Basically we're > >> subclassing > >> > > > > part of > >> > > > > > the code and copy-pasting another part of the code... the one > >> > witch > >> > > is > >> > > > > > done > >> > > > > > declarativly and not in the Java class. > >> > > > > > > >> > > > > > Is there a nother way of doing this better? > >> > > > > > Of couse I could build a component witch wraped the tapestry > >> > > component > >> > > > > > inside it. That's what I have done at the moment, but it > looks > >> > like > >> > > an > >> > > > > > unnecessary "layer" for tapestry to run through when > rendering > >> the > >> > > > > page. > >> > > > > > One > >> > > > > > more layer of code to deel with in every AJAX refresh of a > >> form, > >> > and > >> > > > > so on > >> > > > > > and so on. > >> > > > > > > >> > > > > > Seems like the more I use the JWC files the more I want to > >> take > >> > > every > >> > > > > bit > >> > > > > > of > >> > > > > > information from them. Anoying little things aren't they? > >> > > > > > Long live the annotation in the Javaclass. (Witch I think are > >> not > >> > > the > >> > > > > > answer > >> > > > > > here, are they?) > >> > > > > > > >> > > > > > Another painfull example is, for instance, if one needed to > >> build > >> > a > >> > > > > > component for example to accept number input. Simply a > >> spin-off > >> of > >> > > the > >> > > > > > >> > > > > > TextField with the default translator to number. Sonds very > >> > simple, > >> > > a > >> > > > > > class > >> > > > > > that subclasses the org.apache.tapestry.form.TextField and > >> a... > >> > jwc > >> > > > > > component that is a full copy-paste of the original TextField > >> one > >> > > with > >> > > > > the > >> > > > > > changed translator. Very ugly is it not? > >> > > > > > When we're talking of simples parameter definition, no > >> problem, > >> > it's > >> > > > > even > >> > > > > > nice to reduce to what we want the unneeded parameter list, > >> but > >> > when > >> > > > > we're > >> > > > > > talking of injections, beans, JS scripts, and so on, well in > >> these > >> > > > > cases > >> > > > > > we're going deep in the heart of the component implementation > >> and > >> > > are > >> > > > > > asking > >> > > > > > for refactors (new copy-paste) when new releases of > >> tapestry are > >> > > > > released. > >> > > > > > > >> > > > > > Any thoughts on this will be welcomed. > >> > > > > > > >> > > > > > -- > >> > > > > > Pedro Viegas > >> > > > > > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > -- > >> > > > > Jesse Kuhnert > >> > > > > Tapestry/Dojo/(and a dash of TestNG), team member/developer > >> > > > > > >> > > > > Open source based consulting work centered around > >> > > > > dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com > >> > > > > > >> > > > > > >> > > > > >> > > > > >> > > > -- > >> > > > Pedro Viegas > >> > > > > >> > > > >> > > > >> > > > >> > > -- > >> > > Pedro Viegas > >> > > > >> > > > >> > > >> > > >> > -- > >> > Jesse Kuhnert > >> > Tapestry/Dojo/(and a dash of TestNG), team member/developer > >> > > >> > Open source based consulting work centered around > >> > dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com > >> > > >> > > >> > >> > >> -- > >> Pedro Viegas > >> > >> > > > > > > > -- > Andreas Andreou - [EMAIL PROTECTED] - http://andyhot.di.uoa.gr > Tapestry / Tacos developer > Open Source / J2EE Consulting > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Jesse Kuhnert Tapestry/Dojo/(and a dash of TestNG), team member/developer Open source based consulting work centered around dojo/tapestry/tacos/hivemind. http://blog.opencomponentry.com
-- Pedro Viegas