Author: jkuhnert Date: Sat Apr 1 14:33:32 2006 New Revision: 390758 URL: http://svn.apache.org/viewcvs?rev=390758&view=rev Log: PropertySelection works now! Yay. At least the way I think it should. Need to confer with dojo on these return value formats.
Modified: jakarta/tapestry/trunk/examples/TimeTracker/src/context/Home.html jakarta/tapestry/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ResponseRendererImpl.java jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/markup/TestJSONWriter.java Modified: jakarta/tapestry/trunk/examples/TimeTracker/src/context/Home.html URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/TimeTracker/src/context/Home.html?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/examples/TimeTracker/src/context/Home.html (original) +++ jakarta/tapestry/trunk/examples/TimeTracker/src/context/Home.html Sat Apr 1 14:33:32 2006 @@ -15,7 +15,7 @@ <div class="fm-hopt"> <label for="fm-firstname">Start</label> - <input style="width:auto" size="10" name="fm-firstname" id="fm-firstname" type="text" /> + <input jwcid="startPicker" style="width:auto" size="10" name="fm-firstname" id="fm-firstname" type="text" /> </div> <div class="fm-hopt"> <label for="fm-middlename">End</label> Modified: jakarta/tapestry/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties (original) +++ jakarta/tapestry/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties Sat Apr 1 14:33:32 2006 @@ -23,7 +23,9 @@ log4j.category.org.apache.hivemind=WARN log4j.category.hivemind=DEBUG +log4j.category.tapestry=DEBUG +log4j.category.org.apache.tapestry=DEBUG log4j.category.org.apache.tapestry.ApplicationServlet=info -log4j.category.org.apache.tapestry.timetracker=debug \ No newline at end of file +log4j.category.org.apache.tapestry.timetracker=debug Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java (original) +++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java Sat Apr 1 14:33:32 2006 @@ -17,6 +17,7 @@ import java.util.HashMap; import java.util.Map; +import org.apache.log4j.Logger; import org.apache.tapestry.IDirect; import org.apache.tapestry.IJSONRender; import org.apache.tapestry.IMarkupWriter; @@ -60,6 +61,9 @@ public abstract class PropertySelection extends AbstractFormComponent implements ValidatableField, IJSONRender, IDirect { + /* logger */ + protected static final Logger _log = Logger.getLogger(PropertySelection.class); + /** * @see org.apache.tapestry.form.AbstractFormComponent#renderFormComponent(org.apache.tapestry.IMarkupWriter, org.apache.tapestry.IRequestCycle) */ @@ -89,6 +93,7 @@ writer.attribute("dojoType", "ComboBox"); writer.attribute("dataUrl", link.getURL()); + writer.attribute("mode", "remote"); Map parms = new HashMap(); parms.put("select", this); @@ -167,21 +172,32 @@ */ public void renderComponent(IJSONWriter writer, IRequestCycle cycle) { + _log.warn("renderComponent() JSON request"); IPropertySelectionModel model = getModel(); if (model == null) throw Tapestry.createRequiredParameterException(this, "model"); int count = model.getOptionCount(); + _log.warn("total count:" + count); for (int i = 0; i < count; i++) { String value = model.getValue(i); String label = model.getLabel(i); + _log.warn("Filter value:" + getFilter() + "with label:" + label + " on count:" + i); + + if (getFilter() == null || getFilter().length() <= 0) { + writer.put(value, label); + _log.warn("Writing filter value"); + continue; + } + // primitive filter, for now // TODO: Create filter interface in IPropertySelectionModel - if (getFilter() != null && label.indexOf(getFilter()) > -1) { + if (getFilter() != null + && label.toLowerCase().indexOf(getFilter().toLowerCase()) > -1) { writer.put(value, label); } } Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java (original) +++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/JSONResponseBuilder.java Sat Apr 1 14:33:32 2006 @@ -17,6 +17,7 @@ import java.util.List; import org.apache.hivemind.util.Defense; +import org.apache.log4j.Logger; import org.apache.tapestry.IComponent; import org.apache.tapestry.IJSONRender; import org.apache.tapestry.IMarkupWriter; @@ -36,6 +37,9 @@ */ public class JSONResponseBuilder implements ResponseBuilder { + /* logger */ + protected static final Logger _log = Logger.getLogger(JSONResponseBuilder.class); + /** Writer that creates JSON output response. */ protected IJSONWriter _writer; /** Passed in to bypass normal rendering. */ @@ -64,6 +68,7 @@ */ public void renderResponse(IRequestCycle cycle) { + _log.warn("renderResponse()"); parseParameters(cycle); cycle.renderPage(this); Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ResponseRendererImpl.java URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ResponseRendererImpl.java?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ResponseRendererImpl.java (original) +++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/services/impl/ResponseRendererImpl.java Sat Apr 1 14:33:32 2006 @@ -16,6 +16,7 @@ import java.io.IOException; +import org.apache.log4j.Logger; import org.apache.tapestry.IRequestCycle; import org.apache.tapestry.services.ResponseBuilder; import org.apache.tapestry.services.ResponseDelegateFactory; @@ -29,6 +30,9 @@ */ public class ResponseRendererImpl implements ResponseRenderer { + /* logger */ + protected static final Logger _log = Logger.getLogger(ResponseRendererImpl.class); + protected ResponseDelegateFactory _responseDelegate; public void renderResponse(IRequestCycle cycle) throws IOException Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/markup/TestJSONWriter.java URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/markup/TestJSONWriter.java?rev=390758&r1=390757&r2=390758&view=diff ============================================================================== --- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/markup/TestJSONWriter.java (original) +++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/markup/TestJSONWriter.java Sat Apr 1 14:33:32 2006 @@ -17,8 +17,11 @@ import org.apache.hivemind.test.HiveMindTestCase; import org.apache.tapestry.json.IJSONWriter; +import org.apache.tapestry.json.JSONArray; import java.io.ByteArrayOutputStream; +import java.util.ArrayList; +import java.util.List; /** --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]