Author: abelevich
Date: 2008-02-19 07:25:41 -0500 (Tue, 19 Feb 2008)
New Revision: 6159
Modified:
trunk/sandbox/ui/inplaceSelect/pom.xml
trunk/sandbox/ui/inplaceSelect/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java
Log:
extends inplaceSelect from combobox
Modified: trunk/sandbox/ui/inplaceSelect/pom.xml
===================================================================
--- trunk/sandbox/ui/inplaceSelect/pom.xml 2008-02-19 12:23:34 UTC (rev 6158)
+++ trunk/sandbox/ui/inplaceSelect/pom.xml 2008-02-19 12:25:41 UTC (rev 6159)
@@ -50,6 +50,12 @@
<groupId>org.richfaces.framework</groupId>
<artifactId>richfaces-api</artifactId>
<version>3.2.0-SNAPSHOT</version>
- </dependency>
+ </dependency>
+ <dependency>
+ <groupId>org.richfaces.ui</groupId>
+ <artifactId>combobox</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+
</dependencies>
</project>
\ No newline at end of file
Modified:
trunk/sandbox/ui/inplaceSelect/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java
===================================================================
---
trunk/sandbox/ui/inplaceSelect/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java 2008-02-19
12:23:34 UTC (rev 6158)
+++
trunk/sandbox/ui/inplaceSelect/src/main/java/org/richfaces/renderkit/InplaceSelectBaseRenderer.java 2008-02-19
12:25:41 UTC (rev 6159)
@@ -3,21 +3,108 @@
*/
package org.richfaces.renderkit;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.context.ResponseWriter;
+import javax.faces.convert.Converter;
+import javax.faces.convert.ConverterException;
+import javax.faces.model.SelectItem;
-import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
+import org.ajax4jsf.util.InputUtils;
+import org.ajax4jsf.util.SelectUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.richfaces.component.UIInplaceSelect;
/**
* @author Anton Belevich
*
*/
-public class InplaceSelectBaseRenderer extends HeaderResourcesRendererBase{
+public class InplaceSelectBaseRenderer extends ComboBoxBaseRenderer{
+
+ private static Log logger = LogFactory.getLog(InplaceSelectBaseRenderer.class);
+ private static final String RICH_INPLACE_SELECT_CLASSES = "rich-iselect-item
rich-iselect-item-normal";
+ private ArrayList <String> valuesList = null;
- protected Class<? extends UIComponent> getComponentClass() {
- return UIInplaceSelect.class;
+ @Override
+ protected void doDecode(FacesContext context, UIComponent component) {
+ UIInplaceSelect inplaceInput = null;
+
+ if (component instanceof UIInplaceSelect) {
+ inplaceInput = (UIInplaceSelect) component;
+ } else {
+ if (logger.isDebugEnabled()) {
+ logger.debug("No decoding necessary since the component "
+ + component.getId() +
+ " is not an instance or a sub class of UIComboBox");
+ }
+ return;
+ }
+
+ if (InputUtils.isDisabled(inplaceInput) || InputUtils.isReadOnly(inplaceInput)) {
+ if (logger.isDebugEnabled()) {
+ logger.debug(("No decoding necessary since the component "
+ + component.getId() + " is disabled"));
+ }
+ }
+
+ String clientId = component.getClientId(context);
+ if (clientId == null) {
+ throw new NullPointerException("component " +
inplaceInput.getClientId(context) + " client id is NULL" );
+ }
+
+ clientId = clientId + "inplaceValue";
+ Map request = context.getExternalContext().getRequestParameterMap();
+ if (request.containsKey(clientId)) {
+ String newValue = (String)request.get(clientId);
+ inplaceInput.setSubmittedValue(newValue);
+ }
}
+ @Override
+ public Object getConvertedValue(FacesContext context, UIComponent component, Object
submittedValue) throws ConverterException {
+ UIInplaceSelect select = null;
+ Converter converter = null;
+ if (component instanceof UIInplaceSelect) {
+ select = (UIInplaceSelect)component;
+ converter = select.getConverter();
+ }
+ return getConvertedValue(context, component, submittedValue, converter);
+ }
-
+ public void encodeItems( FacesContext context, UIComponent component) throws IOException
{
+ valuesList = new ArrayList<String>();
+ ResponseWriter writer = context.getResponseWriter();
+
+ List <SelectItem> selectItems = SelectUtils.getSelectItems(context, component);
+ if(!selectItems.isEmpty()) {
+ for (Iterator <SelectItem> iterator = selectItems.iterator();
iterator.hasNext();) {
+ SelectItem selectItem = iterator.next();
+ String value = getConvertedStringValue(context, component, selectItem.getValue());
+ valuesList.add(value);
+ encodeSuggestion(writer, component, value, RICH_INPLACE_SELECT_CLASSES);
+ }
+ }
+ }
+
+ @Override
+ protected String getConvertedStringValue(FacesContext context, UIComponent component,
Object value) {
+ UIInplaceSelect select = null;
+ Converter converter = null;
+ if (component instanceof UIInplaceSelect) {
+ select = (UIInplaceSelect)component;
+ converter = select.getConverter();
+ }
+ return getConvertedStringValue(context, component, value, converter);
+ }
+
+ protected Class <? extends UIComponent> getComponentClass() {
+ return UIInplaceSelect.class;
+ }
}
Show replies by date