Author: mfortun Date: 2011-06-23 12:52:41 +0200 (Thu, 23 Jun 2011) New Revision: 962 Url: http://nuiton.org/repositories/revision/wikitty/962 Log: * wikitty tag extends struts tag to allow template support * add struts dependency * add basic template * complete tag's model Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyFieldTagBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyFieldTag.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyTag.java trunk/wikitty-struts/src/main/java/template/ trunk/wikitty-struts/src/main/java/template/xhtml/ trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-close.ftl trunk/wikitty-struts/src/main/java/template/xhtml/wikitty.ftl trunk/wikitty-struts/src/main/java/template/xhtml/ws-field-close.ftl trunk/wikitty-struts/src/main/java/template/xhtml/ws-field.ftl Modified: trunk/wikitty-struts/pom.xml trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/taglib/WikittyTag.java trunk/wikitty-struts/src/main/tld/wikitty-struts.tld Modified: trunk/wikitty-struts/pom.xml =================================================================== --- trunk/wikitty-struts/pom.xml 2011-06-22 10:15:35 UTC (rev 961) +++ trunk/wikitty-struts/pom.xml 2011-06-23 10:52:41 UTC (rev 962) @@ -30,9 +30,13 @@ <version>2.0</version> <scope>provided</scope> </dependency> + + <dependency> + <groupId>org.apache.struts</groupId> + <artifactId>struts2-core</artifactId> + </dependency> - </dependencies> Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyFieldTagBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyFieldTagBean.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyFieldTagBean.java 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1,119 @@ +package org.nuiton.wikitty.struts.component; + + + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts2.components.ClosingUIBean; +import org.apache.struts2.views.annotations.StrutsTag; + +import com.opensymphony.xwork2.util.ValueStack; + + +@StrutsTag(name = "Wikitty", + tldTagClass = "org.nuiton.wikitty.struts.tag.WikittyFieldTag", + description = "Renders an input form", allowDynamicAttributes = false) +public class WikittyFieldTagBean extends ClosingUIBean{ + + protected String subtype; + protected String criteria; + protected String type; + + + + public String getSubtype() { + return subtype; + } + + public void setSubtype(String subtype) { + this.subtype = subtype; + } + + public String getCriteria() { + return criteria; + } + + public void setCriteria(String criteria) { + this.criteria = criteria; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public WikittyFieldTagBean(ValueStack stack, HttpServletRequest request, + HttpServletResponse response) { + super(stack, request, response); + } + + public static final String OPEN_TEMPLATE = "ws-field"; + public static final String TEMPLATE = "ws-field-close"; + + + public String getDefaultOpenTemplate() { + return OPEN_TEMPLATE; + } + + protected String getDefaultTemplate() { + return TEMPLATE; + } + + + @Override + protected void evaluateExtraParams() { + super.evaluateExtraParams(); + + /*if (validate != null) { + addParameter("validate", findValue(validate, Boolean.class)); + } + + if (name == null) { + //make the name the same as the id + String id = (String) getParameters().get("id"); + if (StringUtils.isNotEmpty(id)) { + addParameter("name", id); + } + } + + if (onsubmit != null) { + addParameter("onsubmit", findString(onsubmit)); + } + + if (onreset != null) { + addParameter("onreset", findString(onreset)); + } + + if (target != null) { + addParameter("target", findString(target)); + } + + if (enctype != null) { + addParameter("enctype", findString(enctype)); + } + + if (method != null) { + addParameter("method", findString(method)); + } + + if (acceptcharset != null) { + addParameter("acceptcharset", findString(acceptcharset)); + } + + // keep a collection of the tag names for anything special the templates might want to do (such as pure client + // side validation) + if (!parameters.containsKey("tagNames")) { + // we have this if check so we don't do this twice (on open and close of the template) + addParameter("tagNames", new ArrayList()); + } + + if (focusElement != null) { + addParameter("focusElement", findString(focusElement)); + }*/ + } + + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyFieldTagBean.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1,116 @@ +package org.nuiton.wikitty.struts.component; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.struts2.components.ClosingUIBean; +import org.apache.struts2.views.annotations.StrutsTag; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.entities.Wikitty; +import com.opensymphony.xwork2.util.ValueStack; + +@StrutsTag(name = "Wikitty", tldTagClass = "org.nuiton.wikitty.struts.tag.WikittyTag", description = "Renders an input form", allowDynamicAttributes = false) +public class WikittyTagBean extends ClosingUIBean { + + public static final String OPEN_TEMPLATE = "wikitty"; + public static final String TEMPLATE = "wikitty-close"; + public static final String WIKITTY_STACK_KEY = "wikitty_key"; + + protected Wikitty wikitty; + protected WikittyProxy proxy; + protected String type; + protected String action; + protected String redirect; + + protected String include; + protected String exclude; + protected String order; + protected boolean allowDelete; + + + + public WikittyTagBean(ValueStack stack, HttpServletRequest request, + HttpServletResponse response) { + super(stack, request, response); + } + + public String getDefaultOpenTemplate() { + return OPEN_TEMPLATE; + } + + protected String getDefaultTemplate() { + return TEMPLATE; + } + + public Wikitty getWikitty() { + return wikitty; + } + + public void setWikitty(Wikitty wikitty) { + this.wikitty = wikitty; + } + + public WikittyProxy getProxy() { + return proxy; + } + + public void setProxy(WikittyProxy proxy) { + this.proxy = proxy; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(String redirect) { + this.redirect = redirect; + } + + public String getInclude() { + return include; + } + + public void setInclude(String include) { + this.include = include; + } + + public String getExclude() { + return exclude; + } + + public void setExclude(String exclude) { + this.exclude = exclude; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } + + public boolean isAllowDelete() { + return allowDelete; + } + + public void setAllowDelete(boolean allowDelete) { + this.allowDelete = allowDelete; + } + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/WikittyTagBean.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyFieldTag.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyFieldTag.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyFieldTag.java 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1,73 @@ +package org.nuiton.wikitty.struts.tag; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.struts2.components.Component; +import org.apache.struts2.views.jsp.ui.AbstractClosingTag; +import org.nuiton.wikitty.struts.component.WikittyFieldTagBean; + +import com.opensymphony.xwork2.util.ValueStack; + +public class WikittyFieldTag extends AbstractClosingTag { + + /** + * + */ + private static final long serialVersionUID = -1L; + protected String name; + protected String subtype; + protected String criteria; + protected String type; + + public String getSubtype() { + return subtype; + } + + public void setSubtype(String subtype) { + this.subtype = subtype; + } + + public String getCriteria() { + return criteria; + } + + public void setCriteria(String criteria) { + this.criteria = criteria; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + @Override + public Component getBean(ValueStack stack, HttpServletRequest req, + HttpServletResponse res) { + return new WikittyFieldTagBean(stack, req, res); + + } + + @Override + protected void populateParams() { + super.populateParams(); + WikittyFieldTagBean fieldtag = ((WikittyFieldTagBean) component); + fieldtag.setName(name); + fieldtag.setType(type); + fieldtag.setSubtype(subtype); + fieldtag.setCriteria(criteria); + + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyFieldTag.java ___________________________________________________________________ Added: svn:mime-type + text/plain Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyTag.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyTag.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyTag.java 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1,125 @@ +package org.nuiton.wikitty.struts.tag; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.struts2.components.Component; +import org.apache.struts2.views.jsp.ui.AbstractClosingTag; +import org.nuiton.wikitty.WikittyProxy; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.struts.component.WikittyTagBean; + +import com.opensymphony.xwork2.util.ValueStack; + +public class WikittyTag extends AbstractClosingTag { + + /** + * + */ + private static final long serialVersionUID = 258152544560583399L; + protected Wikitty wikitty; + protected WikittyProxy proxy; + protected String type; + protected String action; + protected String redirect; + + protected String include; + protected String exclude; + protected String order; + protected boolean allowDelete; + + public String getInclude() { + return include; + } + + public void setInclude(String include) { + this.include = include; + } + + public String getExclude() { + return exclude; + } + + public void setExclude(String exclude) { + this.exclude = exclude; + } + + public String getOrder() { + return order; + } + + public void setOrder(String order) { + this.order = order; + } + + public boolean isAllowDelete() { + return allowDelete; + } + + public void setAllowDelete(boolean allowDelete) { + this.allowDelete = allowDelete; + } + + @Override + public Component getBean(ValueStack stack, HttpServletRequest req, + HttpServletResponse res) { + return new WikittyTagBean(stack, req, res); + + } + + @Override + protected void populateParams() { + super.populateParams(); + WikittyTagBean wikittyTag = ((WikittyTagBean) component); + wikittyTag.setAction(action); + wikittyTag.setRedirect(redirect); + wikittyTag.setWikitty(wikitty); + wikittyTag.setProxy(proxy); + wikittyTag.setType(type); + wikittyTag.setOrder(order); + wikittyTag.setAllowDelete(allowDelete); + wikittyTag.setInclude(include); + wikittyTag.setExclude(exclude); + } + + public Wikitty getWikitty() { + return wikitty; + } + + public void setWikitty(Wikitty wikitty) { + this.wikitty = wikitty; + } + + public WikittyProxy getProxy() { + return proxy; + } + + public void setProxy(WikittyProxy proxy) { + this.proxy = proxy; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getAction() { + return action; + } + + public void setAction(String action) { + this.action = action; + } + + public String getRedirect() { + return redirect; + } + + public void setRedirect(String redirect) { + this.redirect = redirect; + } + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/WikittyTag.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/taglib/WikittyTag.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/taglib/WikittyTag.java 2011-06-22 10:15:35 UTC (rev 961) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/taglib/WikittyTag.java 2011-06-23 10:52:41 UTC (rev 962) @@ -63,6 +63,7 @@ protected String formTemplateEditWikitty() { String result = ""; + result += "<form class=\"edit\" action=\" " + url + " \" method=\"post\" enctype=\"multipart/form-data\" >"; result += "<input type=\"hidden\" name=\"id\" value=\" " Added: trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-close.ftl =================================================================== --- trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-close.ftl (rev 0) +++ trunk/wikitty-struts/src/main/java/template/xhtml/wikitty-close.ftl 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1 @@ +</wikitty > Added: trunk/wikitty-struts/src/main/java/template/xhtml/wikitty.ftl =================================================================== --- trunk/wikitty-struts/src/main/java/template/xhtml/wikitty.ftl (rev 0) +++ trunk/wikitty-struts/src/main/java/template/xhtml/wikitty.ftl 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1 @@ +<wikitty > Added: trunk/wikitty-struts/src/main/java/template/xhtml/ws-field-close.ftl =================================================================== --- trunk/wikitty-struts/src/main/java/template/xhtml/ws-field-close.ftl (rev 0) +++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-field-close.ftl 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1 @@ +</field > Added: trunk/wikitty-struts/src/main/java/template/xhtml/ws-field.ftl =================================================================== --- trunk/wikitty-struts/src/main/java/template/xhtml/ws-field.ftl (rev 0) +++ trunk/wikitty-struts/src/main/java/template/xhtml/ws-field.ftl 2011-06-23 10:52:41 UTC (rev 962) @@ -0,0 +1 @@ +<field > Modified: trunk/wikitty-struts/src/main/tld/wikitty-struts.tld =================================================================== --- trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-22 10:15:35 UTC (rev 961) +++ trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-06-23 10:52:41 UTC (rev 962) @@ -9,38 +9,66 @@ <uri>/wikitty-struts</uri> <tag> - <name>hello</name> - <tagclass>org.nuiton.wikitty.taglib.HelloTag</tagclass> - <bodycontent>empty</bodycontent> + <name>wikitty</name> + <tagclass>org.nuiton.wikitty.struts.tag.WikittyTag</tagclass> + <attribute> - <name>valeur</name> + <name>wikitty</name> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> - <name>wikity</name> + <name>proxy</name> <rtexprvalue>true</rtexprvalue> </attribute> + <attribute> + <name>action</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>redirect</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>type</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>include</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>exclude</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>order</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <name>allowDelete</name> + <rtexprvalue>true</rtexprvalue> + </attribute> </tag> + <tag> - <name>wikitty</name> - <tagclass>org.nuiton.wikitty.taglib.WikittyTag</tagclass> - <bodycontent>empty</bodycontent> + <name>field</name> + <tagclass>org.nuiton.wikitty.struts.tag.WikittyFieldTag</tagclass> <attribute> - <name>wikitty</name> + <name>name</name> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> - <name>proxy</name> + <name>subtype</name> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> - <name>url</name> + <name>type</name> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> - <name>type</name> + <name>criteria</name> <rtexprvalue>true</rtexprvalue> </attribute> </tag> @@ -48,5 +76,4 @@ - </taglib>