(no commit message)
authorErik Brakkee <erik@brakkee.org>
Sat, 28 Aug 2010 19:33:16 +0000 (19:33 +0000)
committerErik Brakkee <erik@brakkee.org>
Sat, 28 Aug 2010 19:33:16 +0000 (19:33 +0000)
wicket/components/src/main/java/org/wamblee/wicket/behavior/PreselectionBehavior.java

index 0ea11828bf552fbd5deba77b687233be31319ade..047b1eebd98510cfc1d3a9d6df9c8d9eee455ac2 100644 (file)
@@ -20,8 +20,8 @@ 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
@@ -35,41 +35,15 @@ import org.wamblee.wicket.jquery.JQueryUtils;
  * @author Erik Brakkee
  * 
  */
-public class PreselectionBehavior extends CompositeBehavior {
+public class PreselectionBehavior extends AbstractJQueryBehavior {
 
     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);
-    }
-
-    @Override
-    public void renderHead(IHeaderResponse aResponse) {
-        super.renderHead(aResponse);
-        String jsString = JQueryUtils.createReadyFunction("preselectSetup", component);
-        aResponse.renderJavascript(jsString, null);
+        super("preselectionSetup", new NamespaceBehavior(), PRESELECTION_BEHAVIOR);
     }
 
 }