You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2007/05/02 16:48:46 UTC

svn commit: r534491 - /myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java

Author: lofwyr
Date: Wed May  2 07:48:45 2007
New Revision: 534491

URL: http://svn.apache.org/viewvc?view=rev&rev=534491
Log:
use StyleClasses for min/max

Modified:
    myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java

Modified: myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java?view=diff&rev=534491&r1=534490&r2=534491
==============================================================================
--- myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java (original)
+++ myfaces/tobago/trunk/sandbox/src/main/java/org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/InputNumberSliderRenderer.java Wed May  2 07:48:45 2007
@@ -30,6 +30,7 @@
 import org.apache.myfaces.tobago.renderkit.html.HtmlConstants;
 import org.apache.myfaces.tobago.renderkit.html.HtmlRendererUtil;
 import org.apache.myfaces.tobago.renderkit.html.HtmlStyleMap;
+import org.apache.myfaces.tobago.renderkit.html.StyleClasses;
 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
 
 import javax.faces.component.UIComponent;
@@ -41,184 +42,189 @@
 
 public class InputNumberSliderRenderer extends RendererBase {
 
-    private static final Log LOG = LogFactory.getLog(InputNumberSliderRenderer.class);
-    private static final String SLIDER_WIDTH_PERCENT = "sliderWidthPercent";
+  private static final Log LOG = LogFactory.getLog(InputNumberSliderRenderer.class);
+  private static final String SLIDER_WIDTH_PERCENT = "sliderWidthPercent";
 
-    public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
-        final String[] scripts = new String[]{"script/scriptaculous.js"};
-        ComponentUtil.addScripts(component, scripts);
-
-        String id = component.getClientId(facesContext);
-        String currentValue = getCurrentValue(facesContext, component);
-        boolean readonly = ComponentUtil.getBooleanAttribute(component, ATTR_READONLY);
-        boolean disabled = ComponentUtil.getBooleanAttribute(component, ATTR_DISABLED);
-        Integer min = ComponentUtil.getIntAttribute(component, "min");
-        Integer max = ComponentUtil.getIntAttribute(component, "max");
-        TobagoResponseWriter writer = (TobagoResponseWriter) facesContext.getResponseWriter();
-
-
-        HtmlStyleMap style = (HtmlStyleMap) component.getAttributes().get(ATTR_STYLE);
-        int width = -1;
-        int sliderWidthPerc = 33;
-        if (ThemeConfig.hasValue(facesContext, component, SLIDER_WIDTH_PERCENT)) {
-            sliderWidthPerc = ThemeConfig.getValue(facesContext, component, SLIDER_WIDTH_PERCENT);
-            if (sliderWidthPerc <= 25) {
-                sliderWidthPerc = 25;
-            }
-            if (sliderWidthPerc >= 75) {
-                sliderWidthPerc = 75;
-            }
-        }
-        int sliderWidth = 100; // fixme
-        int inputWidth = 50; // fixme;
-        if (style != null && style.containsKey("width")) {
-            width = style.getInt("width");
-        }
-        if (width >= 0) {
-            sliderWidth = (width * sliderWidthPerc) / 100;
-            inputWidth = (width * (100 - sliderWidthPerc)) / 100;
-        }
-
-        writer.startElement(HtmlConstants.TABLE, component);
-        writer.writeIdAttribute(id);
-        writer.writeComponentClass();
-        writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
-        //writer.writeAttribute("border","1",false);
-
-        writer.startElement(HtmlConstants.TR);
-        writer.startElement(HtmlConstants.TD);
-        writer.writeClassAttribute("tobago-inputNumberSlider-min-default");
-        writer.writeAttribute(HtmlAttributes.STYLE,
-                HtmlRendererUtil.toStyleString("width", sliderWidth / 2), null);
-        writer.startElement(HtmlConstants.SPAN);
-        writer.writeClassAttribute("tobago-inputNumberSlider-min-default");
-        writer.writeText(min, null);
-        writer.endElement(HtmlConstants.SPAN);
-
-        writer.endElement(HtmlConstants.TD);
-        writer.startElement(HtmlConstants.TD);
-        writer.writeClassAttribute("tobago-inputNumberSlider-max-default");
-        writer.writeAttribute(HtmlAttributes.STYLE,
-                HtmlRendererUtil.toStyleString("width", sliderWidth / 2), null);
-        writer.startElement(HtmlConstants.SPAN);
-        writer.writeClassAttribute("tobago-inputNumberSlider-max-default");
-        writer.writeText(max, null);
-        writer.endElement(HtmlConstants.SPAN);
-        writer.endElement(HtmlConstants.TD);
-
-        // the input field starts here
-        writer.startElement(HtmlConstants.TD);
-        writer.writeAttribute("rowspan", "2", false);
-        writer.writeClassAttribute("tobago-inputNumberSlider-input-default");
-
-        writer.startElement(HtmlConstants.INPUT);
-        writer.writeClassAttribute("tobago-in-default");
-        writer.writeAttribute(HtmlAttributes.STYLE,
-                HtmlRendererUtil.toStyleString("width", inputWidth), null);
-        String inputIdAndName = getIdForInputField(facesContext, component);
-        writer.writeNameAttribute(inputIdAndName);
-        writer.writeIdAttribute(inputIdAndName);
-        if (currentValue != null) {
-            writer.writeAttribute(HtmlAttributes.VALUE, currentValue, null);
-        }
-        writer.writeAttribute(HtmlAttributes.READONLY, readonly);
-        writer.writeAttribute(HtmlAttributes.DISABLED, disabled);
-        //writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
-        writer.endElement(HtmlConstants.INPUT);
-        writer.endElement(HtmlConstants.TD);
-
-        writer.endElement(HtmlConstants.TR);
-        writer.startElement(HtmlConstants.TR);
-        writer.startElement(HtmlConstants.TD);
-        writer.writeAttribute("colspan", "2", false);
-
-        //track
-        writer.startElement(HtmlConstants.DIV);
-        writer.writeClassAttribute("tobago-inputNumberSlider-slider-default");
-        writer.writeAttribute(HtmlAttributes.ID, getIdForSliderTrack(facesContext, component), null);
-
-        // handle
-        writer.startElement(HtmlConstants.DIV);
-        writer.writeAttribute(HtmlAttributes.ID, getIdForSliderHandle(facesContext, component), null);
-        writer.writeAttribute(HtmlAttributes.STYLE, "position:relative; top:-6px; width:12px; height:6px", null);
-        writer.startElement(HtmlConstants.IMG);
-        writer.writeAttribute(HtmlAttributes.SRC, getAbsoluteImagePath(facesContext, "image/sliderTriangle.gif"), null);
-        writer.endElement(HtmlConstants.IMG);
-        writer.endElement(HtmlConstants.DIV);
-        writer.endElement(HtmlConstants.DIV);
-        writer.endElement(HtmlConstants.TD);
-        writer.endElement(HtmlConstants.TR);
-        writer.endElement(HtmlConstants.TABLE);
-
-        writeSliderJavaScript(facesContext, component, writer);
-        //HtmlRendererUtil.renderFocusId(facesContext, component);
-    }
-
-    public void decode(FacesContext context, UIComponent component) {
-        UIInput uiInput;
-        if (component instanceof UIInput && !ComponentUtil.isOutputOnly(component)) {
-            uiInput = (UIInput) component;
-        } else {
-            return;
-        }
-        String inputId = getIdForInputField(context, component);
-        Map requestParameterMap = context.getExternalContext().getRequestParameterMap();
-        if (requestParameterMap.containsKey(inputId)) {
-            String newValue = (String) requestParameterMap.get(inputId);
-            uiInput.setSubmittedValue(newValue);
-        }
-    }
-
-    private String getAbsoluteImagePath(FacesContext facesContext, String relativeImagePath) {
-        ResourceManager resourceManager = ResourceManagerFactory.getResourceManager(facesContext);
-        UIViewRoot viewRoot = facesContext.getViewRoot();
-        String contextPath = facesContext.getExternalContext().getRequestContextPath();
-        return contextPath + resourceManager.getImage(viewRoot, relativeImagePath);
-    }
+  public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
+    final String[] scripts = new String[]{"script/scriptaculous.js"};
+    ComponentUtil.addScripts(component, scripts);
+
+    String id = component.getClientId(facesContext);
+    String currentValue = getCurrentValue(facesContext, component);
+    boolean readonly = ComponentUtil.getBooleanAttribute(component, ATTR_READONLY);
+    boolean disabled = ComponentUtil.getBooleanAttribute(component, ATTR_DISABLED);
+    Integer min = ComponentUtil.getIntAttribute(component, "min");
+    Integer max = ComponentUtil.getIntAttribute(component, "max");
+    TobagoResponseWriter writer = (TobagoResponseWriter) facesContext.getResponseWriter();
+
+
+    HtmlStyleMap style = (HtmlStyleMap) component.getAttributes().get(ATTR_STYLE);
+    int width = -1;
+    int sliderWidthPerc = 33;
+    if (ThemeConfig.hasValue(facesContext, component, SLIDER_WIDTH_PERCENT)) {
+      sliderWidthPerc = ThemeConfig.getValue(facesContext, component, SLIDER_WIDTH_PERCENT);
+      if (sliderWidthPerc <= 25) {
+        sliderWidthPerc = 25;
+      }
+      if (sliderWidthPerc >= 75) {
+        sliderWidthPerc = 75;
+      }
+    }
+    int sliderWidth = 100; // fixme
+    int inputWidth = 50; // fixme;
+    if (style != null && style.containsKey("width")) {
+      width = style.getInt("width");
+    }
+    if (width >= 0) {
+      sliderWidth = (width * sliderWidthPerc) / 100;
+      inputWidth = (width * (100 - sliderWidthPerc)) / 100;
+    }
+
+    writer.startElement(HtmlConstants.TABLE, component);
+    writer.writeIdAttribute(id);
+    writer.writeComponentClass();
+    writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
+    //writer.writeAttribute("border","1",false);
+
+    StyleClasses styleClasses = new StyleClasses();
+    styleClasses.addAspectClass("inputNumberSlider", "min", StyleClasses.Aspect.DEFAULT);
+
+    writer.startElement(HtmlConstants.TR);
+    writer.startElement(HtmlConstants.TD);
+    writer.writeClassAttribute(styleClasses);
+    writer.writeAttribute(HtmlAttributes.STYLE, HtmlRendererUtil.toStyleString("width", sliderWidth / 2), null);
+    writer.startElement(HtmlConstants.SPAN);
+    writer.writeClassAttribute(styleClasses);
+    writer.writeText(min, null);
+    writer.endElement(HtmlConstants.SPAN);
+
+    styleClasses = new StyleClasses();
+    styleClasses.addAspectClass("inputNumberSlider", "max", StyleClasses.Aspect.DEFAULT);
+
+    writer.endElement(HtmlConstants.TD);
+    writer.startElement(HtmlConstants.TD);
+    writer.writeClassAttribute(styleClasses);
+    writer.writeAttribute(HtmlAttributes.STYLE,
+        HtmlRendererUtil.toStyleString("width", sliderWidth / 2), null);
+    writer.startElement(HtmlConstants.SPAN);
+    writer.writeClassAttribute(styleClasses);
+    writer.writeText(max, null);
+    writer.endElement(HtmlConstants.SPAN);
+    writer.endElement(HtmlConstants.TD);
+
+    // the input field starts here
+    writer.startElement(HtmlConstants.TD);
+    writer.writeAttribute("rowspan", "2", false);
+    writer.writeClassAttribute("tobago-inputNumberSlider-input-default");
+
+    writer.startElement(HtmlConstants.INPUT);
+    writer.writeClassAttribute("tobago-in-default");
+    writer.writeAttribute(HtmlAttributes.STYLE,
+        HtmlRendererUtil.toStyleString("width", inputWidth), null);
+    String inputIdAndName = getIdForInputField(facesContext, component);
+    writer.writeNameAttribute(inputIdAndName);
+    writer.writeIdAttribute(inputIdAndName);
+    if (currentValue != null) {
+      writer.writeAttribute(HtmlAttributes.VALUE, currentValue, null);
+    }
+    writer.writeAttribute(HtmlAttributes.READONLY, readonly);
+    writer.writeAttribute(HtmlAttributes.DISABLED, disabled);
+    //writer.writeAttribute(HtmlAttributes.STYLE, null, ATTR_STYLE);
+    writer.endElement(HtmlConstants.INPUT);
+    writer.endElement(HtmlConstants.TD);
+
+    writer.endElement(HtmlConstants.TR);
+    writer.startElement(HtmlConstants.TR);
+    writer.startElement(HtmlConstants.TD);
+    writer.writeAttribute("colspan", "2", false);
+
+    //track
+    writer.startElement(HtmlConstants.DIV);
+    writer.writeClassAttribute("tobago-inputNumberSlider-slider-default");
+    writer.writeAttribute(HtmlAttributes.ID, getIdForSliderTrack(facesContext, component), null);
+
+    // handle
+    writer.startElement(HtmlConstants.DIV);
+    writer.writeAttribute(HtmlAttributes.ID, getIdForSliderHandle(facesContext, component), null);
+    writer.writeAttribute(HtmlAttributes.STYLE, "position:relative; top:-6px; width:12px; height:6px", null);
+    writer.startElement(HtmlConstants.IMG);
+    writer.writeAttribute(HtmlAttributes.SRC, getAbsoluteImagePath(facesContext, "image/sliderTriangle.gif"), null);
+    writer.endElement(HtmlConstants.IMG);
+    writer.endElement(HtmlConstants.DIV);
+    writer.endElement(HtmlConstants.DIV);
+    writer.endElement(HtmlConstants.TD);
+    writer.endElement(HtmlConstants.TR);
+    writer.endElement(HtmlConstants.TABLE);
+
+    writeSliderJavaScript(facesContext, component, writer);
+    //HtmlRendererUtil.renderFocusId(facesContext, component);
+  }
+
+  public void decode(FacesContext context, UIComponent component) {
+    UIInput uiInput;
+    if (component instanceof UIInput && !ComponentUtil.isOutputOnly(component)) {
+      uiInput = (UIInput) component;
+    } else {
+      return;
+    }
+    String inputId = getIdForInputField(context, component);
+    Map requestParameterMap = context.getExternalContext().getRequestParameterMap();
+    if (requestParameterMap.containsKey(inputId)) {
+      String newValue = (String) requestParameterMap.get(inputId);
+      uiInput.setSubmittedValue(newValue);
+    }
+  }
+
+  private String getAbsoluteImagePath(FacesContext facesContext, String relativeImagePath) {
+    ResourceManager resourceManager = ResourceManagerFactory.getResourceManager(facesContext);
+    UIViewRoot viewRoot = facesContext.getViewRoot();
+    String contextPath = facesContext.getExternalContext().getRequestContextPath();
+    return contextPath + resourceManager.getImage(viewRoot, relativeImagePath);
+  }
+
+  private String getIdForInputField(FacesContext context,
+                                    UIComponent component) {
+    String id = component.getClientId(context);
+    return id + TobagoConstants.SUBCOMPONENT_SEP + "input";
+  }
+
+  private String getIdForSliderTrack(FacesContext context,
+                                     UIComponent component) {
+    String id = component.getClientId(context);
+    return id + TobagoConstants.SUBCOMPONENT_SEP + "track";
+  }
 
-    private String getIdForInputField(FacesContext context,
+  private String getIdForSliderHandle(FacesContext context,
                                       UIComponent component) {
-        String id = component.getClientId(context);
-        return id + TobagoConstants.SUBCOMPONENT_SEP + "input";
-    }
-
-    private String getIdForSliderTrack(FacesContext context,
-                                       UIComponent component) {
-        String id = component.getClientId(context);
-        return id + TobagoConstants.SUBCOMPONENT_SEP + "track";
-    }
-
-    private String getIdForSliderHandle(FacesContext context,
-                                        UIComponent component) {
-        String id = component.getClientId(context);
-        return id + TobagoConstants.SUBCOMPONENT_SEP + "handle";
-    }
-
-    private void writeSliderJavaScript(FacesContext context, UIComponent component,
-                                       TobagoResponseWriter writer) throws IOException {
-        String trackId = getIdForSliderTrack(context, component);
-        String handleId = getIdForSliderHandle(context, component);
-        String inputId = getIdForInputField(context, component);
-        String jsId = component.getClientId(context).replace(":","_");
-        Integer min = ComponentUtil.getIntAttribute(component, "min");
-        Integer max = ComponentUtil.getIntAttribute(component, "max");
-        String script =
-                "    var slider_"+jsId+" = new Control.Slider('"+handleId+"', '"+trackId+"', {\n" +
-                "        sliderValue:$('"+inputId+"').value,\n" +
-                "        range : $R("+min+", "+max+"),\n" +
-                "        values: $R("+min+", "+max+").toArray(),\n" +
-                "        onSlide:function(v) {\n" +
-                "            $('"+inputId+"').value = v;\n" +
-                "        },\n" +
-                "        onChange:function(v) {\n" +
-                "            $('"+inputId+"').value = v;\n" +
-                "        }\n" +
-                "    });\n" +
-                "\n" +
-                "    Event.observe('value', 'change', function() {\n" +
-                "        slider_"+jsId+".setValue($('"+inputId+"').value);\n" +
-                "    });\n";
-        HtmlRendererUtil.writeJavascript(writer, script);
-    }
+    String id = component.getClientId(context);
+    return id + TobagoConstants.SUBCOMPONENT_SEP + "handle";
+  }
+
+  private void writeSliderJavaScript(FacesContext context, UIComponent component,
+                                     TobagoResponseWriter writer) throws IOException {
+    String trackId = getIdForSliderTrack(context, component);
+    String handleId = getIdForSliderHandle(context, component);
+    String inputId = getIdForInputField(context, component);
+    String jsId = component.getClientId(context).replace(":", "_");
+    Integer min = ComponentUtil.getIntAttribute(component, "min");
+    Integer max = ComponentUtil.getIntAttribute(component, "max");
+    String script =
+        "    var slider_" + jsId + " = new Control.Slider('" + handleId + "', '" + trackId + "', {\n" +
+            "        sliderValue:$('" + inputId + "').value,\n" +
+            "        range : $R(" + min + ", " + max + "),\n" +
+            "        values: $R(" + min + ", " + max + ").toArray(),\n" +
+            "        onSlide:function(v) {\n" +
+            "            $('" + inputId + "').value = v;\n" +
+            "        },\n" +
+            "        onChange:function(v) {\n" +
+            "            $('" + inputId + "').value = v;\n" +
+            "        }\n" +
+            "    });\n" +
+            "\n" +
+            "    Event.observe('value', 'change', function() {\n" +
+            "        slider_" + jsId + ".setValue($('" + inputId + "').value);\n" +
+            "    });\n";
+    HtmlRendererUtil.writeJavascript(writer, script);
+  }
 
 }