/*
* xulfaces : bring XUL power to Java
*
* Copyright (C) 2005 Olivier SCHMITT
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
package org.xulfaces.component;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.component.ActionSource;
import javax.faces.component.UIComponent;
import javax.faces.component.UIData;
import javax.faces.context.FacesContext;
import javax.faces.el.MethodBinding;
import javax.faces.el.ValueBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import javax.faces.event.FacesEvent;
import javax.faces.event.PhaseId;
import org.xulfaces.MultiActionSource;
import org.xulfaces.SmoothlyUpdateable;
import org.xulfaces.annotation.faces.ATTRIBUTE;
import org.xulfaces.annotation.util.AHelper;
import org.xulfaces.renderkit.KitConstants;
public abstract class XULData extends UIData implements SmoothlyUpdateable,MultiActionSource {
/**
* <p>The immediate flag.</p>
*/
private boolean immediate = false;
/**
* <p>The {@link MethodBinding} that, when invoked, yields the
* literal outcome value.</p>
*/
private MethodBinding action = null;
/**
* <p>Hold the various method bindings set.</p>
*/
private Map methodBindings;
/**
* <p>The action listener {@link MethodBinding}.</p>
*/
private MethodBinding actionListener = null;
/**
* </p>Collect annotations for rendering purpose : contains {Field,ATTRIBUTE}</p>
*/
private List annotatedAttributes = AHelper.getATTRIBUTEsForComponent(getClass());
@ATTRIBUTE(description = "The align attribute specifies how child elements of the box are aligned, when the size of the box is larger than the total size of the children.(start,center,end,baseline,stretch)")
private String align;
@ATTRIBUTE(description = "If true, events are passed to children of the element. Otherwise, events are passed to the element only.")
private Boolean allowevents;
@ATTRIBUTE(description = "Valid on any element that has a datasources attribute. When multiple datasources are used, one may override an assertion from another. This attribute, if true, which is the default, allows a datasource to negate an earlier assertion.")
private Boolean allownegativeassertions;
@ATTRIBUTE(description = "Valid on any element that has a datasources attribute. Because RDF holds a graph of resources, it is possible for there to be several pointers to the same node. If this attribute is true, which is the default, duplicate references are skipped. If false, duplicate references will appear.")
private String coalesceduplicatearcs;
@ATTRIBUTE(description = "If true, then the element is collapsed and does not appear. It is equivalent to setting the CSS visibility property to 'collapse'.")
private Boolean collapsed;
@ATTRIBUTE(description = "Set to true if the element is to act as a container which can have child elements. This would be used for folders. This will be set by the template builder as needed.")
private Boolean container;
@ATTRIBUTE(description = "This attribute specifies RDF properties that indicate that a resource is a container. ")
private String containment;
@ATTRIBUTE(description = "The id of the popup element that should appear when the user context-clicks on the element")
private String context;
@ATTRIBUTE(description = "Alternate name for the context attribute, but also has a corresponding script property 'contextmenu'.")
private String contextmenu;
@ATTRIBUTE(description = "A space-separated list of datasources that an element's template will use for content generation.")
private String datasources;
@ATTRIBUTE(description = "The direction in which the child elements of the element are placed.")
private String dir;
@ATTRIBUTE(description = "true, false or an EL expression returning a boolean value")
private Boolean disabled;
@ATTRIBUTE(description = "Set to true if the element is a container that contains no children. This will be set by the template builder as needed.")
private Boolean empty;
@ATTRIBUTE(description = "This attribute can be used to make the children of the element equal in size.")
private String equalsize;
@ATTRIBUTE(description = "A set of flags used for miscellaneous purposes. Two flags are defined, which may be the value of this attribute.")
private String flags;
@ATTRIBUTE(description = "Control flexibility.")
private Integer flex;
@ATTRIBUTE(description = "The height of the element in pixels. It is recommended that the CSS height property be used instead.")
private Integer height;
@ATTRIBUTE(description = "The height of the element in pixels. It is recommended that the CSS height property be used instead.")
private Boolean hidden;
@ATTRIBUTE(description = "When an element is in an overlay, the insertafter attribute specifies the id of the element in the base window that the element should appear after.")
private String insertafter;
@ATTRIBUTE(description = "When an element is in an overlay, the insertbefore attribute specifies the id of the element in the base window that the element should appear before.")
private String insertbefore;
@ATTRIBUTE(description = "For elements placed within a stack, specifies the position of the left edge of the element.")
private Integer left;
@ATTRIBUTE(description = "The maximum height of the element. This corresponds to the max-height CSS property.")
private Integer maxheight;
@ATTRIBUTE(description = "The maximum width of the element. This corresponds to the max-width CSS property.")
private Integer maxwidth;
@ATTRIBUTE(description = "Alternate name for the popup attribute, but also has a corresponding script property 'menu'.")
private String menu;
@ATTRIBUTE(description = "The minimum height of the element. This corresponds to the min-height CSS property.")
private Integer minheight;
@ATTRIBUTE(description = "The minimum width of the element. This corresponds to the min-width CSS property.")
private Integer minwidth;
@ATTRIBUTE(description = "Determines whether mouse events are passed through each element of the element until one responds to it.")
private String mousethrough;
@ATTRIBUTE(description = "Set to an id of a broadcaster element that is being observed by the element. If an attribute changes in the broadcaster it is also changed in the observer.")
private String observes;
@ATTRIBUTE(supportsMethodBinding=true,description = "The opposite of the focus event, the blur event is passed just as an element loses the focus.")
private String onblur;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event is sent when a mouse button is pressed and released. You can determine which mouse button was clicked by retrieving the button property of the event object. This event is also sent when the user double-clicks with the mouse. The detail property specifies how many clicks occured. You can also check for triple-clicks in a similar manner. For buttons and menus, you should use oncommand instead.")
private String onclick;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event handler is called when an element is activated. How it is activated varies for each element and in many cases, there are several ways to activate an element. For example, a button can be activated by clicking on it with the mouse or by pressing ENTER while it has the focus. Menus can be activated by selecting them with the mouse or by pressing a shortcut key. You should always use the oncommand event instead of onclick because it will be called in all of the needed cases.")
private String oncommand;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event occurs when a command update occurs. You would use this to update the disabled status of items.")
private String oncommandupdate;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event is sent to an element when the user requests to open the context menu for the element. The action to do this varies by platform, but it will typically be a right click. This handler is usually used to dynamically set the commands on a menu when the user requests to display it, or you can use onpopupshowing event. Returning false from this event handler prevents the popup from appearing.")
private String oncontextmenu;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event is like the click event except it is only sent when the user double clicks with the mouse. This is an alternative to checking the detail property in the click event.")
private String ondblclick;
@ATTRIBUTE(description = "This event is sent when the user releases the mouse button to drop an object being dragged. The element, if it accepts the drop, should respond in some manner such inserting the dragged object into itself.")
private String ondragdrop;
@ATTRIBUTE(description = "The dragenter event is sent when the mouse pointer first moves over an element during a drag. It is similar to the mouseover event but occurs while dragging.")
private String ondragenter;
@ATTRIBUTE(description = "This event is sent when the mouse pointer moves away from an element during a drag. It is also called after a drop on an element. It is similar to the mouseout event but occurs during a drag.")
private String ondragexit;
@ATTRIBUTE(description = "This event is sent when the user starts dragging the element, usually by holding down the mouse button and moving the mouse.")
private String ondraggesture;
@ATTRIBUTE(description = "Related to the mousemove event, this event is sent while something is being dragged over an element. The handler should indicate whether the object being dragged can be dropped.")
private String ondragover;
@ATTRIBUTE(supportsMethodBinding=true,description = "The focus event is sent to an element when it receives the focus. Once an element has the focus, keyboard events are sent to it. The focus can be changed by clicking on an element or by pressing TAB to switch to the next element is sequence.")
private String onfocus;
@ATTRIBUTE(supportsMethodBinding=true,description = "The keydown event is sent to an element that has the focus and a key is pressed but not released.")
private String onkeydown;
@ATTRIBUTE(supportsMethodBinding=true,description = "The keypress event is sent to an element that has the focus and a key is pressed and released. When the user presses a key, the keydown event is first sent, followed by the keypress event and then the keyup event. In a textbox, a user normally can hold down a key to repeat a character In this case, multiple sets of key events are sent as if the user rapidly pressed the same key repeatedly.")
private String onkeypress;
@ATTRIBUTE(supportsMethodBinding=true,description = "The keyup event is sent to an element that has the focus and a key is released.")
private String onkeyup;
@ATTRIBUTE(description = "This event is sent when the mouse is pressed on an element but not released.")
private String onmousedown;
@ATTRIBUTE(description = "This event is sent repeatedly as the mouse is moved over an element.")
private String onmousemove;
@ATTRIBUTE(description = "This mouseout event is sent to an element when the user moves the mouse outside the element. This event is the reverse of onmouseover.")
private String onmouseout;
@ATTRIBUTE(description = "This event is sent to an element when the mouse first moves over an element. You can use this event to provide feedback to the user.")
private String onmouseover;
@ATTRIBUTE(description = "This event is sent when the mouse is released on an element.")
private String onmouseup;
@ATTRIBUTE(supportsMethodBinding=true,description = "This event is sent to an element when there becomes enough space to display it at full size. This applies to boxes and other layout elements.")
private String onunderflow;
@ATTRIBUTE(description = "An integer which specifies the position of the element within its parent. ")
private String ordinal;
@ATTRIBUTE(description = "Used to specify whether the children of the element are oriented horizontally or vertically.(horizontal,vertical)")
private String orient;
@ATTRIBUTE(description = "The pack attribute specifies how child elements of the box are aligned, when the size of the box is larger than the total size of the children.(start,center,end)")
private String pack;
@ATTRIBUTE(description = "A space separated list of attributes that are maintained when the window is closed.")
private String persist;
@ATTRIBUTE(description = "Should be set to the value of the id of the popup element that should appear when the user clicks on the element.")
private String popup;
@ATTRIBUTE(description = "When an element is in an overlay, the position is an index where the child is inserted.")
private String position;
@ATTRIBUTE(description = "If true, the element may be used as one that modifies a preference in a prefwindow.")
private String preferenceeditable;
@ATTRIBUTE(description = "For template generated elements, this attribute is used to specify the root RDF node where content generation begins. ")
private String ref;
@ATTRIBUTE(description = "When placed on an element in an overlay, it indicates that the element in the base file should be removed from the window.")
private String removeelement;
@ATTRIBUTE(description = "Set this attribute to set the direction the column is sorted. The user may change the sort direction by clicking the column headers (ascending,descending, natural).")
private String sortDirection;
@ATTRIBUTE(description = " For template-generated content, this specifies the sort key, if you would like the content to be sorted.")
private String sortResource;
@ATTRIBUTE(description = "A secondary key for sorted content.")
private String sortResource2;
@ATTRIBUTE(description = "Used to set the text that appears on the status bar when the user moves the mouse over the element. ")
private String statustext;
@ATTRIBUTE(description = "The style.")
private String style;
@ATTRIBUTE(description = "The style class.")
private String styleClass;
@ATTRIBUTE(description = "For template generated elements, this attribute may optionally be placed on the root node (the element with the datasources attribute) to refer to a template that exists elsewhere in the XUL code.")
private String template;
@ATTRIBUTE(description = "Should be set to the value of the id of the popup element that should be used as a tooltip window when the mouse hovers over the element for a moment.")
private String tooltip;
@ATTRIBUTE(description = "Used to set the text which appears in the tooltip when the user moves the mouse over the element.")
private String tooltiptext;
@ATTRIBUTE(description = "For elements placed within a stack, specifies the position of the top edge of the element.")
private Integer top;
@ATTRIBUTE(automateRendering=false,description = "updateSmoothly to true adds a UpdateZoneCommand to the bridge for the associated component. other values are false or an EL expression returning a boolean value")
private Boolean updateSmoothly;
@ATTRIBUTE(description = "For template-generated content, the attribute should be placed on the element where content generation should begin.")
private String uri;
@ATTRIBUTE(name="waitcursor",description = "Set this attribute to true to have the cursor switch to a waiting cursor while the mouse is hovering over it.")
private String waitcursor;
@ATTRIBUTE(description = "The width of the element in pixels. It is recommended that the CSS width property be used instead.")
private Integer width;
/**
* <p>Get annotated attributes infos for rendering purpose.</p>
* @return List of {Field,ATTRIBUTE}
*/
public List getAnnotatedAttributes(){
return this.annotatedAttributes;
}
public String getFamily() {
return KitConstants.FAMILY;
}
public String getRenderKitId() {
return KitConstants.RENDERKIT_ID;
}
public boolean needsUpdate() {
Boolean booleanObject = getUpdateSmoothly();
if(booleanObject == null){
return false;
}
return booleanObject;
}
protected boolean mustEncode(FacesContext facesContext){
boolean encode = true;
if(isAJAXRequest(facesContext)){
UIComponent parent = getParent();
Boolean parentUpdateSmoothly = (Boolean) parent.getAttributes().get("updateSmoothly");
Boolean updateSmoothly = (Boolean) getAttributes().get("updateSmoothly");
if(updateSmoothly != null){
encode = updateSmoothly.booleanValue();
}
else {
if(parentUpdateSmoothly!=null){
encode = parentUpdateSmoothly.booleanValue();
getAttributes().put("updateSmoothly",parentUpdateSmoothly);
}
else {
encode = false;
}
}
}
return encode;
}
protected boolean isAJAXRequest(FacesContext facesContext){
return facesContext.getExternalContext().getRequestParameterMap().containsKey(KitConstants.XFBRIDGE_REQUEST);
}
@Override
public void encodeBegin(FacesContext context) throws IOException {
boolean encode = mustEncode(context);
if(encode){
super.encodeBegin(context);
}
}
@Override
public void encodeEnd(FacesContext context) throws IOException {
boolean encode = mustEncode(context);
if(encode){
super.encodeEnd(context);
}
}
// Handle method bindings features //
/**
* <p>Get method binding for name.</p>
* @param Name of the attribute
* @return The method binding for attribute or <code>null</code>.
*/
public MethodBinding getMethodBinding(String name) {
if (name == null) {
throw new NullPointerException();
}
if (methodBindings == null) {
return (null);
} else {
return ((MethodBinding) methodBindings.get(name));
}
}
/**
* <p>Put the method binding for attribute name in method bindings map.</p>
* <p><code>null</code>,id and parent attribute names are forbidden.</p>
*
* @param name The attribute name
* @param binding The method binding
* @throws NullPointerException if name is <code>null</code>
* @throws IllegalArgumentException if name is id or parent
*/
public void setMethodBinding(String name, MethodBinding binding) {
if (name == null) {
throw new NullPointerException();
} else if ("id".equals(name) || "parent".equals(name)) {
throw new IllegalArgumentException();
}
if (binding != null) {
if (methodBindings == null) {
methodBindings = new HashMap();
}
methodBindings.put(name, binding);
} else {
if (methodBindings != null) {
methodBindings.remove(name);
if (methodBindings.size() == 0) {
methodBindings = null;
}
}
}
}
/**
* <p>Add a new {@link ActionListener} to the set of listeners interested
* in being notified when {@link ActionEvent}s occur.</p>
*
* @param listener The {@link ActionListener} to be added
*
* @exception NullPointerException if <code>listener</code>
* is <code>null</code>
*/
public void addActionListener(ActionListener listener) {
addFacesListener(listener);
}
/**
* <p>Return the set of registered {@link ActionListener}s for this
* {@link ActionSource} instance. If there are no registered listeners,
* a zero-length array is returned.</p>
*/
public ActionListener[] getActionListeners() {
ActionListener al[] = (ActionListener [])
getFacesListeners(ActionListener.class);
return (al);
}
/**
* <p>Remove an existing {@link ActionListener} (if any) from the set of
* listeners interested in being notified when {@link ActionEvent}s
* occur.</p>
*
* @param listener The {@link ActionListener} to be removed
*
* @exception NullPointerException if <code>listener</code>
* is <code>null</code>
*/
public void removeActionListener(ActionListener listener) {
removeFacesListener(listener);
}
/**
* <p>Return the {@link MethodBinding}pointing at the application
* action to be invoked, if this {@link UIComponent} is activated by
* the user, during the <em>Apply Request Values</em> or <em>Invoke
* Application</em> phase of the request processing lifecycle,
* depending on the value of the <code>immediate</code>
* property.</p>
*/
public MethodBinding getAction() {
return this.action;
}
/**
* <p>Return a flag indicating that the default {@link ActionListener}
* provided by the JavaServer Faces implementation should be executed
* immediately (that is, during <em>Apply Request Values</em> phase
* of the request processing lifecycle), rather than waiting until the
* <em>Invoke Application</em> phase. The default value for this
* property must be <code>false</code>.</p>
*/
public boolean isImmediate() {
return this.immediate;
}
/**
* <p>Set the {@link MethodBinding} pointing at the appication
* action to be invoked, if this {@link UIComponent} is activated by
* the user, during the <em>Apply Request Values</em> or <em>Invoke
* Application</em> phase of the request processing lifecycle,
* depending on the value of the <code>immediate</code>
* property.</p>
*
* <p>Any method referenced by such an expression must be public, with
* a return type of <code>String</code>, and accept no parameters.</p>
*
* @param action The new MethodBinding expression
*/
public void setAction(MethodBinding action) {
this.action = action;
}
/**
* <p>Set the {@link MethodBinding} pointing at an action listener
* method to be invoked, if this {@link UIComponent} is activated by
* the user, during the <em>Apply Request Values</em> or <em>Invoke
* Application</em> phase of the request processing lifecycle,
* depending upon the value of the <code>immmediate</code>
* property.</p>
*
* <p>Any method referenced by such an expression must be public, with
* a return type of <code>void</code>, and accept a single parameter of
* type <code>ActionEvent</code>.</p>
*
* @param actionListener The new method binding expression
*/
public void setActionListener(MethodBinding actionListener) {
this.actionListener = actionListener;
}
/**
* <p>Return the {@link MethodBinding} pointing at an action
* listener method to be invoked, if this {@link UIComponent} is
* activated by the user, during the <em>Apply Request Values</em>
* or <em>Invoke Application</em> phase of the request processing
* lifecycle, depending upon the value of the <code>immediate</code>
* property.</p>
*/
public MethodBinding getActionListener() {
return this.actionListener;
}
/**
* <p>Set the "immediate execution" flag for this {@link UIComponent}.</p>
*
* @param immediate The new immediate execution flag
*/
public void setImmediate(boolean immediate) {
this.immediate = immediate;
}
/**
* <p>Intercept <code>queueEvent</code> and, for {@link ActionEvent}s,
* mark the phaseId for the event to be
* <code>PhaseId.APPLY_REQUEST_VALUES</code> if the
* <code>immediate</code> flag is true,
* <code>PhaseId.INVOKE_APPLICATION</code> otherwise.</p>
*/
public void queueEvent(FacesEvent facesEvent) {
if (facesEvent instanceof ActionEvent) {
if (isImmediate()) {
facesEvent.setPhaseId(PhaseId.APPLY_REQUEST_VALUES);
} else {
facesEvent.setPhaseId(PhaseId.INVOKE_APPLICATION);
}
}
super.queueEvent(facesEvent);
}
/**
* <p>In addition to to the default {@link UIComponent#broadcast}
* processing, pass the {@link ActionEvent} being broadcast to the
* method referenced by <code>actionListener</code> (if any),
* and to the default {@link ActionListener} registered on the
* {@link javax.faces.application.Application}.</p>
*
* @param event {@link FacesEvent} to be broadcast
*
* @exception AbortProcessingException Signal the JavaServer Faces
* implementation that no further processing on the current event
* should be performed
* @exception IllegalArgumentException if the implementation class
* of this {@link FacesEvent} is not supported by this component
* @exception NullPointerException if <code>event</code> is
* <code>null</code>
*/
public void broadcast(FacesEvent event) throws AbortProcessingException {
// Perform standard superclass processing
super.broadcast(event);
if (event instanceof ActionEvent) {
// Invoke the default ActionListener
ActionListener listener =
getFacesContext().getApplication().getActionListener();
if (listener != null) {
listener.processAction((ActionEvent) event);
}
}
}
/////////////////////////////////////
// @StartGeneration
public java.lang.String getAlign(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("align");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.align;
}
return value;
}
public void setAlign(java.lang.String value){
this.align = value;
}
public java.lang.Boolean getAllowevents(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("allowevents");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.allowevents;
}
return value;
}
public void setAllowevents(java.lang.Boolean value){
this.allowevents = value;
}
public java.lang.Boolean getAllownegativeassertions(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("allownegativeassertions");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.allownegativeassertions;
}
return value;
}
public void setAllownegativeassertions(java.lang.Boolean value){
this.allownegativeassertions = value;
}
public java.lang.String getCoalesceduplicatearcs(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("coalesceduplicatearcs");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.coalesceduplicatearcs;
}
return value;
}
public void setCoalesceduplicatearcs(java.lang.String value){
this.coalesceduplicatearcs = value;
}
public java.lang.Boolean getCollapsed(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("collapsed");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.collapsed;
}
return value;
}
public void setCollapsed(java.lang.Boolean value){
this.collapsed = value;
}
public java.lang.Boolean getContainer(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("container");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.container;
}
return value;
}
public void setContainer(java.lang.Boolean value){
this.container = value;
}
public java.lang.String getContainment(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("containment");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.containment;
}
return value;
}
public void setContainment(java.lang.String value){
this.containment = value;
}
public java.lang.String getContext(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("context");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.context;
}
return value;
}
public void setContext(java.lang.String value){
this.context = value;
}
public java.lang.String getContextmenu(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("contextmenu");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.contextmenu;
}
return value;
}
public void setContextmenu(java.lang.String value){
this.contextmenu = value;
}
public java.lang.String getDatasources(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("datasources");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.datasources;
}
return value;
}
public void setDatasources(java.lang.String value){
this.datasources = value;
}
public java.lang.String getDir(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("dir");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.dir;
}
return value;
}
public void setDir(java.lang.String value){
this.dir = value;
}
public java.lang.Boolean getDisabled(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("disabled");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.disabled;
}
return value;
}
public void setDisabled(java.lang.Boolean value){
this.disabled = value;
}
public java.lang.Boolean getEmpty(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("empty");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.empty;
}
return value;
}
public void setEmpty(java.lang.Boolean value){
this.empty = value;
}
public java.lang.String getEqualsize(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("equalsize");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.equalsize;
}
return value;
}
public void setEqualsize(java.lang.String value){
this.equalsize = value;
}
public java.lang.String getFlags(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("flags");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.flags;
}
return value;
}
public void setFlags(java.lang.String value){
this.flags = value;
}
public java.lang.Integer getFlex(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("flex");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.flex;
}
return value;
}
public void setFlex(java.lang.Integer value){
this.flex = value;
}
public java.lang.Integer getHeight(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("height");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.height;
}
return value;
}
public void setHeight(java.lang.Integer value){
this.height = value;
}
public java.lang.Boolean getHidden(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("hidden");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.hidden;
}
return value;
}
public void setHidden(java.lang.Boolean value){
this.hidden = value;
}
public java.lang.String getInsertafter(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("insertafter");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.insertafter;
}
return value;
}
public void setInsertafter(java.lang.String value){
this.insertafter = value;
}
public java.lang.String getInsertbefore(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("insertbefore");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.insertbefore;
}
return value;
}
public void setInsertbefore(java.lang.String value){
this.insertbefore = value;
}
public java.lang.Integer getLeft(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("left");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.left;
}
return value;
}
public void setLeft(java.lang.Integer value){
this.left = value;
}
public java.lang.Integer getMaxheight(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("maxheight");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.maxheight;
}
return value;
}
public void setMaxheight(java.lang.Integer value){
this.maxheight = value;
}
public java.lang.Integer getMaxwidth(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("maxwidth");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.maxwidth;
}
return value;
}
public void setMaxwidth(java.lang.Integer value){
this.maxwidth = value;
}
public java.lang.String getMenu(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("menu");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.menu;
}
return value;
}
public void setMenu(java.lang.String value){
this.menu = value;
}
public java.lang.Integer getMinheight(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("minheight");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.minheight;
}
return value;
}
public void setMinheight(java.lang.Integer value){
this.minheight = value;
}
public java.lang.Integer getMinwidth(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("minwidth");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.minwidth;
}
return value;
}
public void setMinwidth(java.lang.Integer value){
this.minwidth = value;
}
public java.lang.String getMousethrough(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("mousethrough");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.mousethrough;
}
return value;
}
public void setMousethrough(java.lang.String value){
this.mousethrough = value;
}
public java.lang.String getObserves(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("observes");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.observes;
}
return value;
}
public void setObserves(java.lang.String value){
this.observes = value;
}
public java.lang.String getOnblur(){
return this.onblur;
}
public void setOnblur(java.lang.String value){
this.onblur = value;
}
public java.lang.String getOnclick(){
return this.onclick;
}
public void setOnclick(java.lang.String value){
this.onclick = value;
}
public java.lang.String getOncommand(){
return this.oncommand;
}
public void setOncommand(java.lang.String value){
this.oncommand = value;
}
public java.lang.String getOncommandupdate(){
return this.oncommandupdate;
}
public void setOncommandupdate(java.lang.String value){
this.oncommandupdate = value;
}
public java.lang.String getOncontextmenu(){
return this.oncontextmenu;
}
public void setOncontextmenu(java.lang.String value){
this.oncontextmenu = value;
}
public java.lang.String getOndblclick(){
return this.ondblclick;
}
public void setOndblclick(java.lang.String value){
this.ondblclick = value;
}
public java.lang.String getOndragdrop(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ondragdrop");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ondragdrop;
}
return value;
}
public void setOndragdrop(java.lang.String value){
this.ondragdrop = value;
}
public java.lang.String getOndragenter(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ondragenter");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ondragenter;
}
return value;
}
public void setOndragenter(java.lang.String value){
this.ondragenter = value;
}
public java.lang.String getOndragexit(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ondragexit");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ondragexit;
}
return value;
}
public void setOndragexit(java.lang.String value){
this.ondragexit = value;
}
public java.lang.String getOndraggesture(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ondraggesture");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ondraggesture;
}
return value;
}
public void setOndraggesture(java.lang.String value){
this.ondraggesture = value;
}
public java.lang.String getOndragover(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ondragover");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ondragover;
}
return value;
}
public void setOndragover(java.lang.String value){
this.ondragover = value;
}
public java.lang.String getOnfocus(){
return this.onfocus;
}
public void setOnfocus(java.lang.String value){
this.onfocus = value;
}
public java.lang.String getOnkeydown(){
return this.onkeydown;
}
public void setOnkeydown(java.lang.String value){
this.onkeydown = value;
}
public java.lang.String getOnkeypress(){
return this.onkeypress;
}
public void setOnkeypress(java.lang.String value){
this.onkeypress = value;
}
public java.lang.String getOnkeyup(){
return this.onkeyup;
}
public void setOnkeyup(java.lang.String value){
this.onkeyup = value;
}
public java.lang.String getOnmousedown(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("onmousedown");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.onmousedown;
}
return value;
}
public void setOnmousedown(java.lang.String value){
this.onmousedown = value;
}
public java.lang.String getOnmousemove(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("onmousemove");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.onmousemove;
}
return value;
}
public void setOnmousemove(java.lang.String value){
this.onmousemove = value;
}
public java.lang.String getOnmouseout(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("onmouseout");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.onmouseout;
}
return value;
}
public void setOnmouseout(java.lang.String value){
this.onmouseout = value;
}
public java.lang.String getOnmouseover(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("onmouseover");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.onmouseover;
}
return value;
}
public void setOnmouseover(java.lang.String value){
this.onmouseover = value;
}
public java.lang.String getOnmouseup(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("onmouseup");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.onmouseup;
}
return value;
}
public void setOnmouseup(java.lang.String value){
this.onmouseup = value;
}
public java.lang.String getOnunderflow(){
return this.onunderflow;
}
public void setOnunderflow(java.lang.String value){
this.onunderflow = value;
}
public java.lang.String getOrdinal(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ordinal");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ordinal;
}
return value;
}
public void setOrdinal(java.lang.String value){
this.ordinal = value;
}
public java.lang.String getOrient(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("orient");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.orient;
}
return value;
}
public void setOrient(java.lang.String value){
this.orient = value;
}
public java.lang.String getPack(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("pack");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.pack;
}
return value;
}
public void setPack(java.lang.String value){
this.pack = value;
}
public java.lang.String getPersist(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("persist");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.persist;
}
return value;
}
public void setPersist(java.lang.String value){
this.persist = value;
}
public java.lang.String getPopup(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("popup");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.popup;
}
return value;
}
public void setPopup(java.lang.String value){
this.popup = value;
}
public java.lang.String getPosition(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("position");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.position;
}
return value;
}
public void setPosition(java.lang.String value){
this.position = value;
}
public java.lang.String getPreferenceeditable(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("preferenceeditable");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.preferenceeditable;
}
return value;
}
public void setPreferenceeditable(java.lang.String value){
this.preferenceeditable = value;
}
public java.lang.String getRef(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("ref");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.ref;
}
return value;
}
public void setRef(java.lang.String value){
this.ref = value;
}
public java.lang.String getRemoveelement(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("removeelement");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.removeelement;
}
return value;
}
public void setRemoveelement(java.lang.String value){
this.removeelement = value;
}
public java.lang.String getSortDirection(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("sortDirection");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.sortDirection;
}
return value;
}
public void setSortDirection(java.lang.String value){
this.sortDirection = value;
}
public java.lang.String getSortResource(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("sortResource");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.sortResource;
}
return value;
}
public void setSortResource(java.lang.String value){
this.sortResource = value;
}
public java.lang.String getSortResource2(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("sortResource2");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.sortResource2;
}
return value;
}
public void setSortResource2(java.lang.String value){
this.sortResource2 = value;
}
public java.lang.String getStatustext(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("statustext");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.statustext;
}
return value;
}
public void setStatustext(java.lang.String value){
this.statustext = value;
}
public java.lang.String getStyle(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("style");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.style;
}
return value;
}
public void setStyle(java.lang.String value){
this.style = value;
}
public java.lang.String getStyleClass(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("styleClass");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.styleClass;
}
return value;
}
public void setStyleClass(java.lang.String value){
this.styleClass = value;
}
public java.lang.String getTemplate(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("template");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.template;
}
return value;
}
public void setTemplate(java.lang.String value){
this.template = value;
}
public java.lang.String getTooltip(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("tooltip");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.tooltip;
}
return value;
}
public void setTooltip(java.lang.String value){
this.tooltip = value;
}
public java.lang.String getTooltiptext(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("tooltiptext");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.tooltiptext;
}
return value;
}
public void setTooltiptext(java.lang.String value){
this.tooltiptext = value;
}
public java.lang.Integer getTop(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("top");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.top;
}
return value;
}
public void setTop(java.lang.Integer value){
this.top = value;
}
public java.lang.Boolean getUpdateSmoothly(){
java.lang.Boolean value = null;
ValueBinding vb = getValueBinding("updateSmoothly");
if (vb != null) {
return (java.lang.Boolean)(vb.getValue(getFacesContext()));
}
else {
value = this.updateSmoothly;
}
return value;
}
public void setUpdateSmoothly(java.lang.Boolean value){
this.updateSmoothly = value;
}
public java.lang.String getUri(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("uri");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.uri;
}
return value;
}
public void setUri(java.lang.String value){
this.uri = value;
}
public java.lang.String getWaitcursor(){
java.lang.String value = null;
ValueBinding vb = getValueBinding("waitcursor");
if (vb != null) {
return (java.lang.String)(vb.getValue(getFacesContext()));
}
else {
value = this.waitcursor;
}
return value;
}
public void setWaitcursor(java.lang.String value){
this.waitcursor = value;
}
public java.lang.Integer getWidth(){
java.lang.Integer value = null;
ValueBinding vb = getValueBinding("width");
if (vb != null) {
return (java.lang.Integer)(vb.getValue(getFacesContext()));
}
else {
value = this.width;
}
return value;
}
public void setWidth(java.lang.Integer value){
this.width = value;
}
public Object saveState(FacesContext context) {
Object values[] = new Object[74];
values[0] = super.saveState(context);
values[1] = this.align;
values[2] = this.allowevents;
values[3] = this.allownegativeassertions;
values[4] = this.coalesceduplicatearcs;
values[5] = this.collapsed;
values[6] = this.container;
values[7] = this.containment;
values[8] = this.context;
values[9] = this.contextmenu;
values[10] = this.datasources;
values[11] = this.dir;
values[12] = this.disabled;
values[13] = this.empty;
values[14] = this.equalsize;
values[15] = this.flags;
values[16] = this.flex;
values[17] = this.height;
values[18] = this.hidden;
values[19] = this.insertafter;
values[20] = this.insertbefore;
values[21] = this.left;
values[22] = this.maxheight;
values[23] = this.maxwidth;
values[24] = this.menu;
values[25] = this.minheight;
values[26] = this.minwidth;
values[27] = this.mousethrough;
values[28] = this.observes;
values[29] = this.onblur;
values[30] = this.onclick;
values[31] = this.oncommand;
values[32] = this.oncommandupdate;
values[33] = this.oncontextmenu;
values[34] = this.ondblclick;
values[35] = this.ondragdrop;
values[36] = this.ondragenter;
values[37] = this.ondragexit;
values[38] = this.ondraggesture;
values[39] = this.ondragover;
values[40] = this.onfocus;
values[41] = this.onkeydown;
values[42] = this.onkeypress;
values[43] = this.onkeyup;
values[44] = this.onmousedown;
values[45] = this.onmousemove;
values[46] = this.onmouseout;
values[47] = this.onmouseover;
values[48] = this.onmouseup;
values[49] = this.onunderflow;
values[50] = this.ordinal;
values[51] = this.orient;
values[52] = this.pack;
values[53] = this.persist;
values[54] = this.popup;
values[55] = this.position;
values[56] = this.preferenceeditable;
values[57] = this.ref;
values[58] = this.removeelement;
values[59] = this.sortDirection;
values[60] = this.sortResource;
values[61] = this.sortResource2;
values[62] = this.statustext;
values[63] = this.style;
values[64] = this.styleClass;
values[65] = this.template;
values[66] = this.tooltip;
values[67] = this.tooltiptext;
values[68] = this.top;
values[69] = this.updateSmoothly;
values[70] = this.uri;
values[71] = this.waitcursor;
values[72] = this.width;
values[73] = this.methodBindings;
return ((Object) (values));
}
public void restoreState(FacesContext context, Object state) {
Object values[] = (Object[]) state;
super.restoreState(context, values[0]);
this.align = (java.lang.String) values[1];
this.allowevents = (java.lang.Boolean) values[2];
this.allownegativeassertions = (java.lang.Boolean) values[3];
this.coalesceduplicatearcs = (java.lang.String) values[4];
this.collapsed = (java.lang.Boolean) values[5];
this.container = (java.lang.Boolean) values[6];
this.containment = (java.lang.String) values[7];
this.context = (java.lang.String) values[8];
this.contextmenu = (java.lang.String) values[9];
this.datasources = (java.lang.String) values[10];
this.dir = (java.lang.String) values[11];
this.disabled = (java.lang.Boolean) values[12];
this.empty = (java.lang.Boolean) values[13];
this.equalsize = (java.lang.String) values[14];
this.flags = (java.lang.String) values[15];
this.flex = (java.lang.Integer) values[16];
this.height = (java.lang.Integer) values[17];
this.hidden = (java.lang.Boolean) values[18];
this.insertafter = (java.lang.String) values[19];
this.insertbefore = (java.lang.String) values[20];
this.left = (java.lang.Integer) values[21];
this.maxheight = (java.lang.Integer) values[22];
this.maxwidth = (java.lang.Integer) values[23];
this.menu = (java.lang.String) values[24];
this.minheight = (java.lang.Integer) values[25];
this.minwidth = (java.lang.Integer) values[26];
this.mousethrough = (java.lang.String) values[27];
this.observes = (java.lang.String) values[28];
this.onblur = (java.lang.String) values[29];
this.onclick = (java.lang.String) values[30];
this.oncommand = (java.lang.String) values[31];
this.oncommandupdate = (java.lang.String) values[32];
this.oncontextmenu = (java.lang.String) values[33];
this.ondblclick = (java.lang.String) values[34];
this.ondragdrop = (java.lang.String) values[35];
this.ondragenter = (java.lang.String) values[36];
this.ondragexit = (java.lang.String) values[37];
this.ondraggesture = (java.lang.String) values[38];
this.ondragover = (java.lang.String) values[39];
this.onfocus = (java.lang.String) values[40];
this.onkeydown = (java.lang.String) values[41];
this.onkeypress = (java.lang.String) values[42];
this.onkeyup = (java.lang.String) values[43];
this.onmousedown = (java.lang.String) values[44];
this.onmousemove = (java.lang.String) values[45];
this.onmouseout = (java.lang.String) values[46];
this.onmouseover = (java.lang.String) values[47];
this.onmouseup = (java.lang.String) values[48];
this.onunderflow = (java.lang.String) values[49];
this.ordinal = (java.lang.String) values[50];
this.orient = (java.lang.String) values[51];
this.pack = (java.lang.String) values[52];
this.persist = (java.lang.String) values[53];
this.popup = (java.lang.String) values[54];
this.position = (java.lang.String) values[55];
this.preferenceeditable = (java.lang.String) values[56];
this.ref = (java.lang.String) values[57];
this.removeelement = (java.lang.String) values[58];
this.sortDirection = (java.lang.String) values[59];
this.sortResource = (java.lang.String) values[60];
this.sortResource2 = (java.lang.String) values[61];
this.statustext = (java.lang.String) values[62];
this.style = (java.lang.String) values[63];
this.styleClass = (java.lang.String) values[64];
this.template = (java.lang.String) values[65];
this.tooltip = (java.lang.String) values[66];
this.tooltiptext = (java.lang.String) values[67];
this.top = (java.lang.Integer) values[68];
this.updateSmoothly = (java.lang.Boolean) values[69];
this.uri = (java.lang.String) values[70];
this.waitcursor = (java.lang.String) values[71];
this.width = (java.lang.Integer) values[72];
this.methodBindings = (Map) values[73];
}
// @EndGeneration
}