Author: bleny Date: 2011-11-14 16:26:09 +0100 (Mon, 14 Nov 2011) New Revision: 142 Url: http://nuiton.org/repositories/revision/nuiton-web/142 Log: #1808 Add a nuiton struts taglib . boilerplate code Added: trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/ trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpBean.java trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpTag.java trunk/nuiton-struts2/src/main/resources/META-INF/ trunk/nuiton-struts2/src/main/resources/META-INF/tld/ trunk/nuiton-struts2/src/main/resources/META-INF/tld/nuiton-tags.tld trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help-close.ftl trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help.ftl Modified: trunk/nuiton-struts2/pom.xml Modified: trunk/nuiton-struts2/pom.xml =================================================================== --- trunk/nuiton-struts2/pom.xml 2011-11-13 16:30:18 UTC (rev 141) +++ trunk/nuiton-struts2/pom.xml 2011-11-14 15:26:09 UTC (rev 142) @@ -56,6 +56,11 @@ </dependency> <dependency> + <groupId>javax.servlet.jsp</groupId> + <artifactId>jsp-api</artifactId> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> Added: trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpBean.java =================================================================== --- trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpBean.java (rev 0) +++ trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpBean.java 2011-11-14 15:26:09 UTC (rev 142) @@ -0,0 +1,50 @@ +package org.nuiton.web.struts2.taglib; + +import com.opensymphony.xwork2.util.ValueStack; +import org.apache.struts2.components.ClosingUIBean; +import org.apache.struts2.views.annotations.StrutsTag; +import org.apache.struts2.views.annotations.StrutsTagAttribute; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +@StrutsTag( + name="help", + tldTagClass="org.nuiton.web.struts2.taglib.HelpTag", + description="TODO", + allowDynamicAttributes=false) +public class HelpBean extends ClosingUIBean { + + protected static final String TEMPLATE = "help"; + + protected static final String TEMPLATE_CLOSE = "help-close"; + + public HelpBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { + super(stack, req, res); + } + + protected String helpKey; + + @Override + public String getDefaultOpenTemplate() { + return TEMPLATE; + } + + @Override + protected String getDefaultTemplate() { + return TEMPLATE_CLOSE; + } + + @Override + protected void evaluateExtraParams() { + if (helpKey != null) { + addParameter("helpKey", helpKey); + } + + } + + @StrutsTagAttribute(description="TODO" ,required = true) + public void setHelpKey(String helpKey) { + this.helpKey = helpKey; + } +} Added: trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpTag.java =================================================================== --- trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpTag.java (rev 0) +++ trunk/nuiton-struts2/src/main/java/org/nuiton/web/struts2/taglib/HelpTag.java 2011-11-14 15:26:09 UTC (rev 142) @@ -0,0 +1,31 @@ +package org.nuiton.web.struts2.taglib; + +import com.opensymphony.xwork2.util.ValueStack; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.struts2.views.jsp.ui.AbstractClosingTag; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +public class HelpTag extends AbstractClosingTag { + + /** Logger. */ + private static final Log log = LogFactory.getLog(HelpTag.class); + + protected String helpKey; + + public HelpBean getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) { + return new HelpBean(stack, req, res); + } + + public void setHelpKey(String helpKey) { + this.helpKey = helpKey; + } + + @Override + protected void populateParams() { + HelpBean helpBean = (HelpBean) component; + helpBean.setHelpKey(helpKey); + } +} Added: trunk/nuiton-struts2/src/main/resources/META-INF/tld/nuiton-tags.tld =================================================================== --- trunk/nuiton-struts2/src/main/resources/META-INF/tld/nuiton-tags.tld (rev 0) +++ trunk/nuiton-struts2/src/main/resources/META-INF/tld/nuiton-tags.tld 2011-11-14 15:26:09 UTC (rev 142) @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"> + <description><![CDATA["To make it easier to access dynamic data; + the Apache Struts framework includes a library of custom tags. + The tags interact with the framework's validation and internationalization features; + to ensure that input is correct and output is localized. + The Struts Tags can be used with JSP FreeMarker or Velocity."]]></description> + <display-name>"Nuiton Struts Tags"</display-name> + <tlib-version>2.2</tlib-version> + <short-name>ns</short-name> + <uri>/nuiton-tags</uri> + <tag> + <description><![CDATA[Add a help message on a form field]]></description> + <name>help</name> + <tag-class>org.nuiton.web.struts2.taglib.HelpTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <description><![CDATA[Date or DateTime format pattern]]></description> + <name>helpKey</name> + <required>true</required> + <rtexprvalue>true</rtexprvalue> + </attribute> + <dynamic-attributes>false</dynamic-attributes> + </tag> +</taglib> Added: trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help-close.ftl =================================================================== --- trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help-close.ftl (rev 0) +++ trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help-close.ftl 2011-11-14 15:26:09 UTC (rev 142) @@ -0,0 +1 @@ +</div> \ No newline at end of file Added: trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help.ftl =================================================================== --- trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help.ftl (rev 0) +++ trunk/nuiton-struts2/src/main/resources/template/css_xhtml/help.ftl 2011-11-14 15:26:09 UTC (rev 142) @@ -0,0 +1,13 @@ +<div id="idHelpKey${parameters.helpKey}"> + <script type="text/javascript"> + $(document).ready( function() { + function printHelp() { + alert('aide pour le champs'); + } + $('#idHelpKey${parameters.helpKey} input').focus( + function() { + printHelp(); + } + ); + }); + </script> \ No newline at end of file