Return-Path: Delivered-To: apmail-myfaces-users-archive@www.apache.org Received: (qmail 33968 invoked from network); 25 May 2008 13:18:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 25 May 2008 13:18:14 -0000 Received: (qmail 31119 invoked by uid 500); 25 May 2008 13:18:12 -0000 Delivered-To: apmail-myfaces-users-archive@myfaces.apache.org Received: (qmail 31074 invoked by uid 500); 25 May 2008 13:18:12 -0000 Mailing-List: contact users-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Discussion" Delivered-To: mailing list users@myfaces.apache.org Received: (qmail 31063 invoked by uid 99); 25 May 2008 13:18:12 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 May 2008 06:18:12 -0700 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of andrew.rw.robinson@gmail.com designates 209.85.200.175 as permitted sender) Received: from [209.85.200.175] (HELO wf-out-1314.google.com) (209.85.200.175) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 May 2008 13:17:26 +0000 Received: by wf-out-1314.google.com with SMTP id 28so1356881wfc.24 for ; Sun, 25 May 2008 06:17:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; bh=mtMvSbm8SdR5Os5DZNl70sSZAW3R5e3XzN9g1Iqfvs8=; b=SbVzrAyPA/AJDg1sWxim7Jo9ZNI3kIcDs7EARCGgCLp3flH4fYZRw3/AYtFT+cwu5CFmLGvY+fJODfIn+hbwCrw5KlAEwT6IUvFbjd7Y4k/tTPq/zHxJScKW33tC4VXbUw57hbCN6DlhABuGJMv5gNTQOtMJrQe0BeNgl4rFUNw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version:content-type:content-transfer-encoding:content-disposition:references; b=ubcSqQhqsh5s1lgvZz2Bp0llkOIyv7HqDqdkbi9kdCqH3SwsWOzilAHWBJpOh1Yya6sLDZp+70Gva0bwo/C4SGNWB66f3eZWhYCCD97BSiTn7YggZ1CWQdyLjZpU9liKLTdC9M7buw9LPM4Cvrb25FW1gC16fBKVMQA6GoC6gEU= Received: by 10.142.173.14 with SMTP id v14mr1537089wfe.74.1211721462343; Sun, 25 May 2008 06:17:42 -0700 (PDT) Received: by 10.142.203.16 with HTTP; Sun, 25 May 2008 06:17:42 -0700 (PDT) Message-ID: Date: Sun, 25 May 2008 07:17:42 -0600 From: "Andrew Robinson" To: "MyFaces Discussion" Subject: Re: How to PPR-enable a facelet component? In-Reply-To: <4837C76B.1020007@eekboom.com> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <4837450A.9090906@eekboom.com> <4837462F.4040407@gmail.com> <48374A21.2060702@eekboom.com> <48374CA8.5030109@gmail.com> <4837C76B.1020007@eekboom.com> X-Virus-Checked: Checked by ClamAV on apache.org Just a quick reply from my iPod: 1) don't use a4j if you don't have to. Mixing external Ajax code with Trinidad is not recommended. 2) Use tr:panelGroupLayout to get PPR to work with as little HTML possible (although it uses a SPAN instead of a DIV for the default layout which sucks. You need to have some HTML to be able to PPR as PPR is just that -- partial page refreshing/ replacing. You can acually PPR any component as long as you know the client ID. It does not work on plain HTML tags though (verbatim or in-line facelets). If you don't want to use tr:panelGroupLayout the I would suggest making a custom component that renders the root HTML tag that you desire. As for Trinidad not being more declarative, I keep losing this battle. There are a few people who would prefer to not support 3rd party components at all and prefer that people use 100% trinidad. Others don't want new PPR components, they feel that only renderkit oriented components belong in Trinidad. I share neither of these views. Trinidad is not just a renderkit, it is a full framework IMO. If you agree with that as well, users need to ask for this functionality as only popular opinion can win this debate. -Andrew On 5/24/08, Stephen Friedrich wrote: > I really don't meant my statement to be personal at all. > It was more a general comment on Trinidad. > I apologize if it sounded differently. > > I hesitate a lot to bring A4J into my app, because my experience is that > each new technology in the stack is good for a couple of days of > configuration > and debugging nightmare. > > There was an article about how to enable PPR for custom (non-JSF) > components. > I'll try and do that with a component that simply renders a
. > > Thanks for your comments. > > Scott O'Bryan wrote: >> No need to get personal, I'm just telling you about what philosophy >> Trinidad has origionally taken. The idea does have some technical >> merit. It is very difficult to optimize/ppr content you don't own. >> ESPECIALLY if such content is JSF content. Trinidad didn't want to have >> to tackles the issues involved technically. >> It's not arrogance, simply that Trinidad wasn't written to be an AJAX >> enablement engine as much as a rich-type renderkit which extends JSF to >> do a complete GUI. >> >> I'm also not saying that your ideas don't have merit, and your certainly >> welcome to argue them on the community forums here, but try to be more >> constructive. >> >> My suggestion about A4J was just that. A4J does things on the PPR front >> differently then Trinidad does. It does this specifically because it IS >> an AJAX enablement engine, but not as much a application development >> renderkit like Trinidad is. Each architecture has merit and I'm not >> sure there is a one-size-fits-all scenario to this issue. >> >> BTW- putting content inside of a panel that has a partial trigger will >> get the behavior you want in facelets I believe. I haven't tried it >> myself, and it doesn't work with JSP's so long as you rely on JSTL, but >> I think facelets might actually fix that issue. >> >> Scott >> >> Stephen Friedrich wrote: >>> Too bad - and a strange (or arrogant) philosophy. >>> If there aren't any technical issues I haven't yet understood, I think >>> such a feature/tag should be included. >>> Why be so inflexible and malignant considering other technologies? >>> >>> Trinidad: All your html are belong to us? >>> >>> That might perhaps have been an Oracle strategy, but it doesn't suite an >>> Open Source project that well. >>> >>> My app does indeed use mostly Trinidad components. >>> PPR is a great feature and time saver. >>> I would not want to do without panelFormLayout. >>> Lighweight dialogs are desperately needed. >>> >>> There are just a few cases where a couple of lines of html plus >>> some css saves me from creating custom renderers or jsf components >>> (like a highly creative process train (think "advertising agency >>> employee with a faible for photoshop")). >>> >>> >>> Scott O'Bryan wrote: >>>> The reason is one of philosophy. And there has been some debate over >>>> this on the dev lists. I think Andrew has something which may be >>>> thrown into the sandbox.. however.. >>>> >>>> Trindiad renderkit works off the assumption that most of your content >>>> will be trinidad content. As such, it has PPR built in to each >>>> component and the famework necessary to support that PPR. Components >>>> external to Trinidad are assumed to be able to do their own PPR and >>>> that is where the philosophy comes in. Trinidad does not try to PPR >>>> the world, it only tries to ppr itself so it can better optimize. >>>> >>>> Some renderkits (like A4J) take the opposite approach and basically >>>> look at adding AJAX functionality to existing non-ppr enabled >>>> renterkits/content. Maybe you would be better off using a technology >>>> like that instead of Trinidad for your application. >>>> >>>> Scott >>>> >>>> Stephen Friedrich wrote: >>>>> I have some very specific components in my project, made using facelets >>>>> and containing mostly pure html (with some ui:repeat thrown in). >>>>> >>>>> How am I supposed to make such a component the target of PPR? >>>>> >>>>> Why isn't there a simple non-rendering trinidad component for that >>>>> purpose, e.g. >>>>> >>>>> >>>>> ... html ... >>>>> >>>>> >>>>> That component could also have a rendered attribute which is nicer than >>>>> using (and avoids confusing facelets). >>>>> >>>>> Is there any other component that I could misuse for that? >>>>> >>>> >>> >> > >