Kawai Wiki

Rev

Rev 99 | Rev 193 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package org.kawai.tag.kcode;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.PageContext;

import org.kawai.action.PageAction;
import org.kawai.model.Page;

public class PageLink implements KCode {
       
        @Override
        public boolean hasBody() {
                return false;
        }
       
        @Override
        public String getTag() {
                return "pageLink";
        }
       
        @Override
        public String process(PageContext pageContext, Map<String, String> attrs, String html) throws JspException {
               
                HttpServletRequest req = (HttpServletRequest) pageContext.getRequest();
               
                String name = attrs.get("name");
                if (name == null) throw new JspException("Name attribute is mandatory for tag pageLink!");

                String text = attrs.get("text");
                if (text == null) throw new JspException("Text attribute is mandatory for tag pageLink!");
               
                String linkClass = attrs.get("linkClass");
                String clickedClass = attrs.get("clickedClass");
               
                String sizeClass = attrs.get("class");
                if (sizeClass != null) {
                        linkClass = sizeClass;
                        clickedClass = sizeClass + "Clicked";
                }
               
                // check if we are displaying that page...
                Page page = (Page) pageContext.findAttribute(PageAction.BODY_COLUMN_KEY);
                if (page != null && page.getName().equals(name)) {
                        return "<span" + (clickedClass != null ? " class=\"" + clickedClass + "\"" : "") + ">" + text + "</span>";
                } else {
                        return "<a href=\"" + req.getContextPath() + "/Page.mtw?name=" + name + "\"" + (linkClass != null ? " class=\"" + linkClass + "\"" : "") + ">" + text + "</a>";
                }
        }
       
}