You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/04/22 06:31:14 UTC
svn commit: r396077 - in /tapestry/tapestry4/trunk: eclipse/
examples/TimeTracker/src/context/ examples/TimeTracker/src/context/WEB-INF/
examples/TimeTracker/src/context/css/
examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/
examples/...
Author: jkuhnert
Date: Fri Apr 21 21:31:11 2006
New Revision: 396077
URL: http://svn.apache.org/viewcvs?rev=396077&view=rev
Log:
Fixed asset service (wasn't reading cached header values correctly..oops! ) , more url encoding / combobox widget fun
Added:
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/dojo.css
tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/
tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java
Modified:
tapestry/tapestry4/trunk/eclipse/TimeTracker.launch
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/Home.html
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Border.html
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.properties
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/web.xml
tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/timetracker.css
tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/DataSourceProxyFactory.java
tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/JdbcConnectionProxy.java
tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java
tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/form/PropertySelection.java
Modified: tapestry/tapestry4/trunk/eclipse/TimeTracker.launch
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/eclipse/TimeTracker.launch?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/eclipse/TimeTracker.launch (original)
+++ tapestry/tapestry4/trunk/eclipse/TimeTracker.launch Fri Apr 21 21:31:11 2006
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="org.mortbay.start.Main"/>
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/Home.html
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/Home.html?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/Home.html (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/Home.html Fri Apr 21 21:31:11 2006
@@ -26,7 +26,7 @@
<input name="fm-lastname" id="fm-lastname" type="text" />
</div>
<div id="fm-hsubmit" class="fm-req">
- <input name="Submit" value="add" type="submit" />
+ <input jwcid="@Submit" value="message:button.add" />
</div>
</fieldset>
</form>
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Border.html
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Border.html?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Border.html (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Border.html Fri Apr 21 21:31:11 2006
@@ -2,7 +2,6 @@
<link rel="shortcut icon" href="favicon.ico" type="image/gif" />
<link href="css/timetracker.css" rel="stylesheet" type="text/css" media="all" />
-<link href="css/forms.css" rel="stylesheet" type="text/css" media="all" />
<body jwcid="@Body">
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.properties
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.properties?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.properties (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/Home.properties Fri Apr 21 21:31:11 2006
@@ -1,3 +1,4 @@
new.task=Task Entry
-choose.project=Project
\ No newline at end of file
+choose.project=Project
+button.add=add
\ No newline at end of file
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/log4j.properties Fri Apr 21 21:31:11 2006
@@ -1,4 +1,4 @@
-# Copyright 2005 The Apache Software Foundation
+# 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.
@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-log4j.rootCategory=DEBUG, A1
+log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
@@ -21,11 +21,12 @@
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%c{1} [%p] %m%n
-log4j.category.org.apache.hivemind=WARN
-log4j.category.hivemind=DEBUG
-log4j.category.tapestry=DEBUG
-log4j.category.org.apache.tapestry=DEBUG
+log4j.logger.org.apache.hivemind=WARN
+log4j.logger.org.apache=INFO
+log4j.logger.hivemind=INFO
+log4j.logger.tapestry=INFO
+log4j.logger.timetracker=INFO
+log4j.logger.org.apache.tapestry=INFO
-log4j.category.org.apache.tapestry.ApplicationServlet=info
-
-log4j.category.org.apache.tapestry.timetracker=debug
+log4j.logger.org.apache.tapestry.timetracker=INFO
+log4j.logger.org.apache.tapestry.form=DEBUG
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/web.xml?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/web.xml (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/WEB-INF/web.xml Fri Apr 21 21:31:11 2006
@@ -32,7 +32,7 @@
<servlet>
<servlet-name>timetracker</servlet-name>
- <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class>
+ <servlet-class>org.apache.tapestry.timetracker.servlet.ConfigurationServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
Added: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/dojo.css
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/dojo.css?rev=396077&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/dojo.css (added)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/dojo.css Fri Apr 21 21:31:11 2006
@@ -0,0 +1,6 @@
+div.fm-hopt table.dojoComboBox {
+ width:20em;
+ display:block;
+ float:left;
+ clear:left;
+}
\ No newline at end of file
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/timetracker.css
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/timetracker.css?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/timetracker.css (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/context/css/timetracker.css Fri Apr 21 21:31:11 2006
@@ -1,4 +1,6 @@
@import url("undohtml.css"); /* CSS to undo some default browser css that gets in the way more than it helps */
+@import url("dojo.css");
+@import url("forms.css");
body {
width: auto;
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/DataSourceProxyFactory.java
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/DataSourceProxyFactory.java?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/DataSourceProxyFactory.java (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/DataSourceProxyFactory.java Fri Apr 21 21:31:11 2006
@@ -49,7 +49,6 @@
_log = parms.getLog();
try {
- _log.debug("Opening connection ");
Connection conn = _dataSource.getConnection();
return Proxy.newProxyInstance(this.getClass()
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/JdbcConnectionProxy.java
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/JdbcConnectionProxy.java?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/JdbcConnectionProxy.java (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/jdbc/JdbcConnectionProxy.java Fri Apr 21 21:31:11 2006
@@ -92,15 +92,9 @@
public void threadDidDiscardService()
{
try {
- if (_log.isDebugEnabled())
- _log.debug("threadDidDiscardService(): Closing connection: " + _conn.isClosed());
-
if (!_conn.isClosed()) {
- if (!_conn.getAutoCommit()) {
- if (_log.isDebugEnabled())
- _log.debug("Committing uncommitted transaction.");
+ if (!_conn.getAutoCommit())
_conn.commit();
- }
}
} catch (SQLException e) {
_log.error("SQL error cleaning up connection, rolling back transaction(if any).", e);
Modified: tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java (original)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/page/TaskEntryPage.java Fri Apr 21 21:31:11 2006
@@ -14,7 +14,6 @@
package org.apache.tapestry.timetracker.page;
import java.util.Date;
-import java.util.List;
import org.apache.tapestry.annotations.Component;
import org.apache.tapestry.annotations.InjectObject;
@@ -51,14 +50,13 @@
public abstract Date getStartTime();
+
/**
* Selection model for projects.
* @return
*/
public IPropertySelectionModel getProjectModel()
{
- List<Project> projects = getProjectDao().listProjects();
- projects.add(0, new Project(-1, "Choose.."));
- return new BeanPropertySelectionModel(projects, "name");
+ return new BeanPropertySelectionModel(getProjectDao().listProjects(), "name");
}
}
Added: tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java?rev=396077&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java (added)
+++ tapestry/tapestry4/trunk/examples/TimeTracker/src/java/org/apache/tapestry/timetracker/servlet/ConfigurationServlet.java Fri Apr 21 21:31:11 2006
@@ -0,0 +1,71 @@
+// 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.timetracker.servlet;
+
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+
+import org.apache.log4j.PropertyConfigurator;
+import org.apache.tapestry.ApplicationServlet;
+
+/**
+ * Used to configure logging.
+ *
+ * @author jkuhnert
+ */
+public class ConfigurationServlet extends ApplicationServlet implements ServletContextListener {
+
+ /**
+ * generated.
+ */
+ private static final long serialVersionUID = -5959967554036278600L;
+
+ /**
+ * @see javax.servlet.GenericServlet#init()
+ */
+ public void init() {
+ try {
+ // Use basic logging configuration until Log4j is properly configured
+ PropertyConfigurator.configure(getServletContext().getRealPath("/")
+ + "/WEB-INF/log4j.properties");
+ super.init();
+ } catch (Throwable t) {
+ t.printStackTrace();
+ }
+ }
+
+ /**
+ * @see javax.servlet.Servlet#destroy()
+ */
+ public void destroy()
+ {
+ super.destroy();
+ org.apache.log4j.LogManager.shutdown();
+ }
+
+ /**
+ * @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
+ */
+ public void contextDestroyed(ServletContextEvent arg0)
+ {
+ org.apache.log4j.LogManager.shutdown();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void contextInitialized(ServletContextEvent arg0)
+ {
+ }
+}
Modified: tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java
URL: http://svn.apache.org/viewcvs/tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java?rev=396077&r1=396076&r2=396077&view=diff
==============================================================================
--- tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java (original)
+++ tapestry/tapestry4/trunk/framework/src/java/org/apache/tapestry/asset/AssetService.java Fri Apr 21 21:31:11 2006
@@ -21,6 +21,9 @@
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
@@ -96,6 +99,8 @@
private static final int BUFFER_SIZE = 10240;
+ private static final DateFormat CACHED_FORMAT = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
+
/** @since 4.0 */
private ClassResolver _classResolver;
@@ -260,8 +265,10 @@
String header = _request.getHeader("If-Modified-Since");
long modify = -1;
- if (header != null)
- modify = Long.parseLong(header);
+ try {
+ if (header != null)
+ modify = CACHED_FORMAT.parse(header).getTime();
+ } catch (ParseException e) { e.printStackTrace(); }
if (resource.lastModified() > modify)
return false;
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=396077&r1=396076&r2=396077&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 21:31:11 2006
@@ -60,7 +60,7 @@
*/
public abstract class PropertySelection extends AbstractFormComponent
implements ValidatableField, IJSONRender, IDirect, IWidget
-{
+{
/**
* @see org.apache.tapestry.form.AbstractFormComponent#renderFormComponent(org.apache.tapestry.IMarkupWriter, org.apache.tapestry.IRequestCycle)
*/
@@ -79,8 +79,6 @@
renderIdAttribute(writer, cycle);
- renderWidget(writer, cycle);
-
renderDelegateAttributes(writer, cycle);
getValidatableFieldSupport().renderContributions(this, writer, cycle);
@@ -88,39 +86,45 @@
// Apply informal attributes.
renderInformalParameters(writer, cycle);
- writer.println();
-
- IPropertySelectionModel model = getModel();
-
- if (model == null)
- throw Tapestry.createRequiredParameterException(this, "model");
-
- int count = model.getOptionCount();
- boolean foundSelected = false;
- Object value = getValue();
-
- for (int i = 0; i < count; i++)
- {
- Object option = model.getOption(i);
+ if (isFilterOnChange()) {
+ renderWidget(writer, cycle);
+ } else {
- writer.begin("option");
- writer.attribute("value", model.getValue(i));
+ writer.println();
- if (!foundSelected && isEqual(option, value))
- {
- writer.attribute("selected", "selected");
-
- foundSelected = true;
- }
+ IPropertySelectionModel model = getModel();
+
+ if (model == null)
+ throw Tapestry.createRequiredParameterException(this, "model");
- writer.print(model.getLabel(i));
+ int count = model.getOptionCount();
+ boolean foundSelected = false;
+ Object value = getValue();
- writer.end();
+ for (int i = 0; i < count; i++)
+ {
+ Object option = model.getOption(i);
- writer.println();
- }
+ writer.begin("option");
+ writer.attribute("value", model.getValue(i));
+
+ if (!foundSelected && isEqual(option, value))
+ {
+ writer.attribute("selected", "selected");
+
+ foundSelected = true;
+ }
+
+ writer.print(model.getLabel(i));
+
+ writer.end();
+
+ writer.println();
+ }
+
+ writer.end(); // <select>
- writer.end(); // <select>
+ }
renderDelegateSuffix(writer, cycle);
}
@@ -163,14 +167,14 @@
String value = model.getValue(i);
String label = model.getLabel(i);
- if (getFilter() == null || getFilter().length() <= 0) {
+ if (getFilter() == null || getFilter().trim().length() <= 0) {
writer.put(value, label);
continue;
}
// primitive filter, for now
// TODO: Create filter interface in IPropertySelectionModel
- if (getFilter() != null && getFilter().trim().length() > 0
+ if (getFilter() != null
&& label.toLowerCase().indexOf(getFilter().toLowerCase()) > -1) {
writer.put(value, label);
}
@@ -183,7 +187,7 @@
*/
public void renderWidget(IMarkupWriter writer, IRequestCycle cycle)
{
- if (!isFilterOnChange() || cycle.isRewinding()) return;
+ if (cycle.isRewinding()) return;
DirectServiceParameter dsp =
new DirectServiceParameter(this, new Object[]{},
@@ -192,7 +196,7 @@
Map parms = new HashMap();
parms.put("id", this.getClientId());
- parms.put("props", "{dataUrl:'" + link.getURL() + "', mode: 'remote'}");
+ parms.put("props", "{dataUrl:'" + link.getURL() + "&filter=%{searchString}', mode: 'remote', forceValidOption:true}");
PageRenderSupport prs = TapestryUtils.getPageRenderSupport(cycle, this);
getScript().execute(cycle, prs, parms);
@@ -205,15 +209,15 @@
{
return false;
}
-
- /**
+
+ /**
* Triggerd by using filterOnChange logic.
*
* {@inheritDoc}
*/
public void trigger(IRequestCycle cycle)
{
- setFilter(cycle.getParameter("searchString"));
+ setFilter(cycle.getParameter("filter"));
}
private boolean isEqual(Object left, Object right)
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org