javadoc done
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3e9b8351 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3e9b8351 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3e9b8351 Branch: refs/heads/master Commit: 3e9b83519507f84eb440c81fd64eb2ca6edd3ba4 Parents: cbae4e0 Author: Michael Mosmann <[email protected]> Authored: Thu Mar 7 00:27:06 2013 +0100 Committer: Michael Mosmann <[email protected]> Committed: Thu Mar 7 00:27:06 2013 +0100 ---------------------------------------------------------------------- .../wicket/ajax/AbstractDefaultAjaxBehavior.java | 67 +++-- .../wicket/ajax/attributes/AjaxAttributeName.java | 231 +++++++++++++++ .../ajax/attributes/AjaxRequestAttributes.java | 55 ---- .../ajax/AbstractDefaultAjaxBehaviorTest.java | 16 +- 4 files changed, 280 insertions(+), 89 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/3e9b8351/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java index a33b736..cd2b1d8 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehavior.java @@ -21,6 +21,7 @@ import java.util.List; import org.apache.wicket.Component; import org.apache.wicket.Page; import org.apache.wicket.WicketRuntimeException; +import org.apache.wicket.ajax.attributes.AjaxAttributeName; import org.apache.wicket.ajax.attributes.AjaxCallListener; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method; @@ -219,41 +220,41 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior try { - attributesJson.put(AjaxRequestAttributes.J_URL, getCallbackUrl()); + attributesJson.put(AjaxAttributeName.URL.jsonName(), getCallbackUrl()); Method method = attributes.getMethod(); if (Method.POST == method) { - attributesJson.put(AjaxRequestAttributes.J_METHOD, method); + attributesJson.put(AjaxAttributeName.METHOD.jsonName(), method); } if (component instanceof Page == false) { String componentId = component.getMarkupId(); - attributesJson.put(AjaxRequestAttributes.J_MARKUP_ID, componentId); + attributesJson.put(AjaxAttributeName.MARKUP_ID.jsonName(), componentId); } String formId = attributes.getFormId(); if (Strings.isEmpty(formId) == false) { - attributesJson.put(AjaxRequestAttributes.J_FORM_ID, formId); + attributesJson.put(AjaxAttributeName.FORM_ID.jsonName(), formId); } if (attributes.isMultipart()) { - attributesJson.put(AjaxRequestAttributes.J_IS_MULTIPART, true); + attributesJson.put(AjaxAttributeName.IS_MULTIPART.jsonName(), true); } String submittingComponentId = attributes.getSubmittingComponentName(); if (Strings.isEmpty(submittingComponentId) == false) { - attributesJson.put(AjaxRequestAttributes.J_SUBMITTING_COMPONENT_NAME, + attributesJson.put(AjaxAttributeName.SUBMITTING_COMPONENT_NAME.jsonName(), submittingComponentId); } String indicatorId = findIndicatorId(); if (Strings.isEmpty(indicatorId) == false) { - attributesJson.put(AjaxRequestAttributes.J_INDICATOR_ID, indicatorId); + attributesJson.put(AjaxAttributeName.INDICATOR_ID.jsonName(), indicatorId); } for (IAjaxCallListener ajaxCallListener : attributes.getAjaxCallListeners()) @@ -262,33 +263,36 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior { CharSequence beforeHandler = ajaxCallListener.getBeforeHandler(component); appendListenerHandler(beforeHandler, attributesJson, - AjaxRequestAttributes.J_BEFORE_HANDLER, BEFORE_HANDLER_FUNCTION_TEMPLATE); + AjaxAttributeName.BEFORE_HANDLER.jsonName(), + BEFORE_HANDLER_FUNCTION_TEMPLATE); CharSequence beforeSendHandler = ajaxCallListener.getBeforeSendHandler(component); appendListenerHandler(beforeSendHandler, attributesJson, - AjaxRequestAttributes.J_BEFORE_SEND_HANDLER, + AjaxAttributeName.BEFORE_SEND_HANDLER.jsonName(), BEFORE_SEND_HANDLER_FUNCTION_TEMPLATE); CharSequence afterHandler = ajaxCallListener.getAfterHandler(component); appendListenerHandler(afterHandler, attributesJson, - AjaxRequestAttributes.J_AFTER_HANDLER, AFTER_HANDLER_FUNCTION_TEMPLATE); + AjaxAttributeName.AFTER_HANDLER.jsonName(), AFTER_HANDLER_FUNCTION_TEMPLATE); CharSequence successHandler = ajaxCallListener.getSuccessHandler(component); appendListenerHandler(successHandler, attributesJson, - AjaxRequestAttributes.J_SUCCESS_HANDLER, SUCCESS_HANDLER_FUNCTION_TEMPLATE); + AjaxAttributeName.SUCCESS_HANDLER.jsonName(), + SUCCESS_HANDLER_FUNCTION_TEMPLATE); CharSequence failureHandler = ajaxCallListener.getFailureHandler(component); appendListenerHandler(failureHandler, attributesJson, - AjaxRequestAttributes.J_FAILURE_HANDLER, FAILURE_HANDLER_FUNCTION_TEMPLATE); + AjaxAttributeName.FAILURE_HANDLER.jsonName(), + FAILURE_HANDLER_FUNCTION_TEMPLATE); CharSequence completeHandler = ajaxCallListener.getCompleteHandler(component); appendListenerHandler(completeHandler, attributesJson, - AjaxRequestAttributes.J_COMPLETE_HANDLER, + AjaxAttributeName.COMPLETE_HANDLER.jsonName(), COMPLETE_HANDLER_FUNCTION_TEMPLATE); CharSequence precondition = ajaxCallListener.getPrecondition(component); appendListenerHandler(precondition, attributesJson, - AjaxRequestAttributes.J_PRECONDITION, PRECONDITION_FUNCTION_TEMPLATE); + AjaxAttributeName.PRECONDITION.jsonName(), PRECONDITION_FUNCTION_TEMPLATE); } } @@ -296,7 +300,7 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior if (extraParameters.length() > 0) { - attributesJson.put(AjaxRequestAttributes.J_EXTRA_PARAMETERS, extraParameters); + attributesJson.put(AjaxAttributeName.EXTRA_PARAMETERS.jsonName(), extraParameters); } List<CharSequence> dynamicExtraParameters = attributes.getDynamicExtraParameters(); @@ -307,73 +311,73 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior String func = String.format(DYNAMIC_PARAMETER_FUNCTION_TEMPLATE, dynamicExtraParameter); JsonFunction function = new JsonFunction(func); - attributesJson.append(AjaxRequestAttributes.J_DYNAMIC_PARAMETER_FUNCTION, + attributesJson.append(AjaxAttributeName.DYNAMIC_PARAMETER_FUNCTION.jsonName(), function); } } if (attributes.isAsynchronous() == false) { - attributesJson.put(AjaxRequestAttributes.J_IS_ASYNC, false); + attributesJson.put(AjaxAttributeName.IS_ASYNC.jsonName(), false); } String[] eventNames = attributes.getEventNames(); if (eventNames.length == 1) { - attributesJson.put(AjaxRequestAttributes.J_EVENT_NAME, eventNames[0]); + attributesJson.put(AjaxAttributeName.EVENT_NAME.jsonName(), eventNames[0]); } else { for (String eventName : eventNames) { - attributesJson.append(AjaxRequestAttributes.J_EVENT_NAME, eventName); + attributesJson.append(AjaxAttributeName.EVENT_NAME.jsonName(), eventName); } } AjaxChannel channel = attributes.getChannel(); if (channel != null) { - attributesJson.put(AjaxRequestAttributes.J_CHANNEL, channel); + attributesJson.put(AjaxAttributeName.CHANNEL.jsonName(), channel); } if (attributes.isAllowDefault()) { - attributesJson.put(AjaxRequestAttributes.J_IS_ALLOW_DEFAULT, true); + attributesJson.put(AjaxAttributeName.IS_ALLOW_DEFAULT.jsonName(), true); } Duration requestTimeout = attributes.getRequestTimeout(); if (requestTimeout != null) { - attributesJson.put(AjaxRequestAttributes.J_REQUEST_TIMEOUT, + attributesJson.put(AjaxAttributeName.REQUEST_TIMEOUT.jsonName(), requestTimeout.getMilliseconds()); } boolean wicketAjaxResponse = attributes.isWicketAjaxResponse(); if (wicketAjaxResponse == false) { - attributesJson.put(AjaxRequestAttributes.J_IS_WICKET_AJAX_RESPONSE, false); + attributesJson.put(AjaxAttributeName.IS_WICKET_AJAX_RESPONSE.jsonName(), false); } String dataType = attributes.getDataType(); if (AjaxRequestAttributes.XML_DATA_TYPE.equals(dataType) == false) { - attributesJson.put(AjaxRequestAttributes.J_DATATYPE, dataType); + attributesJson.put(AjaxAttributeName.DATATYPE.jsonName(), dataType); } ThrottlingSettings throttlingSettings = attributes.getThrottlingSettings(); if (throttlingSettings != null) { JSONObject throttlingSettingsJson = new JSONObject(); - throttlingSettingsJson.put(AjaxRequestAttributes.J_THROTTLING_ID, + throttlingSettingsJson.put(AjaxAttributeName.THROTTLING_ID.jsonName(), throttlingSettings.getId()); - throttlingSettingsJson.put(AjaxRequestAttributes.J_THROTTLING_DELAY, + throttlingSettingsJson.put(AjaxAttributeName.THROTTLING_DELAY.jsonName(), throttlingSettings.getDelay().getMilliseconds()); if (throttlingSettings.getPostponeTimerOnUpdate()) { throttlingSettingsJson.put( - AjaxRequestAttributes.J_THROTTLING_POSTPONE_ON_UPDATE, true); + AjaxAttributeName.THROTTLING_POSTPONE_ON_UPDATE.jsonName(), true); } - attributesJson.put(AjaxRequestAttributes.J_THROTTLING, throttlingSettingsJson); + attributesJson.put(AjaxAttributeName.THROTTLING.jsonName(), throttlingSettingsJson); } postprocessConfiguration(attributesJson, component); @@ -519,11 +523,10 @@ public abstract class AbstractDefaultAjaxBehavior extends AbstractAjaxBehavior } sb.append("};\n"); if (attributes.getExtraParameters().isEmpty()) - sb.append("attrs." + AjaxRequestAttributes.J_EXTRA_PARAMETERS + " = params;\n"); + sb.append("attrs." + AjaxAttributeName.EXTRA_PARAMETERS + " = params;\n"); else - sb.append("attrs." + AjaxRequestAttributes.J_EXTRA_PARAMETERS + - " = Wicket.merge(attrs." + AjaxRequestAttributes.J_EXTRA_PARAMETERS + - ", params);\n"); + sb.append("attrs." + AjaxAttributeName.EXTRA_PARAMETERS + " = Wicket.merge(attrs." + + AjaxAttributeName.EXTRA_PARAMETERS + ", params);\n"); sb.append("Wicket.Ajax.ajax(attrs);\n"); return sb; } http://git-wip-us.apache.org/repos/asf/wicket/blob/3e9b8351/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java b/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java new file mode 100644 index 0000000..d57b995 --- /dev/null +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxAttributeName.java @@ -0,0 +1,231 @@ +/* + * 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.ajax.attributes; + +import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior; + +/** + * ajax attribute names + * + * @author mosmann + */ +public enum AjaxAttributeName { + + /** + * throttling settings (tr) + * + * @see AjaxRequestAttributes#getThrottlingSettings() + */ + THROTTLING("tr"), + + /** + * throttling - postpone timer on upate (p) + * + * @see ThrottlingSettings#getPostponeTimerOnUpdate() + */ + THROTTLING_POSTPONE_ON_UPDATE("p"), + + /** + * throttling - delay (d) + * + * @see ThrottlingSettings#getDelay() + */ + THROTTLING_DELAY("d"), + + /** + * throttling - id (id) + * + * @see ThrottlingSettings#getId() + */ + THROTTLING_ID("id"), + + /** + * datatype (dt) + * + * @see AjaxRequestAttributes#getDataType() + */ + DATATYPE("dt"), + + /** + * is wicket ajax response (wr) + * + * @see AjaxRequestAttributes#isWicketAjaxResponse() + */ + IS_WICKET_AJAX_RESPONSE("wr"), + + /** + * request timeout (rt) + * + * @see AjaxRequestAttributes#getRequestTimeout() + */ + REQUEST_TIMEOUT("rt"), + + /** + * allow default + * + * @see AjaxRequestAttributes#isAllowDefault() + */ + IS_ALLOW_DEFAULT("ad"), + + /** + * channel (ch) + * + * @see AjaxRequestAttributes#getChannel() + */ + CHANNEL("ch"), + + /** + * event name (e) + * + * @see AjaxRequestAttributes#getEventNames() + */ + EVENT_NAME("e"), + + /** + * is async (async) + * + * @see AjaxRequestAttributes#isAsynchronous() + */ + IS_ASYNC("async"), + + /** + * dynamic parameters (dep) + * + * @see AjaxRequestAttributes#getDynamicExtraParameters() + */ + DYNAMIC_PARAMETER_FUNCTION("dep"), + + /** + * extra parameters (ep) + * + * @see AjaxRequestAttributes#getExtraParameters() + */ + EXTRA_PARAMETERS("ep"), + + /** + * precondition (pre) + * + * @see AjaxCallListener#getPrecondition(org.apache.wicket.Component) + */ + PRECONDITION("pre"), + + /** + * complete handler (coh) + * + * @see AjaxCallListener#getCompleteHandler(org.apache.wicket.Component) + */ + COMPLETE_HANDLER("coh"), + + /** + * failure handler (fh) + * + * @see AjaxCallListener#getFailureHandler(org.apache.wicket.Component) + */ + FAILURE_HANDLER("fh"), + + /** + * success handler (sh) + * + * @see AjaxCallListener#getSuccessHandler(org.apache.wicket.Component) + */ + SUCCESS_HANDLER("sh"), + + /** + * after handler (ah) + * + * @see AjaxCallListener#getAfterHandler(org.apache.wicket.Component) + */ + AFTER_HANDLER("ah"), + + /** + * before send handler (bsh) + * + * @see AjaxCallListener#getBeforeSendHandler(org.apache.wicket.Component) + */ + BEFORE_SEND_HANDLER("bsh"), + + /** + * before handler (bh) + * + * @see AjaxCallListener#getBeforeHandler(org.apache.wicket.Component) + */ + BEFORE_HANDLER("bh"), + + /** + * the indicator id, if any found (i) + * + * @see AbstractDefaultAjaxBehavior#findIndicatorId() + */ + INDICATOR_ID("i"), + + /** + * submitting component name (sc) + * + * @see AjaxRequestAttributes#getSubmittingComponentName() + */ + SUBMITTING_COMPONENT_NAME("sc"), + + /** + * is multipart (mp) + * + * @see AjaxRequestAttributes#isMultipart() + */ + IS_MULTIPART("mp"), + + /** + * form id (f) + * + * @see AjaxRequestAttributes#getFormId() + */ + FORM_ID("f"), + + /** + * markup id of behavior attached component (c) + * + * @see AbstractDefaultAjaxBehavior#renderAjaxAttributes(org.apache.wicket.Component) + */ + MARKUP_ID("c"), + + /** + * http method (m) + * + * @see AjaxRequestAttributes#getMethod() + */ + METHOD("m"), + + /** + * @see AbstractDefaultAjaxBehavior#getCallbackUrl(); + */ + URL("u"); + + private final String jsonName; + + private AjaxAttributeName(String jsonName) + { + this.jsonName = jsonName; + } + + /** + * the json parameter name + * + * @return as string + */ + public String jsonName() + { + return jsonName; + } +} http://git-wip-us.apache.org/repos/asf/wicket/blob/3e9b8351/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxRequestAttributes.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxRequestAttributes.java b/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxRequestAttributes.java index a8a1e6b..8cb4759 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxRequestAttributes.java +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/attributes/AjaxRequestAttributes.java @@ -32,61 +32,6 @@ import org.apache.wicket.util.time.Duration; */ public final class AjaxRequestAttributes { - public static final String J_THROTTLING = "tr"; - - public static final String J_THROTTLING_POSTPONE_ON_UPDATE = "p"; - - public static final String J_THROTTLING_DELAY = "d"; - - public static final String J_THROTTLING_ID = "id"; - - public static final String J_DATATYPE = "dt"; - - public static final String J_IS_WICKET_AJAX_RESPONSE = "wr"; - - public static final String J_REQUEST_TIMEOUT = "rt"; - - public static final String J_IS_ALLOW_DEFAULT = "ad"; - - public static final String J_CHANNEL = "ch"; - - public static final String J_EVENT_NAME = "e"; - - public static final String J_IS_ASYNC = "async"; - - public static final String J_DYNAMIC_PARAMETER_FUNCTION = "dep"; - - public static final String J_EXTRA_PARAMETERS = "ep"; - - public static final String J_PRECONDITION = "pre"; - - public static final String J_COMPLETE_HANDLER = "coh"; - - public static final String J_FAILURE_HANDLER = "fh"; - - public static final String J_SUCCESS_HANDLER = "sh"; - - public static final String J_AFTER_HANDLER = "ah"; - - public static final String J_BEFORE_SEND_HANDLER = "bsh"; - - public static final String J_BEFORE_HANDLER = "bh"; - - public static final String J_INDICATOR_ID = "i"; - - public static final String J_SUBMITTING_COMPONENT_NAME = "sc"; - - public static final String J_IS_MULTIPART = "mp"; - - public static final String J_FORM_ID = "f"; - - public static final String J_MARKUP_ID = "c"; - - public static final String J_METHOD = "m"; - - public static final String J_URL = "u"; - - /** * The method to be used when submitting a form */ http://git-wip-us.apache.org/repos/asf/wicket/blob/3e9b8351/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java index 01714e0..4363836 100644 --- a/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java +++ b/wicket-core/src/test/java/org/apache/wicket/ajax/AbstractDefaultAjaxBehaviorTest.java @@ -17,6 +17,7 @@ package org.apache.wicket.ajax; import org.apache.wicket.Component; +import org.apache.wicket.ajax.attributes.AjaxAttributeName; import org.apache.wicket.ajax.attributes.AjaxCallListener; import org.apache.wicket.ajax.attributes.AjaxRequestAttributes; import org.junit.Assert; @@ -25,7 +26,7 @@ import org.mockito.Mockito; /** * Tests for AbstractDefaultAjaxBehavior - * + * * @since 6.0 */ public class AbstractDefaultAjaxBehaviorTest extends Assert @@ -65,7 +66,18 @@ public class AbstractDefaultAjaxBehaviorTest extends Assert CharSequence json = behavior.renderAjaxAttributes(component, attributes); - String expected = "{\"coh\":[function(attrs, jqXHR, textStatus){alert('Complete!');}],\"u\":\"some/url\",\"pre\":[function(attrs){return somePrecondition();}],\"fh\":[function(attrs, jqXHR, errorMessage, textStatus){alert('Failure!');}],\"bh\":[function(attrs){alert('Before!');}],\"sh\":[function(attrs, jqXHR, data, textStatus){alert('Success!');}],\"ah\":[function(attrs){alert('After!');}]}"; + String expected = "{\"" + AjaxAttributeName.COMPLETE_HANDLER.jsonName() + + "\":[function(attrs, jqXHR, textStatus){alert('Complete!');}],\"" + + AjaxAttributeName.URL.jsonName() + "\":\"some/url\",\"" + + AjaxAttributeName.PRECONDITION.jsonName() + + "\":[function(attrs){return somePrecondition();}],\"" + + AjaxAttributeName.FAILURE_HANDLER.jsonName() + + "\":[function(attrs, jqXHR, errorMessage, textStatus){alert('Failure!');}],\"" + + AjaxAttributeName.BEFORE_HANDLER.jsonName() + + "\":[function(attrs){alert('Before!');}],\"" + + AjaxAttributeName.SUCCESS_HANDLER.jsonName() + + "\":[function(attrs, jqXHR, data, textStatus){alert('Success!');}],\"" + + AjaxAttributeName.AFTER_HANDLER.jsonName() + "\":[function(attrs){alert('After!');}]}"; assertEquals(expected, json); } }
