You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by gs...@apache.org on 2008/05/07 11:00:27 UTC
svn commit: r654047 -
/wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
Author: gseitz
Date: Wed May 7 02:00:26 2008
New Revision: 654047
URL: http://svn.apache.org/viewvc?rev=654047&view=rev
Log:
WICKET-1590: use IChoiceRenderer (if available) for the Label, for real now
Modified:
wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
Modified: wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java
URL: http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java?rev=654047&r1=654046&r2=654047&view=diff
==============================================================================
--- wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java (original)
+++ wicket/branches/wicket-1.3.x/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableChoiceLabel.java Wed May 7 02:00:26 2008
@@ -22,6 +22,8 @@
import org.apache.wicket.Component;
import org.apache.wicket.MarkupContainer;
import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.apache.wicket.markup.html.form.FormComponent;
import org.apache.wicket.markup.html.form.IChoiceRenderer;
@@ -29,6 +31,8 @@
import org.apache.wicket.model.AbstractReadOnlyModel;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
+import org.apache.wicket.util.convert.IConverter;
+import org.apache.wicket.util.string.Strings;
/**
@@ -206,26 +210,47 @@
}
- protected Component newLabel(MarkupContainer parent, String componentId, final IModel model)
+ protected Component newLabel(MarkupContainer parent, String componentId, IModel model)
{
- IModel wrapper = new AbstractReadOnlyModel()
+ Label label = new Label(componentId, model)
{
private static final long serialVersionUID = 1L;
- public Object getObject()
+ public IConverter getConverter(Class type)
{
+ IConverter c = AjaxEditableChoiceLabel.this.getConverter(type);
+ return c != null ? c : super.getConverter(type);
+ }
+
+ protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
+ {
+ String displayValue = getModelObjectAsString();
if (renderer != null)
{
- return renderer.getDisplayValue(model.getObject());
+ Object displayObject = renderer.getDisplayValue(getModelObject());
+ Class objectClass = (displayObject == null ? null : displayObject.getClass());
+
+ if (objectClass != null && objectClass != String.class)
+ {
+ final IConverter converter = getConverter(objectClass);
+
+ displayValue = converter.convertToString(displayObject, getLocale());
+ }
+ }
+
+ if (Strings.isEmpty(displayValue))
+ {
+ replaceComponentTagBody(markupStream, openTag, defaultNullLabel());
}
else
{
- return model.getObject();
+ replaceComponentTagBody(markupStream, openTag, displayValue);
}
}
-
};
- return super.newLabel(parent, componentId, wrapper);
+ label.setOutputMarkupId(true);
+ label.add(new LabelAjaxBehavior(getLabelAjaxEvent()));
+ return label;
}
protected void onModelChanged()