From b3e34e51f70ece773a4c9c2fdfeceb0cdcdbc9f9 Mon Sep 17 00:00:00 2001 From: Erik Brakkee Date: Sat, 12 Feb 2011 15:01:10 +0000 Subject: [PATCH] New server side tooltip behavior added. --- .../behavior/AbstractTooltipBehavior.java | 68 +++++++++++++++++++ .../behavior/ServerTooltipBehavior.java | 53 +++++++++++++++ .../TitleAttributeTooltipBehavior.java | 43 +----------- .../wicket/behavior/wamblee-tooltip.js | 4 +- 4 files changed, 124 insertions(+), 44 deletions(-) create mode 100644 wicket/components/src/main/java/org/wamblee/wicket/behavior/AbstractTooltipBehavior.java create mode 100644 wicket/components/src/main/java/org/wamblee/wicket/behavior/ServerTooltipBehavior.java diff --git a/wicket/components/src/main/java/org/wamblee/wicket/behavior/AbstractTooltipBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/behavior/AbstractTooltipBehavior.java new file mode 100644 index 00000000..bc154208 --- /dev/null +++ b/wicket/components/src/main/java/org/wamblee/wicket/behavior/AbstractTooltipBehavior.java @@ -0,0 +1,68 @@ +/* + * Copyright 2005-2010 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.behavior.IBehavior; +import org.wamblee.wicket.jquery.AbstractJQueryBehavior; + +/** + * Abstract tooltip behavior providing common options for tooltips. + * + * @author Erik Brakkee + */ +public class AbstractTooltipBehavior extends AbstractJQueryBehavior { + + private String border; + private String padding; + private String background; + + public AbstractTooltipBehavior(String aFunction, IBehavior... aBehaviors) { + super(aFunction, aBehaviors); + } + + public AbstractTooltipBehavior border(String aValue) { + border = aValue; + return this; + } + + public AbstractTooltipBehavior padding(String aValue) { + padding = aValue; + return this; + } + + public AbstractTooltipBehavior background(String aValue) { + background = aValue; + return this; + } + + @Override + protected Object getConfigurationObject() { + return this; + } + + public String getBorder() { + return border; + } + + public String getPadding() { + return padding; + } + + public String getBackground() { + return background; + } + +} \ No newline at end of file diff --git a/wicket/components/src/main/java/org/wamblee/wicket/behavior/ServerTooltipBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/behavior/ServerTooltipBehavior.java new file mode 100644 index 00000000..9004ad6c --- /dev/null +++ b/wicket/components/src/main/java/org/wamblee/wicket/behavior/ServerTooltipBehavior.java @@ -0,0 +1,53 @@ +/* + * Copyright 2005-2010 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.behavior.HeaderContributor; +import org.apache.wicket.markup.html.JavascriptPackageResource; + +/** + * Tooltip behavior that adds tooltips based on the title attribute in an HTML + * document. The behavior may be attached to pages or components and applies to + * the element and its children to which it is applied. + * + * @author Erik Brakkee + * + */ +public class ServerTooltipBehavior extends AbstractTooltipBehavior { + + private static final String READY_FUNCTION = "org.wamblee.tooltip.serverside"; + + static final String SCRIPT = "wamblee-tooltip.js"; + + private static HeaderContributor BEHAVIOR = JavascriptPackageResource + .getHeaderContribution(ServerTooltipBehavior.class, SCRIPT); + + private String text; + + /** + * Constructs the tooltip. + * @param aText Text to add. + */ + public ServerTooltipBehavior(String aText) { + super(READY_FUNCTION, new SupportBehavior(), BEHAVIOR); + text = aText; + } + + public String getText() { + return text; + } + +} diff --git a/wicket/components/src/main/java/org/wamblee/wicket/behavior/TitleAttributeTooltipBehavior.java b/wicket/components/src/main/java/org/wamblee/wicket/behavior/TitleAttributeTooltipBehavior.java index da55e1f8..492f1701 100644 --- a/wicket/components/src/main/java/org/wamblee/wicket/behavior/TitleAttributeTooltipBehavior.java +++ b/wicket/components/src/main/java/org/wamblee/wicket/behavior/TitleAttributeTooltipBehavior.java @@ -15,13 +15,8 @@ */ package org.wamblee.wicket.behavior; -import org.apache.wicket.Component; -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.JQueryHeaderContributor; -import org.wamblee.wicket.jquery.AbstractJQueryBehavior; /** * Tooltip behavior that adds tooltips based on the title attribute in an HTML @@ -31,7 +26,7 @@ import org.wamblee.wicket.jquery.AbstractJQueryBehavior; * @author Erik Brakkee * */ -public class TitleAttributeTooltipBehavior extends AbstractJQueryBehavior { +public class TitleAttributeTooltipBehavior extends AbstractTooltipBehavior { private static final String READY_FUNCTION = "org.wamblee.tooltip.clientside"; @@ -40,44 +35,8 @@ public class TitleAttributeTooltipBehavior extends AbstractJQueryBehavior { private static HeaderContributor BEHAVIOR = JavascriptPackageResource .getHeaderContribution(TitleAttributeTooltipBehavior.class, SCRIPT); - private String border; - private String padding; - private String background; - public TitleAttributeTooltipBehavior() { super(READY_FUNCTION, new SupportBehavior(), BEHAVIOR); } - - public TitleAttributeTooltipBehavior border(String aValue) { - border = aValue; - return this; - } - - public TitleAttributeTooltipBehavior padding(String aValue) { - padding = aValue; - return this; - } - - public TitleAttributeTooltipBehavior background(String aValue) { - background = aValue; - return this; - } - - @Override - protected Object getConfigurationObject() { - return this; - } - - public String getBorder() { - return border; - } - - public String getPadding() { - return padding; - } - - public String getBackground() { - return background; - } } diff --git a/wicket/components/src/main/resources/org/wamblee/wicket/behavior/wamblee-tooltip.js b/wicket/components/src/main/resources/org/wamblee/wicket/behavior/wamblee-tooltip.js index 7773cb4a..016fa492 100644 --- a/wicket/components/src/main/resources/org/wamblee/wicket/behavior/wamblee-tooltip.js +++ b/wicket/components/src/main/resources/org/wamblee/wicket/behavior/wamblee-tooltip.js @@ -25,8 +25,8 @@ var options = $.extend({ delay : 500, - fadein : 500, - fadeout: 200, + fadein : 250, + fadeout: 100, border : "1px solid black", padding : "0.2em 0.5em 0.2em 0.5em", background : "yellow" -- 2.31.1