X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=wicket%2Fcomponents%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fwicket%2Fbehavior%2FOnClickConfirmationBehavior.java;fp=wicket%2Fcomponents%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fwicket%2Fbehavior%2FOnClickConfirmationBehavior.java;h=671bf206f6731f641b938d849a9ebc68fe9754a8;hb=a23e0d23d8097450325b08b1c09ac4fffdde6671;hp=0000000000000000000000000000000000000000;hpb=0e4a81c45e8b594ebe0afdce6dd30ad89ea7eb13;p=utils diff --git a/wicket/components/src/main/java/org/wamblee/wicket/behavior/OnClickConfirmationBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/behavior/OnClickConfirmationBehavior.java new file mode 100644 index 00000000..671bf206 --- /dev/null +++ b/wicket/components/src/main/java/org/wamblee/wicket/behavior/OnClickConfirmationBehavior.java @@ -0,0 +1,57 @@ +/* + * Copyright 2005-2011 the original author or authors. + * + * Licensed 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.wamblee.wicket.behavior; + +import org.apache.wicket.AttributeModifier; +import org.apache.wicket.model.IModel; +import org.apache.wicket.model.Model; + +/** + * Attribute modifier to add onclick confirmation to buttons. + * + * @author Erik Brakkee + */ +public class OnClickConfirmationBehavior extends AttributeModifier { + + private static final String ATTRIBUTE = "onclick"; + + /** + * Constructs the behavior. + * @param aMsg Confirmation message. + */ + public OnClickConfirmationBehavior(String aMsg) { + this(new Model(aMsg)); + } + + /** + * Constructs the behavior. + * @param aMsgModel Confirmation message. + */ + public OnClickConfirmationBehavior(IModel aMsgModel) { + super(ATTRIBUTE, true, aMsgModel); + } + + @Override + protected String newValue(String aCurrentValue, String aReplacementValue) { + String value = "var conf = confirm('" + aReplacementValue + "'); " + + "if (!conf) return false; "; + if (aCurrentValue != null) { + return value + aCurrentValue; + } + return value; + } + +}