From 1c2bff27ff37ec2add7c2badac46647fd92b71df Mon Sep 17 00:00:00 2001 From: James Moger Date: Fri, 28 Feb 2014 18:27:40 -0500 Subject: Add an ajax text link and an icon ajax link --- .../com/gitblit/wicket/panels/IconAjaxLink.java | 47 ++++++++++++++++++++++ .../com/gitblit/wicket/panels/SimpleAjaxLink.html | 9 +++++ .../com/gitblit/wicket/panels/SimpleAjaxLink.java | 42 +++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 src/main/java/com/gitblit/wicket/panels/IconAjaxLink.java create mode 100644 src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.html create mode 100644 src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.java (limited to 'src/main/java/com/gitblit/wicket/panels') diff --git a/src/main/java/com/gitblit/wicket/panels/IconAjaxLink.java b/src/main/java/com/gitblit/wicket/panels/IconAjaxLink.java new file mode 100644 index 00000000..eb2288ba --- /dev/null +++ b/src/main/java/com/gitblit/wicket/panels/IconAjaxLink.java @@ -0,0 +1,47 @@ +/* + * Copyright 2014 gitblit.com. + * + * 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 com.gitblit.wicket.panels; + +import java.text.MessageFormat; + +import org.apache.wicket.Component; +import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.behavior.SimpleAttributeModifier; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.MarkupStream; +import org.apache.wicket.model.IModel; + +public abstract class IconAjaxLink extends AjaxLink { + + private static final long serialVersionUID = 1L; + + private final String iconClass; + + public IconAjaxLink(String wicketId, String iconClass, IModel model) { + super(wicketId, model); + this.iconClass = iconClass; + } + + @Override + protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { + replaceComponentTagBody(markupStream, openTag, MessageFormat.format(" {1}", iconClass, getModelObject().toString())); + } + + public void setNoFollow() { + Component c = get("link"); + c.add(new SimpleAttributeModifier("rel", "nofollow")); + } +} diff --git a/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.html b/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.html new file mode 100644 index 00000000..6f11efd6 --- /dev/null +++ b/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.html @@ -0,0 +1,9 @@ + + + +[link] + + \ No newline at end of file diff --git a/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.java b/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.java new file mode 100644 index 00000000..d7466522 --- /dev/null +++ b/src/main/java/com/gitblit/wicket/panels/SimpleAjaxLink.java @@ -0,0 +1,42 @@ +/* + * Copyright 2014 gitblit.com. + * + * 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 com.gitblit.wicket.panels; + +import org.apache.wicket.Component; +import org.apache.wicket.ajax.markup.html.AjaxLink; +import org.apache.wicket.behavior.SimpleAttributeModifier; +import org.apache.wicket.markup.ComponentTag; +import org.apache.wicket.markup.MarkupStream; +import org.apache.wicket.model.IModel; + +public abstract class SimpleAjaxLink extends AjaxLink { + + private static final long serialVersionUID = 1L; + + public SimpleAjaxLink(String wicketId, IModel model) { + super(wicketId, model); + } + + @Override + protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { + replaceComponentTagBody(markupStream, openTag, getModelObject().toString()); + } + + public void setNoFollow() { + Component c = get("link"); + c.add(new SimpleAttributeModifier("rel", "nofollow")); + } +} -- cgit v1.2.3