Thanks a lot guys! -----Original Message----- From: Nick Westgate [mailto:[EMAIL PROTECTED] Sent: 05 September 2007 10:37 To: Tapestry users Subject: Re: [T5] PageLink cannot be disabled?
Put this in your components directory and it will override Tapestry's PageLink component unless your classes import the corelib type. (I'll submit a JIRA.) Cheers, Nick. // Copyright 2007 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package yourapp.components; import java.util.List; import org.apache.tapestry.ClientElement; import org.apache.tapestry.ComponentResources; import org.apache.tapestry.Link; import org.apache.tapestry.MarkupWriter; import org.apache.tapestry.PageRenderSupport; import org.apache.tapestry.annotations.Environmental; import org.apache.tapestry.annotations.Inject; import org.apache.tapestry.annotations.Parameter; import org.apache.tapestry.annotations.SupportsInformalParameters; /** * Generates a render request link to some other page in the application. If an activation * context is supplied (as the context parameter), then the context values will be encoded into * the URL. If no context is supplied, then the target page itself will supply the context via a * passivate event. * <p> * Pages are not required to have an activation context. When a page does have an activation * context, the value typically represents the identity of some object displayed or otherwise * manipulated by the page. */ @SupportsInformalParameters public class PageLink implements ClientElement { /** The logical name of the page to link to. */ @Parameter(required = true, defaultPrefix = "literal") private String _page; @Inject private ComponentResources _resources; @Environmental private PageRenderSupport _support; /** * If true, then then no link element is rendered (and no informal parameters as well). The * body is, however, still rendered. */ @Parameter("false") private boolean _disabled; private String _clientId; /** * If provided, this is the activation context for the target page (the information will be * encoded into the URL). If not provided, then the target page will provide its own * activation context. */ @Parameter private List _context; private final Object[] _emptyContext = new Object[0]; void beginRender(MarkupWriter writer) { if (_disabled) return; _clientId = _support.allocateClientId(_resources.getId()); Object[] activationContext = _context != null ? _context.toArray() : _emptyContext; Link link = _resources.createPageLink(_page, _resources.isBound("context"), activationContext); writer.element("a", "href", link, "id", _clientId); _resources.renderInformalParameters(writer); } void afterRender(MarkupWriter writer) { if (_disabled) return; writer.end(); // <a> } public String getClientId() { return _clientId; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] ------------------------------------------------------------------------------ CONFIDENTIALITY NOTICE: If you have received this email in error, please immediately notify the sender by e-mail at the address shown. This email transmission may contain confidential information. This information is intended only for the use of the individual(s) or entity to whom it is intended even if addressed incorrectly. Please delete it from your files if you are not the intended recipient. Thank you for your compliance. Copyright 2007 CIGNA ============================================================================== --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
