Author: gseitz
Date: Sun Nov 4 13:59:49 2007
New Revision: 591847
URL: http://svn.apache.org/viewvc?rev=591847&view=rev
Log:
disable label (and thus LabelAjaxBehavior) in onBeforeRender according to
isEnabled&&isEnableAllowed of AjaxEditableLabel
added tests for AjaxEditableLabel
Added:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html
(with props)
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java
(with props)
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java
(with props)
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
Modified:
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java?rev=591847&r1=591846&r2=591847&view=diff
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
(original)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabel.java
Sun Nov 4 13:59:49 2007
@@ -93,18 +93,17 @@
{
super.onComponentTag(tag);
final String saveCall = "{" +
-
generateCallbackScript("wicketAjaxGet('" + getCallbackUrl() +
-
"&save=true&'+this.name+'='+wicketEncode(this.value)") +
- "; return false;}";
+ generateCallbackScript("wicketAjaxGet('" +
getCallbackUrl() +
+
"&save=true&'+this.name+'='+wicketEncode(this.value)") + "; return false;}";
final String cancelCall = "{" +
-
generateCallbackScript("wicketAjaxGet('" + getCallbackUrl() + "&save=false'") +
- "; return false;}";
+ generateCallbackScript("wicketAjaxGet('" +
getCallbackUrl() + "&save=false'") +
+ "; return false;}";
final String keypress = "var kc=wicketKeyCode(event);
if (kc==27) " + cancelCall +
- " else if (kc!=13) { return true; }
else " + saveCall;
+ " else if (kc!=13) { return true; } else " +
saveCall;
tag.put("onblur", saveCall);
tag.put("onkeypress", keypress);
@@ -115,7 +114,7 @@
{
RequestCycle requestCycle = RequestCycle.get();
boolean save =
Boolean.valueOf(requestCycle.getRequest().getParameter("save"))
- .booleanValue();
+ .booleanValue();
if (save)
{
@@ -334,6 +333,7 @@
{
initLabelAndEditor(getParentModel());
}
+ label.setEnabled(isEnableAllowed() && isEnabled());
}
/**
@@ -364,9 +364,9 @@
// put focus on the textfield and stupid explorer hack to move
the
// caret to the end
target.appendJavascript("{ var el=wicketGet('" +
editor.getMarkupId() + "');" +
- " if (el.createTextRange) { " +
- " var v = el.value; var r =
el.createTextRange(); " +
- " r.moveStart('character', v.length);
r.select(); } }");
+ " if (el.createTextRange) { " +
+ " var v = el.value; var r = el.createTextRange(); "
+
+ " r.moveStart('character', v.length); r.select(); }
}");
target.focusComponent(editor);
}
@@ -382,7 +382,7 @@
if (errorMessage instanceof String)
{
target.appendJavascript("window.status='" +
-
JavascriptUtils.escapeQuotes((String)errorMessage) + "';");
+
JavascriptUtils.escapeQuotes((String)errorMessage) + "';");
}
String editorMarkupId = editor.getMarkupId();
target.appendJavascript(editorMarkupId + ".select();");
@@ -437,13 +437,13 @@
{
Component parent = getParent();
String msg = "No model found for this component, either
pass one explicitly or "
- + "make sure an inheritable model is
available.";
+ + "make sure an inheritable model is
available.";
if (parent == null)
{
msg += " This component is not added to a
parent yet, so if this component "
- + "is supposed to use the model
of the parent (e.g. when it uses a "
- + "compound property model),
add it first before further configuring "
- + "the component calling
methods like e.g. setType and addValidator.";
+ + "is supposed to use the model of the
parent (e.g. when it uses a "
+ + "compound property model), add it
first before further configuring "
+ + "the component calling methods like
e.g. setType and addValidator.";
}
throw new IllegalStateException(msg);
}
Added:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html?rev=591847&view=auto
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html
(added)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html
Sun Nov 4 13:59:49 2007
@@ -0,0 +1,22 @@
+<!--
+ 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.
+-->
+<html>
+<body>
+ <div wicket:id="ajaxLabel"></div>
+ <a wicket:id="toggle">toggle</a>
+</body>
+</html>
\ No newline at end of file
Propchange:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.html
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java?rev=591847&view=auto
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java
(added)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java
Sun Nov 4 13:59:49 2007
@@ -0,0 +1,51 @@
+/*
+ * 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.wicket.extensions.ajax.markup.html;
+
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.model.Model;
+
+/**
+ * @author Gerolf Seitz
+ */
+public class AjaxEditableLabelPage extends WebPage
+{
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * Construct.
+ */
+ public AjaxEditableLabelPage()
+ {
+ final AjaxEditableLabel ajaxLabel = new
AjaxEditableLabel("ajaxLabel",
+ new Model("ajaxTest"));
+ add(ajaxLabel);
+ add(new AjaxLink("toggle")
+ {
+ private static final long serialVersionUID = 1L;
+
+ public void onClick(AjaxRequestTarget target)
+ {
+ ajaxLabel.setEnabled(!ajaxLabel.isEnabled());
+ target.addComponent(ajaxLabel);
+ }
+ });
+ }
+
+}
Propchange:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableLabelPage.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java?rev=591847&view=auto
==============================================================================
---
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java
(added)
+++
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java
Sun Nov 4 13:59:49 2007
@@ -0,0 +1,97 @@
+/*
+ * 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.wicket.extensions.ajax.markup.html;
+
+import org.apache.wicket.Page;
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.behavior.AbstractAjaxBehavior;
+
+/**
+ * Tests for [EMAIL PROTECTED] AjaxEditableLabel}
+ *
+ * @author Gerolf Seitz
+ */
+public class AjaxEditableTest extends WicketTestCase
+{
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
tester.getApplication().getMarkupSettings().setStripWicketTags(false);
+ tester.startPage(AjaxEditableLabelPage.class);
+ tester.assertRenderedPage(AjaxEditableLabelPage.class);
+ }
+
+
+ /**
+ * Tests default AjaxEditableLabel behavior
+ */
+ public void testAjaxEditableLabel()
+ {
+ Page page = tester.getLastRenderedPage();
+ AjaxEditableLabel ajaxLabel =
(AjaxEditableLabel)page.get("ajaxLabel");
+
+ AbstractAjaxBehavior labelBehavior =
(AbstractAjaxBehavior)ajaxLabel.get("label")
+ .getBehaviors()
+ .get(0);
+ AbstractAjaxBehavior editorBehavior =
(AbstractAjaxBehavior)ajaxLabel.get("editor")
+ .getBehaviors()
+ .get(0);
+
+ // "click" on the label and check for valid visibility
+ tester.executeBehavior(labelBehavior);
+ tester.assertVisible("ajaxLabel:editor");
+ tester.assertInvisible("ajaxLabel:label");
+
+ // "leave" the editor and check for valid visibility
+ tester.executeBehavior(editorBehavior);
+ tester.assertInvisible("ajaxLabel:editor");
+ tester.assertVisible("ajaxLabel:label");
+ }
+
+ /**
+ * Tests whether disabling/enabling an AjaxEditableLabel also
disables/enables the
+ * <code>LabelBehavior</code>
+ */
+ public void testDisabledAjaxEditableLabel()
+ {
+ Page page = tester.getLastRenderedPage();
+ AjaxEditableLabel ajaxLabel =
(AjaxEditableLabel)page.get("ajaxLabel");
+ AjaxLink toggle = (AjaxLink)page.get("toggle");
+
+ AbstractAjaxBehavior toggleBehavior =
(AbstractAjaxBehavior)toggle.getBehaviors().get(0);
+
+ // check for correct rendering
+ tester.assertInvisible("ajaxLabel:editor");
+ tester.assertVisible("ajaxLabel:label");
+
+ // disable ajaxLabel
+ tester.executeBehavior(toggleBehavior);
+
+ // check for the *absence* of the ajax onclick call
+ String markup =
tester.getTagById(ajaxLabel.getMarkupId()).getMarkup();
+ assertFalse(markup.matches(".*onclick=\"var
wcall=wicketAjaxGet.*"));
+
+ // enable ajaxLabel
+ tester.executeBehavior(toggleBehavior);
+
+ // check for the *presence* of the ajax onclick call
+ markup = tester.getTagById(ajaxLabel.getMarkupId()).getMarkup();
+ assertTrue(markup.matches(".*onclick=\"var
wcall=wicketAjaxGet.*"));
+ }
+}
\ No newline at end of file
Propchange:
wicket/trunk/jdk-1.4/wicket-extensions/src/test/java/org/apache/wicket/extensions/ajax/markup/html/AjaxEditableTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain