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 2013/09/23 17:52:43 UTC
svn commit: r1525631 - in /myfaces/tobago/branches/tobago-1.5.x:
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/
tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/
tobago-core/src/main/java/org/apache...
Author: lofwyr
Date: Mon Sep 23 15:52:43 2013
New Revision: 1525631
URL: http://svn.apache.org/r1525631
Log:
TOBAGO-1283: New attribute "placeholder" for input fields
Added:
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITextarea.java
- copied, changed from r1524192, myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasPlaceholder.java
Modified:
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java
myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlAttributes.java
myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/overview/OverviewController.java
myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/webapp/content/01-basic/basic.xhtml
myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java
myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java
myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css
myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUIInput.java Mon Sep 23 15:52:43 2013
@@ -37,4 +37,6 @@ public abstract class AbstractUIInput ex
public abstract Integer getTabIndex();
+ public abstract String getPlaceholder();
+
}
Copied: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITextarea.java (from r1524192, myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java)
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITextarea.java?p2=myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITextarea.java&p1=myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java&r1=1524192&r2=1525631&rev=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITextarea.java Mon Sep 23 15:52:43 2013
@@ -25,21 +25,10 @@ import javax.faces.convert.Converter;
import javax.faces.convert.DateTimeConverter;
import java.util.TimeZone;
-public abstract class AbstractUITime extends AbstractUIInput {
+public abstract class AbstractUITextarea extends AbstractUIInput {
@Override
- public Converter getConverter() {
- Converter converter = super.getConverter();
- if (converter == null) {
- // setting required default converter
- Application application
- = FacesContext.getCurrentInstance().getApplication();
- DateTimeConverter dateTimeConverter
- = (DateTimeConverter) application.createConverter(DateTimeConverter.CONVERTER_ID);
- dateTimeConverter.setPattern("HH:mm");
- dateTimeConverter.setTimeZone(TimeZone.getDefault());
- setConverter(dateTimeConverter);
- }
- return converter;
+ public String getPlaceholder() {
+ return null;
}
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/component/AbstractUITime.java Mon Sep 23 15:52:43 2013
@@ -42,4 +42,9 @@ public abstract class AbstractUITime ext
}
return converter;
}
+
+ @Override
+ public String getPlaceholder() {
+ return null;
+ }
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/DateTagDeclaration.java Mon Sep 23 15:52:43 2013
@@ -29,6 +29,7 @@ import org.apache.myfaces.tobago.interna
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasLabelAndAccessKey;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasPlaceholder;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
import org.apache.myfaces.tobago.internal.taglib.declaration.InputTagDeclaration;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
@@ -53,6 +54,5 @@ import org.apache.myfaces.tobago.interna
public interface DateTagDeclaration
extends InputTagDeclaration, HasIdBindingAndRendered, IsReadonly,
IsDisabled, HasConverter, IsDeprecatedInline, HasLabelAndAccessKey,
- HasTip, IsRequired, HasMarkup, HasCurrentMarkup {
-
+ HasTip, IsRequired, HasMarkup, HasCurrentMarkup, HasPlaceholder {
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/InTagDeclaration.java Mon Sep 23 15:52:43 2013
@@ -30,11 +30,12 @@ import org.apache.myfaces.tobago.interna
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasInputLabel;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
+import org.apache.myfaces.tobago.internal.taglib.declaration.HasPlaceholder;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasSuggestMethod;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasTip;
import org.apache.myfaces.tobago.internal.taglib.declaration.InputTagDeclaration;
-import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsDeprecatedInline;
+import org.apache.myfaces.tobago.internal.taglib.declaration.IsDisabled;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsPassword;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsReadonly;
import org.apache.myfaces.tobago.internal.taglib.declaration.IsRequired;
@@ -57,6 +58,6 @@ import org.apache.myfaces.tobago.interna
})
public interface InTagDeclaration
extends HasIdBindingAndRendered, HasConverter, IsReadonly, IsDisabled, IsRequired, HasTip, IsPassword,
- HasSuggestMethod, HasMarkup, HasCurrentMarkup, InputTagDeclaration, HasInputLabel, IsDeprecatedInline {
-
+ HasSuggestMethod, HasMarkup, HasCurrentMarkup, InputTagDeclaration, HasInputLabel, IsDeprecatedInline,
+ HasPlaceholder {
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/component/TextareaTagDeclaration.java Mon Sep 23 15:52:43 2013
@@ -41,7 +41,7 @@ import org.apache.myfaces.tobago.interna
@Tag(name = "textarea")
@UIComponentTag(
uiComponent = "org.apache.myfaces.tobago.component.UITextarea",
- uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUIInput",
+ uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUITextarea",
rendererType = RendererTypes.TEXTAREA,
allowedChildComponenents = "NONE")
public interface TextareaTagDeclaration
Added: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasPlaceholder.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasPlaceholder.java?rev=1525631&view=auto
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasPlaceholder.java (added)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/taglib/declaration/HasPlaceholder.java Mon Sep 23 15:52:43 2013
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.myfaces.tobago.internal.taglib.declaration;
+
+import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
+import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
+
+public interface HasPlaceholder {
+
+ /**
+ * Displays a short text in the input field, that describes the meaning of this field.
+ * This is part of HTML 5, the theme should emulate the behaviour, when the browser doesn't support it.
+ * <p/>
+ * The text will not be displayed, when the input field is readonly or disabled.
+ * @param placeholder The text to display
+ */
+ @TagAttribute
+ @UIComponentTagAttribute
+ void setPlaceholder(String placeholder);
+}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlAttributes.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlAttributes.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlAttributes.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-core/src/main/java/org/apache/myfaces/tobago/renderkit/html/HtmlAttributes.java Mon Sep 23 15:52:43 2013
@@ -60,6 +60,7 @@ public final class HtmlAttributes {
public static final String ONLOAD = "onload";
public static final String ONMOUSEOVER = "onmouseover";
public static final String ONMOUSEOUT = "onmouseout";
+ public static final String PLACEHOLDER = "placeholder";
public static final String READONLY = "readonly";
public static final String REL = "rel";
public static final String ROWS = "rows";
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/overview/OverviewController.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/overview/OverviewController.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/overview/OverviewController.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/overview/OverviewController.java Mon Sep 23 15:52:43 2013
@@ -80,6 +80,8 @@ public class OverviewController implemen
private String suggestInput;
+ private String placeholder;
+
private String basicArea = "";
private Date basicDate = new Date();
@@ -353,6 +355,14 @@ public class OverviewController implemen
this.suggestInput = suggestInput;
}
+ public String getPlaceholder() {
+ return placeholder;
+ }
+
+ public void setPlaceholder(String placeholder) {
+ this.placeholder = placeholder;
+ }
+
public String getBasicArea() {
return basicArea;
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/webapp/content/01-basic/basic.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/webapp/content/01-basic/basic.xhtml?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/webapp/content/01-basic/basic.xhtml (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-example/tobago-example-demo/src/main/webapp/content/01-basic/basic.xhtml Mon Sep 23 15:52:43 2013
@@ -26,7 +26,7 @@
<tc:panel>
<f:facet name="layout">
- <tc:gridLayout rows="auto;2*;3*;auto;2*;2*;auto;2*;2*"/>
+ <tc:gridLayout rows="auto;3*;6*;auto;3*;4*;auto;3*;4*"/>
<!--<tc:gridLayout border="0" rows="*;*;*;*;*;*;*;*;*;*"/>-->
</f:facet>
@@ -44,7 +44,7 @@
<tc:panel>
<f:facet name="layout">
- <tc:gridLayout rows="auto;auto;auto;auto"/>
+ <tc:gridLayout rows="auto;auto;auto;auto;auto"/>
</f:facet>
<tx:in value="#{overviewController.basicInput}" required="true" tabIndex="1"
label="#{overviewBundle.basic_textboxLabel}" tip="#{overviewBundle.basic_textboxTip}"/>
@@ -58,6 +58,8 @@
</tx:date>
<tx:time label="#{overviewBundle.basic_timeLabel}" tabIndex="5"
value="#{overviewController.basicTime}"/>
+ <tx:in value="#{overviewController.placeholder}" tabIndex="6"
+ label="Placeholder" placeholder="Search..."/>
</tc:panel>
<tx:textarea value="#{overviewController.basicArea}" tabIndex="2"
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/DateExtensionTag.java Mon Sep 23 15:52:43 2013
@@ -28,6 +28,8 @@ import org.apache.myfaces.tobago.interna
import org.apache.myfaces.tobago.internal.taglib.DateTag;
import org.apache.myfaces.tobago.internal.taglib.FormTag;
+import javax.el.MethodExpression;
+import javax.el.ValueExpression;
import javax.servlet.jsp.JspException;
/*
@@ -55,32 +57,33 @@ import javax.servlet.jsp.JspException;
@ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.DateTag")
public class DateExtensionTag extends TobagoExtensionBodyTagSupport {
- private static final long serialVersionUID = 2044784791513107420L;
+ private static final long serialVersionUID = 1L;
- private javax.el.ValueExpression binding;
- private javax.el.ValueExpression converter;
- private javax.el.MethodExpression validator;
- private javax.el.ValueExpression disabled;
- private javax.el.ValueExpression focus;
- private javax.el.ValueExpression label;
- private javax.el.ValueExpression readonly;
- private javax.el.ValueExpression rendered;
- private javax.el.ValueExpression required;
- private javax.el.ValueExpression tip;
- private javax.el.ValueExpression value;
- private javax.el.MethodExpression valueChangeListener;
- private javax.el.ValueExpression inline;
- private javax.el.ValueExpression onchange;
- private javax.el.ValueExpression tabIndex;
- private javax.el.ValueExpression markup;
- private javax.el.ValueExpression validatorMessage;
- private javax.el.ValueExpression converterMessage;
- private javax.el.ValueExpression requiredMessage;
+ private ValueExpression binding;
+ private ValueExpression converter;
+ private MethodExpression validator;
+ private ValueExpression disabled;
+ private ValueExpression focus;
+ private ValueExpression label;
+ private ValueExpression readonly;
+ private ValueExpression rendered;
+ private ValueExpression required;
+ private ValueExpression tip;
+ private ValueExpression placeholder;
+ private ValueExpression value;
+ private MethodExpression valueChangeListener;
+ private ValueExpression inline;
+ private ValueExpression onchange;
+ private ValueExpression tabIndex;
+ private ValueExpression markup;
+ private ValueExpression validatorMessage;
+ private ValueExpression converterMessage;
+ private ValueExpression requiredMessage;
private String fieldId;
private String pickerId;
private String formId;
- private javax.el.ValueExpression labelWidth;
+ private ValueExpression labelWidth;
private LabelExtensionTag labelTag;
private DateTag dateTag;
@@ -121,6 +124,9 @@ public class DateExtensionTag extends To
if (valueChangeListener != null) {
dateTag.setValueChangeListener(valueChangeListener);
}
+ if (placeholder != null) {
+ dateTag.setPlaceholder(placeholder);
+ }
if (binding != null) {
dateTag.setBinding(binding);
}
@@ -226,6 +232,7 @@ public class DateExtensionTag extends To
rendered = null;
required = null;
tip = null;
+ placeholder = null;
value = null;
valueChangeListener = null;
onchange = null;
@@ -246,7 +253,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Object")
- public void setValue(javax.el.ValueExpression value) {
+ public void setValue(ValueExpression value) {
this.value = value;
}
@@ -263,7 +270,7 @@ public class DateExtensionTag extends To
type = {},
expression = DynamicExpression.METHOD_BINDING_REQUIRED,
methodSignature = "javax.faces.event.ValueChangeEvent")
- public void setValueChangeListener(javax.el.MethodExpression valueChangeListener) {
+ public void setValueChangeListener(MethodExpression valueChangeListener) {
this.valueChangeListener = valueChangeListener;
}
@@ -273,7 +280,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setLabel(javax.el.ValueExpression label) {
+ public void setLabel(ValueExpression label) {
this.label = label;
}
@@ -282,7 +289,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setOnchange(javax.el.ValueExpression onchange) {
+ public void setOnchange(ValueExpression onchange) {
this.onchange = onchange;
}
@@ -291,7 +298,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setFocus(javax.el.ValueExpression focus) {
+ public void setFocus(ValueExpression focus) {
this.focus = focus;
}
@@ -301,7 +308,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
- public void setBinding(javax.el.ValueExpression binding) {
+ public void setBinding(ValueExpression binding) {
this.binding = binding;
}
@@ -311,7 +318,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "true")
- public void setRendered(javax.el.ValueExpression rendered) {
+ public void setRendered(ValueExpression rendered) {
this.rendered = rendered;
}
@@ -327,7 +334,7 @@ public class DateExtensionTag extends To
@TagAttribute
@UIComponentTagAttribute(type = "javax.faces.convert.Converter",
expression = DynamicExpression.VALUE_BINDING)
- public void setConverter(javax.el.ValueExpression converter) {
+ public void setConverter(ValueExpression converter) {
this.converter = converter;
}
@@ -341,7 +348,7 @@ public class DateExtensionTag extends To
@UIComponentTagAttribute(type = {},
expression = DynamicExpression.METHOD_BINDING,
methodSignature = { "javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object" })
- public void setValidator(javax.el.MethodExpression validator) {
+ public void setValidator(MethodExpression validator) {
this.validator = validator;
}
@@ -352,7 +359,7 @@ public class DateExtensionTag extends To
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
@Deprecated
- public void setInline(javax.el.ValueExpression inline) {
+ public void setInline(ValueExpression inline) {
this.inline = inline;
}
@@ -361,7 +368,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setReadonly(javax.el.ValueExpression readonly) {
+ public void setReadonly(ValueExpression readonly) {
this.readonly = readonly;
}
@@ -370,7 +377,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute()
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setDisabled(javax.el.ValueExpression disabled) {
+ public void setDisabled(ValueExpression disabled) {
this.disabled = disabled;
}
@@ -381,7 +388,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setRequired(javax.el.ValueExpression required) {
+ public void setRequired(ValueExpression required) {
this.required = required;
}
@@ -390,10 +397,20 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setTip(javax.el.ValueExpression tip) {
+ public void setTip(ValueExpression tip) {
this.tip = tip;
}
+ /**
+ * Displays a short text in the input field, that describes the meaning of this field.
+ * This is part of HTML 5, the theme should emulate the behaviour, when the browser doesn't support it.
+ */
+ @TagAttribute
+ @UIComponentTagAttribute()
+ public void setPlaceholder(ValueExpression placeholder) {
+ this.placeholder = placeholder;
+ }
+
/**
* The width for the label component. Default: 'auto'.
* This value is used in the gridLayouts columns attribute.
@@ -401,7 +418,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setLabelWidth(javax.el.ValueExpression labelWidth) {
+ public void setLabelWidth(ValueExpression labelWidth) {
this.labelWidth = labelWidth;
}
@@ -411,13 +428,13 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.String[]", defaultValue = "none")
- public void setMarkup(javax.el.ValueExpression markup) {
+ public void setMarkup(ValueExpression markup) {
this.markup = markup;
}
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Integer")
- public void setTabIndex(javax.el.ValueExpression tabIndex) {
+ public void setTabIndex(ValueExpression tabIndex) {
this.tabIndex = tabIndex;
}
@@ -426,7 +443,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setValidatorMessage(javax.el.ValueExpression validatorMessage) {
+ public void setValidatorMessage(ValueExpression validatorMessage) {
this.validatorMessage = validatorMessage;
}
@@ -435,7 +452,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setConverterMessage(javax.el.ValueExpression converterMessage) {
+ public void setConverterMessage(ValueExpression converterMessage) {
this.converterMessage = converterMessage;
}
@@ -444,7 +461,7 @@ public class DateExtensionTag extends To
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setRequiredMessage(javax.el.ValueExpression requiredMessage) {
+ public void setRequiredMessage(ValueExpression requiredMessage) {
this.requiredMessage = requiredMessage;
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-extension/tobago-taglib-extension/src/main/java-jsf-1.2/org/apache/myfaces/tobago/internal/taglib/extension/InExtensionTag.java Mon Sep 23 15:52:43 2013
@@ -28,6 +28,8 @@ import org.apache.myfaces.tobago.interna
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.el.MethodExpression;
+import javax.el.ValueExpression;
import javax.servlet.jsp.JspException;
/**
@@ -52,29 +54,30 @@ import javax.servlet.jsp.JspException;
@ExtensionTag(baseClassName = "org.apache.myfaces.tobago.internal.taglib.InTag")
public class InExtensionTag extends TobagoExtensionBodyTagSupport {
- private javax.el.ValueExpression binding;
- private javax.el.ValueExpression converter;
- private javax.el.MethodExpression validator;
- private javax.el.ValueExpression disabled;
- private javax.el.ValueExpression focus;
- private javax.el.ValueExpression label;
- private javax.el.ValueExpression password;
- private javax.el.ValueExpression readonly;
- private javax.el.ValueExpression rendered;
- private javax.el.ValueExpression required;
- private javax.el.ValueExpression tip;
- private javax.el.ValueExpression value;
- private javax.el.MethodExpression valueChangeListener;
- private javax.el.ValueExpression onchange;
- private javax.el.MethodExpression suggestMethod;
- private javax.el.ValueExpression suggestMinChars;
- private javax.el.ValueExpression suggestDelay;
- private javax.el.ValueExpression markup;
- private javax.el.ValueExpression labelWidth;
- private javax.el.ValueExpression tabIndex;
- private javax.el.ValueExpression validatorMessage;
- private javax.el.ValueExpression converterMessage;
- private javax.el.ValueExpression requiredMessage;
+ private ValueExpression binding;
+ private ValueExpression converter;
+ private MethodExpression validator;
+ private ValueExpression disabled;
+ private ValueExpression focus;
+ private ValueExpression label;
+ private ValueExpression password;
+ private ValueExpression readonly;
+ private ValueExpression rendered;
+ private ValueExpression required;
+ private ValueExpression tip;
+ private ValueExpression placeholder;
+ private ValueExpression value;
+ private MethodExpression valueChangeListener;
+ private ValueExpression onchange;
+ private MethodExpression suggestMethod;
+ private ValueExpression suggestMinChars;
+ private ValueExpression suggestDelay;
+ private ValueExpression markup;
+ private ValueExpression labelWidth;
+ private ValueExpression tabIndex;
+ private ValueExpression validatorMessage;
+ private ValueExpression converterMessage;
+ private ValueExpression requiredMessage;
private String fieldId;
private LabelExtensionTag labelTag;
@@ -115,6 +118,9 @@ public class InExtensionTag extends Toba
if (valueChangeListener != null) {
inTag.setValueChangeListener(valueChangeListener);
}
+ if (placeholder != null) {
+ inTag.setPlaceholder(placeholder);
+ }
if (label != null) {
inTag.setLabel(label);
}
@@ -203,6 +209,7 @@ public class InExtensionTag extends Toba
rendered = null;
required = null;
tip = null;
+ placeholder = null;
value = null;
valueChangeListener = null;
onchange = null;
@@ -225,7 +232,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(defaultValue = "none", type = "java.lang.String[]")
- public void setMarkup(javax.el.ValueExpression markup) {
+ public void setMarkup(ValueExpression markup) {
this.markup = markup;
}
@@ -234,7 +241,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Object")
- public void setValue(javax.el.ValueExpression value) {
+ public void setValue(ValueExpression value) {
this.value = value;
}
@@ -251,7 +258,7 @@ public class InExtensionTag extends Toba
type = {},
expression = DynamicExpression.METHOD_BINDING_REQUIRED,
methodSignature = "javax.faces.event.ValueChangeEvent")
- public void setValueChangeListener(javax.el.MethodExpression valueChangeListener) {
+ public void setValueChangeListener(MethodExpression valueChangeListener) {
this.valueChangeListener = valueChangeListener;
}
@@ -261,7 +268,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setLabel(javax.el.ValueExpression label) {
+ public void setLabel(ValueExpression label) {
this.label = label;
}
@@ -270,7 +277,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setFocus(javax.el.ValueExpression focus) {
+ public void setFocus(ValueExpression focus) {
this.focus = focus;
}
@@ -280,7 +287,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "javax.faces.component.UIComponent")
- public void setBinding(javax.el.ValueExpression binding) {
+ public void setBinding(ValueExpression binding) {
this.binding = binding;
}
@@ -290,7 +297,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "true")
- public void setRendered(javax.el.ValueExpression rendered) {
+ public void setRendered(ValueExpression rendered) {
this.rendered = rendered;
}
@@ -306,7 +313,7 @@ public class InExtensionTag extends Toba
@TagAttribute
@UIComponentTagAttribute(type = "javax.faces.convert.Converter",
expression = DynamicExpression.VALUE_BINDING)
- public void setConverter(javax.el.ValueExpression converter) {
+ public void setConverter(ValueExpression converter) {
this.converter = converter;
}
@@ -315,7 +322,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setOnchange(javax.el.ValueExpression onchange) {
+ public void setOnchange(ValueExpression onchange) {
this.onchange = onchange;
}
@@ -330,7 +337,7 @@ public class InExtensionTag extends Toba
@UIComponentTagAttribute(type = {},
expression = DynamicExpression.METHOD_BINDING_REQUIRED,
methodSignature = "java.lang.String")
- public void setSuggestMethod(javax.el.MethodExpression suggestMethod) {
+ public void setSuggestMethod(MethodExpression suggestMethod) {
this.suggestMethod = suggestMethod;
}
@@ -341,7 +348,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Integer", defaultValue = "1")
- public void setSuggestMinChars(javax.el.ValueExpression suggestMinChars) {
+ public void setSuggestMinChars(ValueExpression suggestMinChars) {
this.suggestMinChars = suggestMinChars;
}
@@ -352,7 +359,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Integer", defaultValue = "300")
- public void setSuggestDelay(javax.el.ValueExpression suggestDelay) {
+ public void setSuggestDelay(ValueExpression suggestDelay) {
this.suggestDelay = suggestDelay;
}
@@ -366,7 +373,7 @@ public class InExtensionTag extends Toba
@UIComponentTagAttribute(type = {},
expression = DynamicExpression.METHOD_BINDING,
methodSignature = {"javax.faces.context.FacesContext", "javax.faces.component.UIComponent", "java.lang.Object"})
- public void setValidator(javax.el.MethodExpression validator) {
+ public void setValidator(MethodExpression validator) {
this.validator = validator;
}
@@ -376,7 +383,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setPassword(javax.el.ValueExpression password) {
+ public void setPassword(ValueExpression password) {
this.password = password;
}
@@ -385,7 +392,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setReadonly(javax.el.ValueExpression readonly) {
+ public void setReadonly(ValueExpression readonly) {
this.readonly = readonly;
}
@@ -394,7 +401,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute()
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setDisabled(javax.el.ValueExpression disabled) {
+ public void setDisabled(ValueExpression disabled) {
this.disabled = disabled;
}
@@ -405,7 +412,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute(type = "boolean", defaultValue = "false")
- public void setRequired(javax.el.ValueExpression required) {
+ public void setRequired(ValueExpression required) {
this.required = required;
}
@@ -414,24 +421,34 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setTip(javax.el.ValueExpression tip) {
+ public void setTip(ValueExpression tip) {
this.tip = tip;
}
/**
+ * Displays a short text in the input field, that describes the meaning of this field.
+ * This is part of HTML 5, the theme should emulate the behaviour, when the browser doesn't support it.
+ */
+ @TagAttribute
+ @UIComponentTagAttribute()
+ public void setPlaceholder(ValueExpression placeholder) {
+ this.placeholder = placeholder;
+ }
+
+ /**
* The width for the label component. Default: 'auto'.
* This value is used in the gridLayouts columns attribute.
* See gridLayout tag for valid values.
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setLabelWidth(javax.el.ValueExpression labelWidth) {
+ public void setLabelWidth(ValueExpression labelWidth) {
this.labelWidth = labelWidth;
}
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Integer")
- public void setTabIndex(javax.el.ValueExpression tabIndex) {
+ public void setTabIndex(ValueExpression tabIndex) {
this.tabIndex = tabIndex;
}
@@ -440,7 +457,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setValidatorMessage(javax.el.ValueExpression validatorMessage) {
+ public void setValidatorMessage(ValueExpression validatorMessage) {
this.validatorMessage = validatorMessage;
}
@@ -449,7 +466,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setConverterMessage(javax.el.ValueExpression converterMessage) {
+ public void setConverterMessage(ValueExpression converterMessage) {
this.converterMessage = converterMessage;
}
@@ -458,7 +475,7 @@ public class InExtensionTag extends Toba
*/
@TagAttribute
@UIComponentTagAttribute()
- public void setRequiredMessage(javax.el.ValueExpression requiredMessage) {
+ public void setRequiredMessage(ValueExpression requiredMessage) {
this.requiredMessage = requiredMessage;
}
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/java/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/tag/InRenderer.java Mon Sep 23 15:52:43 2013
@@ -91,6 +91,8 @@ public class InRenderer extends InputRen
+ "'");
}
final String type = password ? HtmlInputTypes.PASSWORD : HtmlInputTypes.TEXT;
+ final boolean readonly = ComponentUtils.getBooleanAttribute(input, Attributes.READONLY);
+ final boolean disabled = ComponentUtils.getBooleanAttribute(input, Attributes.DISABLED);
// Todo: check for valid binding
boolean renderAjaxSuggest = false;
@@ -120,8 +122,8 @@ public class InRenderer extends InputRen
if (maxLength > 0) {
writer.writeAttribute(HtmlAttributes.MAXLENGTH, maxLength);
}
- writer.writeAttribute(HtmlAttributes.READONLY, ComponentUtils.getBooleanAttribute(input, Attributes.READONLY));
- writer.writeAttribute(HtmlAttributes.DISABLED, ComponentUtils.getBooleanAttribute(input, Attributes.DISABLED));
+ writer.writeAttribute(HtmlAttributes.READONLY, readonly);
+ writer.writeAttribute(HtmlAttributes.DISABLED, disabled);
Integer tabIndex = input.getTabIndex();
if (tabIndex != null) {
writer.writeAttribute(HtmlAttributes.TABINDEX, tabIndex);
@@ -129,6 +131,11 @@ public class InRenderer extends InputRen
Style style = new Style(facesContext, input);
writer.writeStyleAttribute(style);
+ final String placeholder = input.getPlaceholder();
+ if (!disabled && !readonly && StringUtils.isNotBlank(placeholder)) {
+ writer.writeAttribute(HtmlAttributes.PLACEHOLDER, placeholder, true);
+ }
+
HtmlRendererUtils.renderDojoDndItem(component, writer, true);
writer.writeClassAttribute(Classes.create(input));
/*if (component instanceof AbstractUIInput) {
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-scarborough/src/main/resources/org/apache/myfaces/tobago/renderkit/html/scarborough/standard/style/style.css Mon Sep 23 15:52:43 2013
@@ -334,6 +334,13 @@ div.tobago-gridLayout-first-column {
border: 2px solid #ff0000;
}
+.tobago-in-placeholder {
+ position: absolute;
+ padding: 3px 4px;
+ color: #aaaaaa;
+ cursor: text;
+}
+
.tobago-in-suggestPopup {
position: absolute;
overflow: hidden;
Modified: myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js?rev=1525631&r1=1525630&r2=1525631&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js (original)
+++ myfaces/tobago/branches/tobago-1.5.x/tobago-theme/tobago-theme-standard/src/main/resources/org/apache/myfaces/tobago/renderkit/html/standard/standard/script/tobago-in.js Mon Sep 23 15:52:43 2013
@@ -339,3 +339,51 @@ Tobago.AutocompleterAjax.prototype.regis
object.closeSuggest(false);
});
};
+
+// placeholder --------------------------------------------------------------------------------------------------------
+
+// adding placeholder to the feature detection
+jQuery.support.placeholder = (function(){
+ return 'placeholder' in document.createElement('input');
+})();
+
+Tobago.In.initPlaceholder = function(elements) {
+ if (!jQuery.support.placeholder) {
+ var fields = Tobago.Utils.selectWidthJQuery(elements, "[placeholder]");
+ fields.each(function () {
+ jQuery(this)
+ .on("focus", function () {
+ var input = jQuery(this);
+ var placeholder = input.next(".tobago-in-placeholder");
+ placeholder.hide();
+ })
+ .on("blur", function () {
+ var input = jQuery(this);
+ var placeholder = input.next(".tobago-in-placeholder");
+ if (placeholder.size() == 0) {
+ // lazy init, create a new one
+ placeholder = input.after("<span/>").next();
+ placeholder.addClass("tobago-in-placeholder");
+ placeholder.text(input.attr("placeholder")); // the text
+ placeholder.css(
+ {
+ left: input.css("left"),
+ top: input.css("top")
+ }
+ );
+ placeholder.on("click", function(event) {
+ jQuery(this).prev().focus();
+ });
+ }
+ if (input.val() == "") {
+ // xxx why this doesn't work?
+ // placeholder.show();
+ placeholder.css("display", "block");
+ }
+ }).trigger("blur"); // for initialization
+ });
+ }
+};
+
+Tobago.registerListener(Tobago.In.initPlaceholder, Tobago.Phase.DOCUMENT_READY);
+Tobago.registerListener(Tobago.In.initPlaceholder, Tobago.Phase.AFTER_UPDATE);