Author: mfortun Date: 2011-07-05 16:04:04 +0200 (Tue, 05 Jul 2011) New Revision: 1048 Url: http://nuiton.org/repositories/revision/wikitty/1048 Log: * correct template location with theme for form tag * add label element in template * add new tag for wikitty collection Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectAssociationBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectAssociationTag.java trunk/wikitty-struts/src/main/resources/template/wikitty/ws-label-commons.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectAssociation-close.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectAssociation.ftl Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/DateBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FormTagBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectCriteriaBean.java trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectCriteriaTag.java trunk/wikitty-struts/src/main/resources/template/wikitty/ws-boolean.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-date.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectcriteria.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectfixed.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textarea.ftl trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textfield.ftl trunk/wikitty-struts/src/main/tld/wikitty-struts.tld Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/DateBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/DateBean.java 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/DateBean.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -4,11 +4,14 @@ import javax.servlet.http.HttpServletResponse; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.struts2.views.annotations.StrutsTag; import org.nuiton.util.StringUtil; import org.nuiton.wikitty.WikittyUtil; import com.opensymphony.xwork2.util.ValueStack; +@StrutsTag(name = "boolean", tldTagClass = "org.nuiton.wikitty.struts.tag.DateTag", + description = "", allowDynamicAttributes = false) public class DateBean extends AbstractWikittyComponent { /** to use log facility, just put in your code: log.info(\"...\"); */ Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FormTagBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FormTagBean.java 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/FormTagBean.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -128,6 +128,12 @@ } + + + @Override + public String getTheme() { + return "wikitty"; + } public String getDefaultOpenTemplate() { return OPEN_TEMPLATE; Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectAssociationBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectAssociationBean.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectAssociationBean.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -0,0 +1,108 @@ +package org.nuiton.wikitty.struts.component; + +import java.util.Collection; +import java.util.LinkedList; +import java.util.List; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.util.StringUtil; +import org.nuiton.wikitty.WikittyUtil; +import org.nuiton.wikitty.entities.Wikitty; +import org.nuiton.wikitty.struts.Option; +import org.nuiton.wikitty.struts.WikittyFieldHandler; + +import com.opensymphony.xwork2.util.ValueStack; + +public class SelectAssociationBean extends AbstractWikittyComponent { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + final static private Log log = LogFactory + .getLog(SelectAssociationBean.class); + + public static final String OPEN_TEMPLATE = "ws-selectassociation"; + public static final String TEMPLATE = "ws-selectassociation-close"; + + protected String descField; + protected int size; + + public SelectAssociationBean(ValueStack stack, HttpServletRequest request, + HttpServletResponse response) { + super(stack, request, response); + } + + + @Override + protected void evaluateExtraParams() { + super.evaluateExtraParams(); + + // the select constructed must be positive + if (size <= 0 ){ + size = 1; + } + + // add parametter + addParameter("size", size); + + List<Option> listOption = new LinkedList<Option>(); + + String ext = WikittyUtil.getExtensionNameFromFQFieldName(fqFieldName); + String fieldName = WikittyUtil.getFieldNameFromFQFieldName(fqFieldName); + + String[] descriptor = StringUtil.split(descField, + WikittyFieldHandler.FIELD_SEPARATOR); + + // iterate wikitty for result construction + for (Wikitty wiki : wikitty.getFieldAsList(ext, fieldName, Wikitty.class)){ + Option temp = new Option(); + temp.setValeur(wiki.getId()); + String desc = wiki.getId(); + + // if attribute descripteur fill with something + // extract from wikitty corresponding field value + if (descriptor.length != 0) { + desc = ""; + for (String descriptorIt : descriptor) { + String[] descTable = StringUtil + .split(descriptorIt, WikittyUtil.FQ_FIELD_NAME_SEPARATOR); + + desc += wiki.getFieldAsWikitty(descTable[0], + descTable[1]); + } + } + temp.setDescription(desc); + listOption.add(temp); + + } + + addParameter("value", listOption); + } + + + public String getDescField() { + return descField; + } + + public void setDescField(String descField) { + this.descField = descField; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + public String getDefaultOpenTemplate() { + return OPEN_TEMPLATE; + } + + protected String getDefaultTemplate() { + return TEMPLATE; + } + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectAssociationBean.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectCriteriaBean.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectCriteriaBean.java 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/component/SelectCriteriaBean.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -29,7 +29,7 @@ public static final String TEMPLATE = "ws-selectcriteria-close"; protected Criteria criteria; - protected String descfield; + protected String descField; public SelectCriteriaBean(ValueStack stack, HttpServletRequest request, HttpServletResponse response) { @@ -62,7 +62,7 @@ // search for the wikitty with the criteria PagedResult<Wikitty> wikitties = proxy.findAllByCriteria(criteria); - String[] descriptor = StringUtil.split(descfield, + String[] descriptor = StringUtil.split(descField, WikittyFieldHandler.FIELD_SEPARATOR); // if wikitties not null contruct option result @@ -81,7 +81,7 @@ desc = ""; for (String descriptorIt : descriptor) { String[] descTable = StringUtil - .split(descriptorIt, "."); + .split(descriptorIt, WikittyUtil.FQ_FIELD_NAME_SEPARATOR); desc += wiki.getFieldAsWikitty(descTable[0], descTable[1]); @@ -110,12 +110,12 @@ this.criteria = criteria; } - public String getDescfield() { - return descfield; + public String getDescField() { + return descField; } - public void setDescfield(String descfield) { - this.descfield = descfield; + public void setDescField(String descfield) { + this.descField = descfield; } } Added: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectAssociationTag.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectAssociationTag.java (rev 0) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectAssociationTag.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -0,0 +1,57 @@ +package org.nuiton.wikitty.struts.tag; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.struts2.components.Component; +import org.nuiton.wikitty.struts.component.SelectAssociationBean; + +import com.opensymphony.xwork2.util.ValueStack; + +public class SelectAssociationTag extends AbstractWikittyTag{ + + /** + * + */ + private static final long serialVersionUID = 1341902299150448705L; + + + protected String descField; + protected int size; + + @Override + public Component getBean(ValueStack stack, HttpServletRequest req, + HttpServletResponse res) { + return new SelectAssociationBean(stack, req, res); + + } + + + @Override + protected void populateParams() { + super.populateParams(); + + SelectAssociationBean select= (SelectAssociationBean) component; + select.setDescField(descField); + select.setSize(size); + } + + public String getDescField() { + return descField; + } + + public void setDescField(String descField) { + this.descField = descField; + } + + public int getSize() { + return size; + } + + public void setSize(int size) { + this.size = size; + } + + + +} Property changes on: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectAssociationTag.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectCriteriaTag.java =================================================================== --- trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectCriteriaTag.java 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/java/org/nuiton/wikitty/struts/tag/SelectCriteriaTag.java 2011-07-05 14:04:04 UTC (rev 1048) @@ -14,7 +14,7 @@ */ private static final long serialVersionUID = 2807198744532780915L; protected Criteria criteria; - protected String descfield; + protected String descField; @Override public Component getBean(ValueStack stack, HttpServletRequest req, @@ -31,7 +31,7 @@ SelectCriteriaBean fieldtag = ((SelectCriteriaBean) component); fieldtag.setCriteria(criteria); - fieldtag.setDescfield(descfield); + fieldtag.setDescField(descField); } @@ -43,12 +43,12 @@ this.criteria = criteria; } - public String getDescfield() { - return descfield; + public String getDescField() { + return descField; } - public void setDescfield(String descfield) { - this.descfield = descfield; + public void setDescField(String descField) { + this.descField = descField; } } Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-boolean.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-boolean.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-boolean.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} : <input +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<input <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> type="checkbox" value="true" <#t/> <#if aKey.value=="true" > <#t/> Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-date.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-date.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-date.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} : <input +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<input <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> type="text" value="${parameters.value}"> </p> </#if><#t/> Added: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-label-commons.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-label-commons.ftl (rev 0) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-label-commons.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -0,0 +1 @@ +<label for="${parameters.id}">${parameters.label}</label> \ No newline at end of file Added: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectAssociation.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectAssociation.ftl (rev 0) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectAssociation.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -0,0 +1,12 @@ +<#if parameters.included?? && parameters.included==true > +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<select +<#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> + size="${parameters.size}"> +<#assign optionKeys = parameters.value><#t/> + <#list optionKeys as optionKey> + <option value="${optionKey.valeur}"> + ${optionKey.description} </option> + </#list> +</select><#t/> +</#if> \ No newline at end of file Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectcriteria.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectcriteria.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectcriteria.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} :<select +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<select <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> size="1"> <#assign optionKeys = parameters.wikittiesvalues> Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectfixed.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectfixed.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-selectfixed.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} :<select +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<select <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> size="1"> <#assign optionKeys = parameters.fixvalues><#t/> Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textarea.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textarea.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textarea.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} : <textarea +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<textarea <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> cols="80" rows="20" >${parameters.value}</textarea><#t/> </#if><#t/> \ No newline at end of file Modified: trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textfield.ftl =================================================================== --- trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textfield.ftl 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/resources/template/wikitty/ws-textfield.ftl 2011-07-05 14:04:04 UTC (rev 1048) @@ -1,5 +1,6 @@ <#if parameters.included?? && parameters.included==true > -${parameters.label} : <input +<#include "/${parameters.templateDir}/${parameters.theme}/ws-label-commons.ftl" /> +<input <#include "/${parameters.templateDir}/${parameters.theme}/ws-commons.ftl" /> <#if parameters.password?? && parameters.password==true ><#t/> Modified: trunk/wikitty-struts/src/main/tld/wikitty-struts.tld =================================================================== --- trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-07-05 13:42:02 UTC (rev 1047) +++ trunk/wikitty-struts/src/main/tld/wikitty-struts.tld 2011-07-05 14:04:04 UTC (rev 1048) @@ -82,6 +82,58 @@ </attribute> </tag> + + <tag> + <name>selectAssociation</name> + <tagclass>org.nuiton.wikitty.struts.tag.SelectAssociationTag</tagclass> + <bodycontent>empty</bodycontent> + <attribute> + <description><![CDATA[id for the field]]></description> + <name>id</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description><![CDATA[name for html element. Ignored if tag used inside tag form.]]></description> + <name>name</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description><![CDATA[the wikitty to edit]]></description> + <name>wikitty</name> + <rtexprvalue>true</rtexprvalue> + <required>true</required> + </attribute> + <attribute> + <description><![CDATA[the proxy from whom search for wikitty required if tag not used inside form tag]]></description> + <name>proxy</name> + <rtexprvalue>true</rtexprvalue> + <required>true</required> + </attribute> + <attribute> + <description><![CDATA[if subtype == wikitty, use the name of the descfield of the wikitties as a description value for select's option]]></description> + <name>descField</name> + <rtexprvalue>true</rtexprvalue> + </attribute> + <attribute> + <description><![CDATA[the name of the field that have to be specialize, it will be the name of the html element]]></description> + <name>fqFieldName</name> + <rtexprvalue>true</rtexprvalue> + <required>true</required> + </attribute> + <attribute> + <description><![CDATA[the label of the field]]></description> + <name>label</name> + <rtexprvalue>true</rtexprvalue> + <required>true</required> + </attribute> + <attribute> + <description><![CDATA[the label of the field]]></description> + <name>size</name> + <rtexprvalue>true</rtexprvalue> + <required>true</required> + </attribute> + </tag> + <tag> @@ -118,7 +170,7 @@ </attribute> <attribute> <description><![CDATA[if subtype == wikitty, use the name of the descfield of the wikitties as a description value for select's option]]></description> - <name>descfield</name> + <name>descField</name> <rtexprvalue>true</rtexprvalue> </attribute> <attribute>