/* * JBoss, Home of Professional Open Source * Copyright 2010, Red Hat, Inc. and individual contributors * by the @authors tag. See the copyright.txt in the distribution for a * full listing of individual contributors. * * This 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 software 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 software; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA, or see the FSF site: http://www.fsf.org. */ package org.richfaces.component; import org.richfaces.cdk.annotations.Attribute; import org.richfaces.cdk.annotations.EventName; import org.richfaces.cdk.annotations.JsfComponent; import org.richfaces.cdk.annotations.JsfRenderer; import org.richfaces.cdk.annotations.Tag; import org.richfaces.component.attribute.CoreProps; import org.richfaces.component.attribute.DisabledProps; import org.richfaces.component.attribute.EventsKeyProps; import org.richfaces.component.attribute.EventsMouseProps; import org.richfaces.component.attribute.FocusProps; import org.richfaces.component.attribute.SelectProps; /** * <p> The <rich:inplaceSelect> component is similar to the <rich:inplaceInput> component, except that the * <rich:inplaceSelect> component uses a drop-down selection box to enter text instead of a regular text field. * Changes can be rendered either in-line or for the whole block, and inputs can be focused with keyboard navigation. * The component is based on the JSF UISelectOne component, so all the standard rules for value definition, processing, * conversion, and validation apply. </p> * * @author Anton Belevich */ @JsfComponent(type = AbstractInplaceSelect.COMPONENT_TYPE, family = AbstractInplaceSelect.COMPONENT_FAMILY, renderer = @JsfRenderer(type = "org.richfaces.InplaceSelectRenderer"), tag = @Tag(name = "inplaceSelect")) public abstract class AbstractInplaceSelect extends AbstractSelectComponent implements InplaceComponent, CoreProps, DisabledProps, EventsKeyProps, EventsMouseProps, FocusProps, SelectProps { public static final String COMPONENT_TYPE = "org.richfaces.InplaceSelect"; public static final String COMPONENT_FAMILY = "org.richfaces.Select"; /** * The width of the input element */ @Attribute public abstract String getInputWidth(); /** * If "false" do not switch the component to the edit state on "click" */ @Attribute(defaultValue = "true") public abstract boolean isOpenOnEdit(); /** * When "false" do not save the item as the new control value when the user selects an item from the drop-down list */ @Attribute(defaultValue = "true") public abstract boolean isSaveOnSelect(); /** * Defines whether the changes should apply when the focus is lost. Default value - "true" */ @Attribute(defaultValue = "true") public abstract boolean isSaveOnBlur(); /** * If "true" is set, buttons for confirming or canceling are added to the component */ @Attribute public abstract boolean isShowControls(); /** * <p>The event on which to switch the component to the edit state</p> * <p>Default is "click"</p> */ @Attribute() public abstract String getEditEvent(); //--------- input events /** * Javascript code executed when a pointer button is clicked over the input element. */ @Attribute(events = @EventName("inputclick")) public abstract String getOninputclick(); /** * Javascript code executed when a pointer button is double clicked over the input element. */ @Attribute(events = @EventName("inputdblclick")) public abstract String getOninputdblclick(); /** * Javascript code executed when a pointer button is pressed down over the input element. */ @Attribute(events = @EventName("inputmousedown")) public abstract String getOninputmousedown(); /** * Javascript code executed when a pointer button is released over the input element. */ @Attribute(events = @EventName("inputmouseup")) public abstract String getOninputmouseup(); /** * Javascript code executed when a pointer button is moved onto the input element. */ @Attribute(events = @EventName("inputmouseover")) public abstract String getOninputmouseover(); /** * Javascript code executed when a pointer button is moved within the input element. */ @Attribute(events = @EventName("inputmousemove")) public abstract String getOninputmousemove(); /** * Javascript code executed when a pointer button is moved away from the input element. */ @Attribute(events = @EventName("inputmouseout")) public abstract String getOninputmouseout(); /** * Javascript code executed when a key is pressed down over the input element. */ @Attribute(events = @EventName("inputkeydown")) public abstract String getOninputkeydown(); /** * Javascript code executed when a key is pressed and released over the input element. */ @Attribute(events = @EventName("inputkeypress")) public abstract String getOninputkeypress(); /** * Javascript code executed when a key is released over the input element. */ @Attribute(events = @EventName("inputkeyup")) public abstract String getOninputkeyup(); /** * Javascript code executed when text in the input element is selected */ @Attribute(events = @EventName("inputselect")) public abstract String getOninputselect(); @Attribute(hidden = true) public abstract InplaceState getState(); }