001: /*
002: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
003: *
004: * "The contents of this file are subject to the Mozilla Public License
005: * Version 1.1 (the "License"); you may not use this file except in
006: * compliance with the License. You may obtain a copy of the License at
007: * http://www.mozilla.org/MPL/
008: *
009: * Software distributed under the License is distributed on an "AS IS"
010: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
011: * License for the specific language governing rights and limitations under
012: * the License.
013: *
014: * The Original Code is ICEfaces 1.5 open source software code, released
015: * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
016: * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
017: * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
018: *
019: * Contributor(s): _____________________.
020: *
021: * Alternatively, the contents of this file may be used under the terms of
022: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
023: * License), in which case the provisions of the LGPL License are
024: * applicable instead of those above. If you wish to allow use of your
025: * version of this file only under the terms of the LGPL License and not to
026: * allow others to use your version of this file under the MPL, indicate
027: * your decision by deleting the provisions above and replace them with
028: * the notice and other provisions required by the LGPL License. If you do
029: * not delete the provisions above, a recipient may use your version of
030: * this file under either the MPL or the LGPL License."
031: *
032: */
033:
034: package com.icesoft.faces.renderkit.dom_html_basic;
035:
036: import com.icesoft.faces.context.DOMContext;
037: import org.w3c.dom.Element;
038:
039: import javax.faces.component.UICommand;
040: import javax.faces.component.UIComponent;
041: import javax.faces.component.UIOutput;
042: import javax.faces.context.FacesContext;
043: import java.io.IOException;
044:
045: public class LinkRenderer extends DomBasicRenderer {
046:
047: protected CommandLinkRenderer commandLinkRendererDelegate;
048: protected OutputLinkRenderer outputLinkRendererDelegate;
049:
050: public LinkRenderer() {
051: commandLinkRendererDelegate = new CommandLinkRenderer();
052: outputLinkRendererDelegate = new OutputLinkRenderer();
053: }
054:
055: public void decode(FacesContext facesContext,
056: UIComponent uiComponent) {
057: boolean isCommandLink = uiComponent instanceof UICommand;
058: boolean isOutputLink = uiComponent instanceof UIOutput;
059: if (isCommandLink) {
060: commandLinkRendererDelegate.decode(facesContext,
061: uiComponent);
062: }
063: if (isOutputLink) {
064: outputLinkRendererDelegate
065: .decode(facesContext, uiComponent);
066: }
067: return;
068: }
069:
070: public void encodeBegin(FacesContext facesContext,
071: UIComponent uiComponent) throws IOException {
072: boolean isCommandLink = uiComponent instanceof UICommand;
073: boolean isOutputLink = uiComponent instanceof UIOutput;
074: if (isCommandLink) {
075: commandLinkRendererDelegate.encodeBegin(facesContext,
076: uiComponent);
077: }
078: if (isOutputLink) {
079: outputLinkRendererDelegate.encodeBegin(facesContext,
080: uiComponent);
081: }
082:
083: return;
084: }
085:
086: public void encodeChildren(FacesContext facesContext,
087: UIComponent uiComponent) throws IOException {
088: boolean isCommandLink = uiComponent instanceof UICommand;
089: boolean isOutputLink = uiComponent instanceof UIOutput;
090: if (isCommandLink) {
091: commandLinkRendererDelegate.encodeChildren(facesContext,
092: uiComponent);
093: }
094: if (isOutputLink) {
095: outputLinkRendererDelegate.encodeChildren(facesContext,
096: uiComponent);
097: }
098: return;
099: }
100:
101: public void encodeEnd(FacesContext facesContext,
102: UIComponent uiComponent) throws IOException {
103: boolean isCommandLink = uiComponent instanceof UICommand;
104: boolean isOutputLink = uiComponent instanceof UIOutput;
105: if (isCommandLink) {
106: commandLinkRendererDelegate.encodeEnd(facesContext,
107: uiComponent);
108: }
109: if (isOutputLink) {
110: outputLinkRendererDelegate.encodeEnd(facesContext,
111: uiComponent);
112: }
113: DOMContext domContext = DOMContext.attachDOMContext(
114: facesContext, uiComponent);
115: Element root = (Element) domContext.getRootNode();
116: return;
117: }
118:
119: }
|