diff options
author | James Moger <james.moger@gitblit.com> | 2014-02-28 18:27:40 -0500 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-03-01 09:21:32 -0500 |
commit | 1c2bff27ff37ec2add7c2badac46647fd92b71df (patch) | |
tree | e445a45d2e21fa3d89e6deebd358348173c86cac /src/main/java/com | |
parent | c8a833a2ea7d03a5c29ebcd1cf7e2e05c96f3e70 (diff) | |
download | gitblit-1c2bff27ff37ec2add7c2badac46647fd92b71df.tar.gz gitblit-1c2bff27ff37ec2add7c2badac46647fd92b71df.zip |
Add an ajax text link and an icon ajax link
Diffstat (limited to 'src/main/java/com')
3 files changed, 98 insertions, 0 deletions
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<T> extends AjaxLink<T> { + + private static final long serialVersionUID = 1L; + + private final String iconClass; + + public IconAjaxLink(String wicketId, String iconClass, IModel<T> model) { + super(wicketId, model); + this.iconClass = iconClass; + } + + @Override + protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { + replaceComponentTagBody(markupStream, openTag, MessageFormat.format("<i class=\"{0}\"></i> {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 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" + xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.3-strict.dtd" + xml:lang="en" + lang="en"> +<wicket:panel> +<a href="#" wicket:id="link"><i wicket:id="icon" style="padding-right:5px;"></i><span wicket:id="label">[link]</span></a> +</wicket:panel> +</html>
\ 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<T> extends AjaxLink<T> { + + private static final long serialVersionUID = 1L; + + public SimpleAjaxLink(String wicketId, IModel<T> 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")); + } +} |