001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package com.sun.rave.web.ui.component;
042:
043: import java.io.IOException;
044: import javax.faces.component.UIComponent;
045: import javax.faces.context.FacesContext;
046: import javax.faces.el.MethodBinding;
047: import javax.faces.el.ValueBinding;
048:
049: /**
050: * <span style="text-decoration: line-through; "></span><span
051: * >Use the <code>ui:anchor</code> tag
052: * to create HTML anchors in the rendered HTML page. You can then use <code>ui:hyperlink</code>
053: * tags that jump to the locations of the anchors in the page.</span><br
054: * >
055: * <h3 >HTML Elements and Layout</h3>
056: * <span style="text-decoration: line-through; "></span><span
057: * >The <code>ui:anchor</code> tag
058: * creates an <code><a></code> element in the rendered HTML page.
059: * The name and id attributes of the <code><a></code> element are
060: * both set to the value of the id attribute specified with the <code>ui:anchor</code>
061: * tag. The name attibute is included to maintain compatibility with older
062: * browsers.</span><br >
063: * <h3 >Client Side Javascript Functions</h3>
064: * <span >None. </span><br
065: * >
066: * <h3 >Examples</h3>
067: * <h4 >Example 1: Create an anchor</h4>
068: * <code ><ui:anchor id="anchor1" />
069: * <br>
070: * <br>
071: * </code><span >This generates an anchor,
072: * with id and name set to the same
073: * value. </span><br >
074: * <span > </span><br
075: * >
076: * <code ><a id="anchor1" name="anchor1"
077: * />
078: * </code><br >
079: * <span style="font-style: italic; "><span
080: * style="text-decoration: line-through;"></span></span>
081: * <h4 >Example 2: Create a hyperlink to
082: * that will go to the anchor above<br>
083: * </h4>
084: * <code ><ui:hyperlink id="gotoAnchor1"
085: * url="#anchor1" /><br>
086: * </code>
087: * <h4 >Example 3: Create a <span
088: * style="text-decoration: line-through;"></span>context <span
089: * style="text-decoration: line-through;"></span> relative hyperlink to
090: * go to
091: * the anchor
092: * in <span style="text-decoration: line-through;"></span>Example 1</h4>
093: * <code ><ui:hyperlink id="gotoAnchor1"
094: * url="/faces/hyperlink.jsp#anchor1" /><br>
095: * </code><span ><br>
096: * Note: In the <code>url</code>
097: * attribute, you must specify a path that maps to the correct servlet.
098: * However, you do not need the context. In this example, the </span><code
099: * >/faces</code> <span
100: * > part of the path maps to the servlet
101: * through the JSF FacesServlet as defined in the web.xml.</span>
102: * <p>Auto-generated component class.
103: * Do <strong>NOT</strong> modify; all changes
104: * <strong>will</strong> be lost!</p>
105: */
106:
107: public abstract class AnchorBase extends
108: javax.faces.component.UIComponentBase {
109:
110: /**
111: * <p>Construct a new <code>AnchorBase</code>.</p>
112: */
113: public AnchorBase() {
114: super ();
115: setRendererType("com.sun.rave.web.ui.Anchor");
116: }
117:
118: /**
119: * <p>Return the identifier of the component family to which this
120: * component belongs. This identifier, in conjunction with the value
121: * of the <code>rendererType</code> property, may be used to select
122: * the appropriate {@link Renderer} for this component instance.</p>
123: */
124: public String getFamily() {
125: return "com.sun.rave.web.ui.Anchor";
126: }
127:
128: // style
129: private String style = null;
130:
131: /**
132: * <p>CSS style(s) to be applied when this component is rendered.</p>
133: */
134: public String getStyle() {
135: if (this .style != null) {
136: return this .style;
137: }
138: ValueBinding _vb = getValueBinding("style");
139: if (_vb != null) {
140: return (String) _vb.getValue(getFacesContext());
141: }
142: return null;
143: }
144:
145: /**
146: * <p>CSS style(s) to be applied when this component is rendered.</p>
147: * @see #getStyle()
148: */
149: public void setStyle(String style) {
150: this .style = style;
151: }
152:
153: // styleClass
154: private String styleClass = null;
155:
156: /**
157: * <p>CSS style class(es) to be applied when this component is rendered.</p>
158: */
159: public String getStyleClass() {
160: if (this .styleClass != null) {
161: return this .styleClass;
162: }
163: ValueBinding _vb = getValueBinding("styleClass");
164: if (_vb != null) {
165: return (String) _vb.getValue(getFacesContext());
166: }
167: return null;
168: }
169:
170: /**
171: * <p>CSS style class(es) to be applied when this component is rendered.</p>
172: * @see #getStyleClass()
173: */
174: public void setStyleClass(String styleClass) {
175: this .styleClass = styleClass;
176: }
177:
178: /**
179: * <p>Restore the state of this component.</p>
180: */
181: public void restoreState(FacesContext _context, Object _state) {
182: Object _values[] = (Object[]) _state;
183: super .restoreState(_context, _values[0]);
184: this .style = (String) _values[1];
185: this .styleClass = (String) _values[2];
186: }
187:
188: /**
189: * <p>Save the state of this component.</p>
190: */
191: public Object saveState(FacesContext _context) {
192: Object _values[] = new Object[3];
193: _values[0] = super .saveState(_context);
194: _values[1] = this .style;
195: _values[2] = this.styleClass;
196: return _values;
197: }
198:
199: }
|