Author: jkuhnert Date: Fri Apr 21 15:45:18 2006 New Revision: 396027 URL: http://svn.apache.org/viewcvs?rev=396027&view=rev Log: Started defining some of the tapestry dojo widget management functionality.
Added: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/ - copied from r395981, tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ajax/ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/IWidget.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/Widget.js Removed: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ajax/ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/form/package.html Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.page tapestry/tapestry4/trunk/examples/VlibBeans/src/java/org/apache/tapestry/vlib/ejb/impl/OperationsBean.java tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/upload/Upload.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ApplicationServlet.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/ForBean.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/LinkEventType.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.script tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/parse/TemplateParser.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationConstraint.java tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationStrings.java tapestry/tapestry4/trunk/framework/src/js/tapestry.profile.js tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/event/ReportStatusEventTest.java Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.page URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.page?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.page (original) +++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.page Fri Apr 21 15:45:18 2006 @@ -21,31 +21,5 @@ <page-specification class="org.apache.tapestry.timetracker.page.TaskEntryPage"> - <!-- - <bean name="delegate" class="org.apache.tapestry.workbench.WorkbenchValidationDelegate" property="delegate"/> - - <property name="clientValidationEnabled" persist="client" initial-value="true"/> - <property name="includeWeek" persist="client"/> - <property name="startDate" persist="client"/> - <property name="endDate" persist="client"/> - - <bean name="required" class="org.apache.tapestry.form.validator.Required"></bean> - <bean name="maxDate" class="org.apache.tapestry.form.validator.MaxDate"> - <set name="maxDate" value="new java.util.Date()"></set> - </bean> - <bean name="minDate" class="org.apache.tapestry.form.validator.MinDate"> - <set name="minDate" value="new java.util.Date()"></set> - </bean> - - <component id="inputEnabled" type="Checkbox"> - <binding name="value" value="clientValidationEnabled"/> - <binding name="onchange" value="literal:javascript:this.form.events.submit();"/> - </component> - - <component id="showError" type="ShowError"> - <binding name="delegate" value="bean:delegate"/> - </component> - --> - </page-specification> Modified: tapestry/tapestry4/trunk/examples/VlibBeans/src/java/org/apache/tapestry/vlib/ejb/impl/OperationsBean.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/VlibBeans/src/java/org/apache/tapestry/vlib/ejb/impl/OperationsBean.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/examples/VlibBeans/src/java/org/apache/tapestry/vlib/ejb/impl/OperationsBean.java (original) +++ tapestry/tapestry4/trunk/examples/VlibBeans/src/java/org/apache/tapestry/vlib/ejb/impl/OperationsBean.java Fri Apr 21 15:45:18 2006 @@ -70,6 +70,50 @@ private static final long serialVersionUID = -3942706099570269035L; + /** + * All queries must use this exact set of select columns, so that + * [EMAIL PROTECTED] #convertRow(ResultSet, Object[])} can build the correct + * [EMAIL PROTECTED] Book} from each row. + */ + + private static final String[] BOOK_SELECT_COLUMNS = { "book.BOOK_ID", + "book.TITLE", "book.DESCRIPTION", "book.ISBN", "owner.PERSON_ID", + "owner.FIRST_NAME", "owner.LAST_NAME", "holder.PERSON_ID", + "holder.FIRST_NAME", "holder.LAST_NAME", "publisher.PUBLISHER_ID", + "publisher.NAME", "book.AUTHOR", "book.HIDDEN", "book.LENDABLE", + "book.DATE_ADDED" }; + + private static final String[] BOOK_ALIAS_COLUMNS = { "BOOK book", + "PERSON owner", "PERSON holder", "PUBLISHER publisher" }; + + private static final String[] BOOK_JOINS = { + "book.OWNER_ID = owner.PERSON_ID", + "book.HOLDER_ID = holder.PERSON_ID", + "book.PUBLISHER_ID = publisher.PUBLISHER_ID" }; + + private static final Map BOOK_SORT_ASCENDING = new HashMap(); + + private static final Map BOOK_SORT_DESCENDING = new HashMap(); + + static + { + BOOK_SORT_ASCENDING.put(SortColumn.TITLE, "book.TITLE"); + BOOK_SORT_ASCENDING.put(SortColumn.HOLDER, + "holder.LAST_NAME, holder.FIRST_NAME"); + BOOK_SORT_ASCENDING.put(SortColumn.OWNER, + "owner.FIRST_NAME, owner.LAST_NAME"); + BOOK_SORT_ASCENDING.put(SortColumn.PUBLISHER, "publisher.NAME"); + BOOK_SORT_ASCENDING.put(SortColumn.AUTHOR, "book.AUTHOR"); + + BOOK_SORT_DESCENDING.put(SortColumn.TITLE, "book.TITLE DESC"); + BOOK_SORT_DESCENDING.put(SortColumn.HOLDER, + "holder.LAST_NAME DESC, holder.FIRST_NAME DESC"); + BOOK_SORT_DESCENDING.put(SortColumn.OWNER, + "owner.FIRST_NAME DESC, owner.LAST_NAME DESC"); + BOOK_SORT_DESCENDING.put(SortColumn.PUBLISHER, "publisher.NAME DESC"); + BOOK_SORT_DESCENDING.put(SortColumn.AUTHOR, "book.AUTHOR DESC"); + } + private transient Context _environment; private transient IBookHome _bookHome; @@ -700,7 +744,7 @@ * reassign the books holder back to the owner. */ - private void returnBooksFromDeletedPersons(Integer deletedPersonIds[]) + private void returnBooksFromDeletedPersons(Integer[] deletedPersonIds) throws RemoveException { StatementAssembly assembly = new StatementAssembly(); @@ -718,7 +762,7 @@ * Invoked to execute a bulk update that moves books to the new admin. */ - private void moveBooksFromDeletedPersons(Integer deletedPersonIds[], + private void moveBooksFromDeletedPersons(Integer[] deletedPersonIds, Integer adminId) throws RemoveException { @@ -802,50 +846,6 @@ if (firstName == null) return lastName; return firstName + " " + lastName; - } - - /** - * All queries must use this exact set of select columns, so that - * [EMAIL PROTECTED] #convertRow(ResultSet, Object[])} can build the correct - * [EMAIL PROTECTED] Book} from each row. - */ - - private static final String[] BOOK_SELECT_COLUMNS = { "book.BOOK_ID", - "book.TITLE", "book.DESCRIPTION", "book.ISBN", "owner.PERSON_ID", - "owner.FIRST_NAME", "owner.LAST_NAME", "holder.PERSON_ID", - "holder.FIRST_NAME", "holder.LAST_NAME", "publisher.PUBLISHER_ID", - "publisher.NAME", "book.AUTHOR", "book.HIDDEN", "book.LENDABLE", - "book.DATE_ADDED" }; - - private static final String[] BOOK_ALIAS_COLUMNS = { "BOOK book", - "PERSON owner", "PERSON holder", "PUBLISHER publisher" }; - - private static final String[] BOOK_JOINS = { - "book.OWNER_ID = owner.PERSON_ID", - "book.HOLDER_ID = holder.PERSON_ID", - "book.PUBLISHER_ID = publisher.PUBLISHER_ID" }; - - private static final Map BOOK_SORT_ASCENDING = new HashMap(); - - private static final Map BOOK_SORT_DESCENDING = new HashMap(); - - static - { - BOOK_SORT_ASCENDING.put(SortColumn.TITLE, "book.TITLE"); - BOOK_SORT_ASCENDING.put(SortColumn.HOLDER, - "holder.LAST_NAME, holder.FIRST_NAME"); - BOOK_SORT_ASCENDING.put(SortColumn.OWNER, - "owner.FIRST_NAME, owner.LAST_NAME"); - BOOK_SORT_ASCENDING.put(SortColumn.PUBLISHER, "publisher.NAME"); - BOOK_SORT_ASCENDING.put(SortColumn.AUTHOR, "book.AUTHOR"); - - BOOK_SORT_DESCENDING.put(SortColumn.TITLE, "book.TITLE DESC"); - BOOK_SORT_DESCENDING.put(SortColumn.HOLDER, - "holder.LAST_NAME DESC, holder.FIRST_NAME DESC"); - BOOK_SORT_DESCENDING.put(SortColumn.OWNER, - "owner.FIRST_NAME DESC, owner.LAST_NAME DESC"); - BOOK_SORT_DESCENDING.put(SortColumn.PUBLISHER, "publisher.NAME DESC"); - BOOK_SORT_DESCENDING.put(SortColumn.AUTHOR, "book.AUTHOR DESC"); } protected StatementAssembly buildBaseBookQuery() Modified: tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java (original) +++ tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/tree/examples/fsmodel/FolderObject.java Fri Apr 21 15:45:18 2006 @@ -22,10 +22,23 @@ import org.apache.tapestry.contrib.tree.model.ITreeNode; import org.apache.tapestry.engine.IEngineService; +/** + * + * @author unknown + */ public class FolderObject extends SFObject { /** + * serialVersionUID. + */ + private static final long serialVersionUID = 1889745019885512018L; + + private static final String openImage = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeOpen.gif"; + + private static final String closedImage = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeClosed.gif"; + + /** * @associates <{File}> * @supplierCardinality 0..* * @link aggregation @@ -157,10 +170,6 @@ { return false; } - - private final static String openImage = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeOpen.gif"; - - private final static String closedImage = "/org/apache/tapestry/workbench/tree/examples/fsmodel/TreeClosed.gif"; public AssetsHolder getAssets() { Modified: tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/upload/Upload.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/upload/Upload.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/upload/Upload.java (original) +++ tapestry/tapestry4/trunk/examples/Workbench/src/java/org/apache/tapestry/workbench/upload/Upload.java Fri Apr 21 15:45:18 2006 @@ -29,6 +29,11 @@ public abstract class Upload extends BasePage { + private static final String[] bytesPerLineOptions = new String[] + { "8", "16", "24", "32", "40", "48" }; + + private IPropertySelectionModel bplModel; + public abstract IUploadFile getFile(); public abstract boolean isShowAscii(); @@ -36,12 +41,7 @@ public abstract String getBytesPerLine(); public abstract IValidationDelegate getDelegate(); - - private static final String[] bytesPerLineOptions = new String[] - { "8", "16", "24", "32", "40", "48" }; - - private IPropertySelectionModel bplModel; - + @InjectPage("UploadResults") public abstract UploadResults getUploadResults(); @@ -61,4 +61,4 @@ return bplModel; } -} \ No newline at end of file +} Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ApplicationServlet.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ApplicationServlet.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ApplicationServlet.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/ApplicationServlet.java Fri Apr 21 15:45:18 2006 @@ -68,18 +68,6 @@ private static final Log LOG = LogFactory.getLog(ApplicationServlet.class); /** - * Invokes [EMAIL PROTECTED] #doService(HttpServletRequest, HttpServletResponse)}. - * - * @since 1.0.6 - */ - - public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, - ServletException - { - doService(request, response); - } - - /** * @since 2.3 */ @@ -103,6 +91,18 @@ * @since 4.0 */ private ServletRequestServicer _requestServicer; + + /** + * Invokes [EMAIL PROTECTED] #doService(HttpServletRequest, HttpServletResponse)}. + * + * @since 1.0.6 + */ + + public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, + ServletException + { + doService(request, response); + } /** * Handles the GET and POST requests. Performs the following: Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/ForBean.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/ForBean.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/ForBean.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/ForBean.java Fri Apr 21 15:45:18 2006 @@ -57,10 +57,17 @@ */ private static final char DESC_PRIMARY_KEY = 'P'; - private final RepSource COMPLETE_REP_SOURCE = new CompleteRepSource(); + private final RepSource _completeRepSource = new CompleteRepSource(); - private final RepSource KEY_EXPRESSION_REP_SOURCE = new KeyExpressionRepSource(); + private final RepSource _keyExpressionRepSource = new KeyExpressionRepSource(); + // intermediate members + private Object _value; + + private int _index; + + private boolean _rendering; + // parameters public abstract String getElement(); @@ -81,13 +88,6 @@ public abstract ExpressionEvaluator getExpressionEvaluator(); - // intermediate members - private Object _value; - - private int _index; - - private boolean _rendering; - /** * Gets the source binding and iterates through its values. For each, it updates the value * binding and render's its wrapped elements. @@ -420,7 +420,7 @@ } /** - * Uses the 'keyExpression' parameter to determine the primary key of the given value + * Uses the 'keyExpression' parameter to determine the primary key of the given value. * * @param value * The value from which the primary key should be extracted @@ -438,7 +438,7 @@ } /** - * Uses the 'converter' parameter to determine the primary key of the given value + * Uses the 'converter' parameter to determine the primary key of the given value. * * @param value * The value from which the primary key should be extracted @@ -483,7 +483,7 @@ fullSourceIterator, repToValueMap, rep, - COMPLETE_REP_SOURCE); + _completeRepSource); if (value != null) return value; } @@ -507,7 +507,7 @@ fullSourceIterator, repToValueMap, rep, - KEY_EXPRESSION_REP_SOURCE); + _keyExpressionRepSource); // If 'converter' is defined, try to perform conversion from primary key to value if (value == null) @@ -635,7 +635,7 @@ } /** - * An interface that provides the string representation of a given value + * An interface that provides the string representation of a given value. */ protected interface RepSource { Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/LinkEventType.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/LinkEventType.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/LinkEventType.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/components/LinkEventType.java Fri Apr 21 15:45:18 2006 @@ -23,10 +23,6 @@ public class LinkEventType { - private final String _name; - - private final String _attributeName; - /** * Type for <code>onMouseOver</code>. This may also be called "focus". */ @@ -71,6 +67,10 @@ public static final LinkEventType MOUSE_UP = new LinkEventType("MOUSE_UP", "onMouseUp"); + private final String _name; + + private final String _attributeName; + /** * Constructs a new type of event. The name should match the static final variable (i.e., * MOUSE_OVER) and the attributeName is the name of the HTML attribute to be managed (i.e., @@ -100,4 +100,4 @@ { return "LinkEventType[" + _name + "]"; } -} \ No newline at end of file +} Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java?rev=396027&r1=395981&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/AjaxShellDelegate.java Fri Apr 21 15:45:18 2006 @@ -11,7 +11,7 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. -package org.apache.tapestry.ajax; +package org.apache.tapestry.dojo; import org.apache.tapestry.IAsset; import org.apache.tapestry.IMarkupWriter; Added: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/IWidget.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/IWidget.java?rev=396027&view=auto ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/IWidget.java (added) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/IWidget.java Fri Apr 21 15:45:18 2006 @@ -0,0 +1,40 @@ +// Copyright Apr 21, 2006 The Apache Software Foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +package org.apache.tapestry.dojo; + +import org.apache.tapestry.IMarkupWriter; +import org.apache.tapestry.IRequestCycle; + + +/** + * Represents a tapestry component that delegates part of its + * functionality / UI to a corresponding browser <a href="http://dojotoolkit.org">dojo</a> + * widget instance. + * + * @author jkuhnert + */ +public interface IWidget +{ + + /** + * Similar to the semantics involved with normal <code>AbstractComponent.renderComponent</code> + * method writing component state to the output stream. + * + * @param writer + * The markup writer used to write any output. + * @param cycle + * The corresponding request. + */ + void renderWidget(IMarkupWriter writer, IRequestCycle cycle); +} Added: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/Widget.js URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/Widget.js?rev=396027&view=auto ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/Widget.js (added) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/dojo/Widget.js Fri Apr 21 15:45:18 2006 @@ -0,0 +1,63 @@ +// Copyright 2006 The Apache Software Foundation +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +dojo.provide("tapestry.widget"); + +dojo.require("dojo.widget"); +dojo.require("dojo.dom"); +dojo.require("dojo.event"); +dojo.require("dojo.lang.common"); + +// global Tapestry object definition +//var tapestry; +//if(dj_undef("tapestry")){ tapestry={}; } + +// Define core widget management methods +tapestry.widget = { + + /** + * Ensures that the widget specified currently exists, + * and if not creates a new widget via dojo.widget.createWidget(). + * + * @param widgetId + * The unique widgetId to search for, will also be + * used to locate and create the widget via the corresponding + * dom node id if the widget doesn't already exist. + * @param type + * The dojo widget type string. Ie "dialog" / "combobox" / etc.. + * @param props + * The js properties object to create the widget with. + */ + synchronizeWidgetState : function(widgetId, type, props){ + var widget = dojo.widget.byId(widgetId); + + if (!widget) + this.createWidget(widgetId, type, props); + }, + + /** + * Creates a new widget (if possible) via dojo.widget.createWidget() + */ + createWidget : function(widgetId, type, props) { + var node = dojo.byId(widgetId); + if (!node) { + dojo.raise("createWidget() Node not found with specified id of '" + widgetId + "'."); + return; + } + + if (!props["widgetId"]) props["widgetId"]=widgetId; + + dojo.widget.createWidget(type, props, node); + } + +} \ No newline at end of file Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java Fri Apr 21 15:45:18 2006 @@ -17,8 +17,6 @@ import java.util.HashMap; import java.util.Map; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.tapestry.IDirect; import org.apache.tapestry.IJSONRender; import org.apache.tapestry.IMarkupWriter; @@ -27,6 +25,7 @@ import org.apache.tapestry.PageRenderSupport; import org.apache.tapestry.Tapestry; import org.apache.tapestry.TapestryUtils; +import org.apache.tapestry.dojo.IWidget; import org.apache.tapestry.engine.DirectServiceParameter; import org.apache.tapestry.engine.IEngineService; import org.apache.tapestry.engine.ILink; @@ -60,11 +59,8 @@ * @author Jesse Kuhnert */ public abstract class PropertySelection extends AbstractFormComponent - implements ValidatableField, IJSONRender, IDirect + implements ValidatableField, IJSONRender, IDirect, IWidget { - /* logger */ - protected static final Log _log = LogFactory.getLog(PropertySelection.class); - /** * @see org.apache.tapestry.form.AbstractFormComponent#renderFormComponent(org.apache.tapestry.IMarkupWriter, org.apache.tapestry.IRequestCycle) */ @@ -83,25 +79,7 @@ renderIdAttribute(writer, cycle); - // if filtering add additional scripts - // TODO: This isn't real yet, just getting things mostly working first - if (isFilterOnChange()) { - - DirectServiceParameter dsp = - new DirectServiceParameter(this, new Object[]{}, - new String[]{getId()}, true); - ILink link = getDirectService().getLink(true, dsp); - - writer.attribute("dojoType", "ComboBox"); - writer.attribute("dataUrl", link.getURL()); - writer.attribute("mode", "remote"); - - Map parms = new HashMap(); - parms.put("select", this); - - PageRenderSupport prs = TapestryUtils.getPageRenderSupport(cycle, this); - getScript().execute(cycle, prs, parms); - } + renderWidget(writer, cycle); renderDelegateAttributes(writer, cycle); @@ -143,7 +121,7 @@ } writer.end(); // <select> - + renderDelegateSuffix(writer, cycle); } @@ -173,37 +151,53 @@ */ 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 + if (getFilter() != null && getFilter().trim().length() > 0 && label.toLowerCase().indexOf(getFilter().toLowerCase()) > -1) { writer.put(value, label); } } } + /** + * + * [EMAIL PROTECTED] + */ + public void renderWidget(IMarkupWriter writer, IRequestCycle cycle) + { + if (!isFilterOnChange() || cycle.isRewinding()) return; + + DirectServiceParameter dsp = + new DirectServiceParameter(this, new Object[]{}, + new String[]{getId()}, true); + ILink link = getDirectService().getLink(true, dsp); + + Map parms = new HashMap(); + parms.put("id", this.getClientId()); + parms.put("props", "{dataUrl:'" + link.getURL() + "', mode: 'remote'}"); + + PageRenderSupport prs = TapestryUtils.getPageRenderSupport(cycle, this); + getScript().execute(cycle, prs, parms); + } + /** * [EMAIL PROTECTED] */ @@ -219,9 +213,9 @@ */ public void trigger(IRequestCycle cycle) { - setFilter("zeit"); + setFilter(cycle.getParameter("searchString")); } - + private boolean isEqual(Object left, Object right) { // Both null, or same object, then are equal Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.script URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.script?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.script (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.script Fri Apr 21 15:45:18 2006 @@ -3,7 +3,10 @@ "-//Apache Software Foundation//Tapestry Script Specification 3.0//EN" "http://jakarta.apache.org/tapestry/dtd/Script_3_0.dtd"> <script> -<input-symbol key="select" required="yes" /> +<include-script resource-path="/org/apache/tapestry/dojo/Widget.js"/> + +<input-symbol key="id" required="yes" /> +<input-symbol key="props" required="yes" /> <body> <unique> dojo.require("dojo.io"); @@ -13,11 +16,6 @@ </unique> </body> <initialization> - dojo.event.connect(window, "onload", function() { - dojo.debug("Parsing combo box"); - // djConfig.searchIds.push("${select.getId()}"); - // dojo.debug("searchIds length:" + djConfig.searchIds.length); - // dojo.hostenv.makeWidgets(); - }); + tapestry.widget.synchronizeWidgetState("${id}", "combobox", ${props}); </initialization> </script> Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/html/Shell.jwc Fri Apr 21 15:45:18 2006 @@ -119,7 +119,7 @@ <inject property="baseTagWriter" object="service:tapestry.url.BaseTagWriter"/> <inject property="assetService" object="service:tapestry.services.Asset"/> - <bean name="coreAjaxDelegate" class="org.apache.tapestry.ajax.AjaxShellDelegate"> + <bean name="coreAjaxDelegate" class="org.apache.tapestry.dojo.AjaxShellDelegate"> <set name="dojoSource" value="dojoSource" /> <set name="assetService" value="assetService" /> <set name="dojoPath" value="dojoPath" /> Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/parse/TemplateParser.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/parse/TemplateParser.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/parse/TemplateParser.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/parse/TemplateParser.java Fri Apr 21 15:45:18 2006 @@ -91,21 +91,6 @@ public class TemplateParser implements ITemplateParser { /** - * A "magic" component id that causes the tag with the id and its entire body to be ignored - * during parsing. - */ - - private static final String REMOVE_ID = "$remove$"; - - /** - * A "magic" component id that causes the tag to represent the true content of the template. Any - * content prior to the tag is discarded, and any content after the tag is ignored. The tag - * itself is not included. - */ - - private static final String CONTENT_ID = "$content$"; - - /** * The attribute, checked for in <span> tags, that signfies that the span is being used as * an invisible localization. * @@ -123,17 +108,9 @@ */ public static final String RAW_ATTRIBUTE_NAME = "raw"; - - /** - * Attribute name used to identify components. - * - * @since 4.0 - */ - - private String _componentAttributeName; - - private static final String PROPERTY_NAME_PATTERN = "_?[a-zA-Z]\\w*"; - + + public static final String PROPERTY_NAME_PATTERN = "_?[a-zA-Z]\\w*"; + /** * Pattern used to recognize ordinary components (defined in the specification). * @@ -141,7 +118,7 @@ */ public static final String SIMPLE_ID_PATTERN = "^(" + PROPERTY_NAME_PATTERN + ")$"; - + /** * Pattern used to recognize implicit components (whose type is defined in the template). * Subgroup 1 is the id (which may be null) and subgroup 2 is the type (which may be qualified @@ -154,6 +131,21 @@ public static final String IMPLICIT_ID_PATTERN = "^(" + PROPERTY_NAME_PATTERN + ")?@(((" + PROPERTY_NAME_PATTERN + "):)?((" + PROPERTY_NAME_PATTERN + "/)*" + PROPERTY_NAME_PATTERN + "))$"; + + /** + * A "magic" component id that causes the tag with the id and its entire body to be ignored + * during parsing. + */ + + private static final String REMOVE_ID = "$remove$"; + + /** + * A "magic" component id that causes the tag to represent the true content of the template. Any + * content prior to the tag is discarded, and any content after the tag is ignored. The tag + * itself is not included. + */ + + private static final String CONTENT_ID = "$content$"; private static final int IMPLICIT_ID_PATTERN_ID_GROUP = 1; @@ -163,6 +155,42 @@ private static final int IMPLICIT_ID_PATTERN_SIMPLE_TYPE_GROUP = 5; + private static final char[] COMMENT_START = new char[] + { '<', '!', '-', '-' }; + + private static final char[] COMMENT_END = new char[] + { '-', '-', '>' }; + + private static final char[] CLOSE_TAG = new char[] + { '<', '/' }; + + private static final int WAIT_FOR_ATTRIBUTE_NAME = 0; + + private static final int COLLECT_ATTRIBUTE_NAME = 1; + + private static final int ADVANCE_PAST_EQUALS = 2; + + private static final int WAIT_FOR_ATTRIBUTE_VALUE = 3; + + private static final int COLLECT_QUOTED_VALUE = 4; + + private static final int COLLECT_UNQUOTED_VALUE = 5; + + /** + * Conversions needed by [EMAIL PROTECTED] #convertEntitiesToPlain(String)}. + */ + + private static final String[] CONVERSIONS = + { "<", "<", ">", ">", """, "\"", "&", "&" }; + + /** + * Attribute name used to identify components. + * + * @since 4.0 + */ + + private String _componentAttributeName; + private Pattern _simpleIdPattern; private Pattern _implicitIdPattern; @@ -198,11 +226,15 @@ private char[] _templateData; /** - * List of Tag + * List of Tag. */ private List _stack = new ArrayList(); + /** + * + * @author hls + */ private static class Tag { // The element, i.e., <jwc> or virtually any other element (via jwcid attribute) @@ -409,7 +441,6 @@ */ protected void templateParseProblem(ApplicationRuntimeException exception, int line, int cursor) - throws ApplicationRuntimeException { throw exception; } @@ -449,15 +480,6 @@ } } - private static final char[] COMMENT_START = new char[] - { '<', '!', '-', '-' }; - - private static final char[] COMMENT_END = new char[] - { '-', '-', '>' }; - - private static final char[] CLOSE_TAG = new char[] - { '<', '/' }; - protected void parse() throws TemplateParseException { _cursor = 0; @@ -557,18 +579,6 @@ _blockStart = -1; } - private static final int WAIT_FOR_ATTRIBUTE_NAME = 0; - - private static final int COLLECT_ATTRIBUTE_NAME = 1; - - private static final int ADVANCE_PAST_EQUALS = 2; - - private static final int WAIT_FOR_ATTRIBUTE_VALUE = 3; - - private static final int COLLECT_QUOTED_VALUE = 4; - - private static final int COLLECT_UNQUOTED_VALUE = 5; - private void startTag() throws TemplateParseException { int cursorStart = _cursor; @@ -1371,13 +1381,6 @@ return null; } - - /** - * Conversions needed by [EMAIL PROTECTED] #convertEntitiesToPlain(String)} - */ - - private static final String[] CONVERSIONS = - { "<", "<", ">", ">", """, "\"", "&", "&" }; /** * Provided a raw input string that has been recognized to be an expression, this removes excess Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationConstraint.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationConstraint.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationConstraint.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationConstraint.java Fri Apr 21 15:45:18 2006 @@ -24,8 +24,6 @@ public class ValidationConstraint implements Serializable { - private static final long serialVersionUID = 371593028205311930L; - /** * Indicates that no value (or a value consisting only of white space) was provided for a field * that requires a non-null value. @@ -98,7 +96,7 @@ public static final ValidationConstraint CONSISTENCY = new ValidationConstraint("CONSISTENCY"); /** - * Indicates that a URL is not of the correct format + * Indicates that a URL is not of the correct format. * * @since 3.0 */ @@ -106,7 +104,7 @@ public static final ValidationConstraint URL_FORMAT = new ValidationConstraint("URL_FORMAT"); /** - * Indicates that the URL does not use one of the specified protocols + * Indicates that the URL does not use one of the specified protocols. * * @since 3.0 */ @@ -114,6 +112,8 @@ public static final ValidationConstraint DISALLOWED_PROTOCOL = new ValidationConstraint( "DISALLOWED_PROTOCOL"); + private static final long serialVersionUID = 371593028205311930L; + private final String _name; /** @@ -129,4 +129,4 @@ { return "ValidationConstraint[" + _name + "]"; } -} \ No newline at end of file +} Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationStrings.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationStrings.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationStrings.java (original) +++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/valid/ValidationStrings.java Fri Apr 21 15:45:18 2006 @@ -45,6 +45,11 @@ private static final String RESOURCE_BUNDLE = ValidationStrings.class.getName(); + private ValidationStrings() + { + // Disable construction + } + /** * Fetches the appropriate validation message pattern from the appropriate localized resource. * This method should be called with the locale of the current request. @@ -54,8 +59,4 @@ return ResourceBundle.getBundle(RESOURCE_BUNDLE, locale).getString(key); } - private ValidationStrings() - { - // Disable construction - } } Modified: tapestry/tapestry4/trunk/framework/src/js/tapestry.profile.js URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/js/tapestry.profile.js?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/js/tapestry.profile.js (original) +++ tapestry/tapestry4/trunk/framework/src/js/tapestry.profile.js Fri Apr 21 15:45:18 2006 @@ -7,7 +7,11 @@ "dojo.io.IO", "dojo.io.BrowserIO", "dojo.event.*", // NOTE: this includes topic support - "dojo.lang.*", + "dojo.lang.common", + "dojo.event", + "dojo.dom", + "dojo.html", + "dojo.json", "dojo.widget.Manager" ]; Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java (original) +++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/engine/RestartServiceTest.java Fri Apr 21 15:45:18 2006 @@ -20,7 +20,6 @@ import org.apache.commons.logging.Log; import org.apache.tapestry.IRequestCycle; -import org.apache.tapestry.services.AbsoluteURLBuilder; /** * Tests for [EMAIL PROTECTED] org.apache.tapestry.engine.RestartService}. @@ -61,11 +60,6 @@ setReturnValue(request, session); } - private AbsoluteURLBuilder newBuilder() - { - return (AbsoluteURLBuilder) newMock(AbsoluteURLBuilder.class); - } - private HttpServletResponse newServletResponse() { return (HttpServletResponse) newMock(HttpServletResponse.class); @@ -146,4 +140,4 @@ verifyControls(); } -} \ No newline at end of file +} Modified: tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/event/ReportStatusEventTest.java URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/event/ReportStatusEventTest.java?rev=396027&r1=396026&r2=396027&view=diff ============================================================================== --- tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/event/ReportStatusEventTest.java (original) +++ tapestry/tapestry4/trunk/framework/src/test/org/apache/tapestry/event/ReportStatusEventTest.java Fri Apr 21 15:45:18 2006 @@ -57,7 +57,7 @@ receiver.property("boolean-false", false); receiver.property("byte", (byte) 37); receiver.property("char", 'z'); - receiver.property("double", (double) 3.14); + receiver.property("double", 3.14); receiver.property("float", (float) 9.99); receiver.property("int", -373); receiver.property("long", 373737l); @@ -76,7 +76,7 @@ event.property("boolean-false", false); event.property("byte", (byte) 37); event.property("char", 'z'); - event.property("double", (double) 3.14); + event.property("double", 3.14); event.property("float", (float) 9.99); event.property("int", -373); event.property("long", 373737l); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]