X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=wicket%2Fcomponents%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fwicket%2Fbehavior%2FPreselectionBehavior.java;h=2a466c451bc77e799a5842f789471a1ded309370;hb=HEAD;hp=0ea11828bf552fbd5deba77b687233be31319ade;hpb=f8e52c2a9c6f35698eb6feb292290ea7c316f5e5;p=utils diff --git a/wicket/components/src/main/java/org/wamblee/wicket/behavior/PreselectionBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/behavior/PreselectionBehavior.java index 0ea11828..2a466c45 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/behavior/PreselectionBehavior.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/behavior/PreselectionBehavior.java @@ -20,14 +20,14 @@ import org.apache.wicket.Page; import org.apache.wicket.behavior.HeaderContributor; import org.apache.wicket.markup.html.IHeaderResponse; import org.apache.wicket.markup.html.JavascriptPackageResource; -import org.wamblee.wicket.jquery.JQueryBehavior; -import org.wamblee.wicket.jquery.JQueryUtils; +import org.wamblee.wicket.jquery.JQueryHeaderContributor; +import org.wamblee.wicket.jquery.AbstractJQueryBehavior; /** * Preselection behavior that preselects unaltered text in forms. When applied * to a certain component, the behavior is valid for all children of the * component. Therefore, it is possible to attach this behavior to any component, - * well as to a form or even individual fields in a form. It is not possible however to apply this + * well as to a form or even individual fields in a form. It is also possible to apply this * behavior to a page. The behavior applies * to text input fields and textareas. Upon focus, the text in the field is * selected if it it still identical to the default value. @@ -35,41 +35,16 @@ import org.wamblee.wicket.jquery.JQueryUtils; * @author Erik Brakkee * */ -public class PreselectionBehavior extends CompositeBehavior { +public class PreselectionBehavior extends AbstractJQueryBehavior { + + private static final String READY_FUNCTION = "org.wamblee.preselectionSetup"; static final String PRESELECT_SCRIPT = "wamblee-preselect.js"; - private static HeaderContributor CACHE = JavascriptPackageResource + private static HeaderContributor PRESELECTION_BEHAVIOR = JavascriptPackageResource .getHeaderContribution(PreselectionBehavior.class, PRESELECT_SCRIPT); - private Component component; - public PreselectionBehavior() { - super(new JQueryBehavior(), new NamespaceBehavior(), CACHE); - } - - @Override - public void bind(Component aComponent) { - if (component != null) { - throw new IllegalStateException( - "this kind of handler cannot be attached to " + - "multiple components; it is already attached to component " + - component + ", but component " + aComponent + - " wants to be attached too"); - } - if ( aComponent instanceof Page) { - throw new IllegalStateException("This behavior cannot be applied to a page: " + aComponent); - } - component = aComponent; - super.bind(aComponent); - aComponent.setOutputMarkupId(true); + super(READY_FUNCTION, new SupportBehavior(), PRESELECTION_BEHAVIOR); } - - @Override - public void renderHead(IHeaderResponse aResponse) { - super.renderHead(aResponse); - String jsString = JQueryUtils.createReadyFunction("preselectSetup", component); - aResponse.renderJavascript(jsString, null); - } - }