You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by Sérgio 7 Reais <co...@newenterprise.com.br> on 2007/06/05 06:45:28 UTC
Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
----- Original Message -----
From: nbubna@apache.org
To: commits@velocity.apache.org
Sent: Monday, June 04, 2007 9:24 PM
Subject: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
Author: nbubna
Date: Mon Jun 4 17:24:29 2007
New Revision: 544331
URL: http://svn.apache.org/viewvc?view=rev&rev=544331
Log:
- copy tools (sans deprecated methods) from the o.a.v.t.view.* subpackages to the o.a.v.t.view package for consistency with GenericTools and VelocityStruts package structures.
- leave deprecated versions (including deprecated methods) in old packages
- update VelocityStruts and o.a.v.t.view.tools.xml to use tools in new locations
- rename BrowserSnifferTool and ParameterParser to BrowserTool and ParameterTool for better consistency with other tools
Added:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java Mon Jun 4 17:24:29 2007
@@ -25,7 +25,7 @@
import org.apache.struts.action.SecurePlugInInterface;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.config.SecureActionConfig;
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
/**
* Tool to be able to use Struts SSL Extensions with Velocity.
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java Mon Jun 4 17:24:29 2007
@@ -19,7 +19,7 @@
* under the License.
*/
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
import org.apache.velocity.runtime.log.Log;
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -144,15 +144,6 @@
}
this.session = request.getSession(false);
setup(request);
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,7 +31,7 @@
* <p>browser-sniffing tool (session or request scope requested, session scope advised).</p>
* <p></p>
* <p><b>Usage:</b></p>
- * <p>BrowserSniffer defines properties that are used to test the client browser, operating system, device...
+ * <p>BrowserTool defines properties that are used to test the client browser, operating system, device...
* Apart from properties related to versioning, all properties are booleans.</p>
* <p>The following properties are available:</p>
* <ul>
@@ -61,7 +61,7 @@
*/
@DefaultKey("browser")
@InvalidScope("application")
-public class BrowserSnifferTool implements java.io.Serializable
+public class BrowserTool implements java.io.Serializable
{
private static final long serialVersionUID = 1734529350532353339L;
@@ -85,15 +85,6 @@
throw new NullPointerException("request should not be null");
}
userAgent = request.getHeader("User-Agent").toLowerCase();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/* Generic getter for unknown tests
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -49,7 +49,7 @@
* <tool>
* <key>context</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ContextTool</class>
+ * <class>org.apache.velocity.tools.view.ContextTool</class>
* </tool>
* </pre></p>
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>View tool for convenient cookie access and creation.</p>
@@ -37,7 +36,7 @@
* <tool>
* <key>cookie</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.CookieTool</class>
+ * <class>org.apache.velocity.tools.view.CookieTool</class>
* </tool>
* </pre></p>
*
@@ -57,17 +56,6 @@
protected HttpServletResponse response;
// --------------------------------------- Setup Methods -------------
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- }
- }
/**
* Sets the current {@link HttpServletRequest}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.view.ImportSupport;
-import org.apache.velocity.tools.view.ViewContext;
/**
* General-purpose text-importing view tool for templates.
@@ -35,7 +34,7 @@
* <tool>
* <key>import</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ImportTool</class>
+ * <class>org.apache.velocity.tools.view.ImportTool</class>
* </tool>
* </pre></p>
*
@@ -47,24 +46,6 @@
@ValidScope("request")
public class ImportTool extends ImportSupport
{
- /**
- * Default constructor. Tool must be initialized before use.
- */
- public ImportTool() {}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Returns the supplied URL rendered as a String.
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -33,7 +33,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.view.ServletUtils;
/**
@@ -48,7 +47,7 @@
* <tool>
* <key>link</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.LinkTool</class>
+ * <class>org.apache.velocity.tools.view.LinkTool</class>
* </tool>
* </pre></p>
*
@@ -151,19 +150,6 @@
// --------------------------------------- Setup Methods -------------
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Sets the current {@link HttpServletRequest}. This is required
* for this tool to operate and will throw a NullPointerException
@@ -210,13 +196,6 @@
this.LOG = log;
}
- @Deprecated
- public void setXhtml(boolean useXhtml)
- {
- queryDataDelim =
- (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
- }
-
/**
* <p>Controls the delimiter used for separating query data pairs.
* By default, the standard '&' character is used.</p>
@@ -231,7 +210,8 @@
*/
public void setXHTML(boolean useXhtml)
{
- setXhtml(useXhtml);
+ queryDataDelim =
+ (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.i18n;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -61,7 +61,7 @@
protected VelocityEngine engine;
/**
- * Creates a new uninitialized instance. Call {@link #init}
+ * Creates a new uninitialized instance. Call {@link #configure}
* to initialize it.
*/
public MultiViewsTool()
@@ -99,15 +99,6 @@
}
this.engine = ctx.getVelocityEngine();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewToolContext)
- {
- configure((ViewToolContext)obj);
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Utility class for easy parsing of {@link ServletRequest} parameters.</p>
@@ -39,7 +38,7 @@
* <tool>
* <key>params</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ParameterParser</class>
+ * <class>org.apache.velocity.tools.view.ParameterTool</class>
* </tool>
* </pre></p>
*
@@ -52,14 +51,14 @@
*/
@DefaultKey("params")
@ValidScope("request")
-public class ParameterParser extends ValueParser
+public class ParameterTool extends ValueParser
{
private ServletRequest request;
/**
* Constructs a new instance
*/
- public ParameterParser()
+ public ParameterTool()
{}
/**
@@ -67,17 +66,11 @@
*
* @param request the {@link ServletRequest} to be parsed
*/
- public ParameterParser(ServletRequest request)
+ public ParameterTool(ServletRequest request)
{
setRequest(request);
}
- @Deprecated
- public void init(Object obj)
- {
- //Does nothing
- }
-
/**
* Sets the current {@link ServletRequest}
*
@@ -98,7 +91,7 @@
{
if (request == null)
{
- throw new UnsupportedOperationException("Request is null. ParameterParser must be initialized first!");
+ throw new UnsupportedOperationException("Request is null. ParameterTool must be initialized first!");
}
return request;
}
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,6 @@
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.generic.RenderTool;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.config.InvalidScope;
/**
@@ -59,7 +58,7 @@
* <tool>
* <key>render</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ViewRenderTool</class>
+ * <class>org.apache.velocity.tools.view.ViewRenderTool</class>
* <parameter name="parse.depth" value="10"/>
* </tool>
* </pre>
@@ -85,15 +84,6 @@
*/
public ViewRenderTool()
{}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof Context)
- {
- setVelocityContext((Context)obj);
- }
- }
/**
* Sets the current {@link Context}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.generic.ResourceTool;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Tool for accessing ResourceBundles and formatting messages therein.</p>
@@ -39,7 +38,7 @@
* Toolbox configuration example:
* <tool>
* <key>text</key>
- * <class>org.apache.velocity.tools.view.tools.ViewResourceTool</class>
+ * <class>org.apache.velocity.tools.view.ViewResourceTool</class>
* <parameter name="bundles" value="resources,com.foo.moreResources"/>
* </tool>
* </pre></p>
@@ -65,16 +64,6 @@
@InvalidScope({"application","session"})
public class ViewResourceTool extends ResourceTool
{
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
- }
-
/**
* Sets the current {@link ServletRequest}
*
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -19,88 +19,14 @@
* under the License.
*/
-import java.util.Locale;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewToolContext;
/**
- * Allows for transparent content negotiation in a manner mimicking
- * Apache httpd's <a
- * href="http://httpd.apache.org/docs-2.0/content-negotiation.html">MultiViews</a>.
- *
- * <p>Reads the default language out of the ViewContext as
- * <code>org.apache.velocity.tools.view.i18n.defaultLanguage</code>.
- * See {@link #findLocalizedResource(String, String)} and {@link
- * #findLocalizedResource(String, Locale)} for usage.</p>
- *
- * @version $Id$
- * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
+ * Use {@link org.apache.velocity.tools.view.MultiViewsTool}.
*/
-@DefaultKey("i18n")
-@InvalidScope("application")
-public class MultiViewsTool
+@Deprecated
+public class MultiViewsTool extends org.apache.velocity.tools.view.MultiViewsTool
{
- /**
- * The key used to search initialization, context, and JVM
- * parameters for the default language to use.
- */
- protected static final String DEFAULT_LANGUAGE_KEY =
- "org.apache.velocity.tools.view.i18n.defaultLanguage";
-
- /**
- * The two character abbreviation for the request's default
- * language.
- */
- protected String defaultLanguage;
-
- protected VelocityEngine engine;
-
- /**
- * Creates a new uninitialized instance. Call {@link #init}
- * to initialize it.
- */
- public MultiViewsTool()
- {
- }
-
- /**
- * Extracts the default language from the specified
- * <code>ViewContext</code>, looking first at the Velocity
- * context, then the servlet context, then lastly at the JVM
- * default. This "narrow scope to wide scope" pattern makes it
- * easy to setup language overrides at different levels within
- * your application.
- *
- * @param obj the current ViewContext
- * @throws IllegalArgumentException if the param is not a ViewContext
- */
- public void configure(Map params)
- {
- configure((ViewToolContext)params.get(ViewToolContext.CONTEXT_KEY));
- }
-
- protected void configure(ViewToolContext ctx)
- {
- defaultLanguage = (String) ctx.get(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- ServletContext sc = ctx.getServletContext();
- defaultLanguage = (String) sc.getAttribute(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- // Use JVM default.
- defaultLanguage = Locale.getDefault().getLanguage();
- }
- }
-
- this.engine = ctx.getVelocityEngine();
- }
-
@Deprecated
public void init(Object obj)
{
@@ -109,74 +35,4 @@
configure((ViewToolContext)obj);
}
}
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * language extracted from <code>locale</code>.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name, Locale locale)
- {
- return findLocalizedResource(name, locale.getLanguage());
- }
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * default language.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name)
- {
- return findLocalizedResource(defaultLanguage);
- }
-
- /**
- * <p>Finds the a localized version of the requested Velocity
- * resource (such as a file or template) which is most appropriate
- * for the locale of the current request. Use in conjuction with
- * Apache httpd's <code>MultiViews</code>, or by itself.</p>
- *
- * <p>Usage from a template would be something like the following:
- * <blockquote><code><pre>
- * #parse ($multiviews.findLocalizedResource("header.vm", "en"))
- * #include ($multiviews.findLocalizedResource("my_page.html", "en"))
- * #parse ($multiviews.findLocalizedResource("footer.vm", "en"))
- * </pre></code></blockquote>
- *
- * You might also wrap this method using another pull/view tool
- * which does internationalization/localization/content negation
- * for a single point of access.</p>
- *
- * @param name The unlocalized name of the file to find.
- * @param language The language to find localized context for.
- * @return The localized file name, or <code>name</code> if it is
- * not localizable.
- */
- public String findLocalizedResource(String name, String language)
- {
- String localizedName = name + '.' + language;
- // templateExists() checks for static content as well
- if (!engine.resourceExists(localizedName))
- {
- // Fall back to the default lanaguage.
- String defaultLangSuffix = '.' + defaultLanguage;
- if (localizedName.endsWith(defaultLangSuffix))
- {
- // Assume no localized version of the resource.
- localizedName = name;
- }
- else
- {
- localizedName = name + defaultLangSuffix;
- if (!engine.resourceExists(localizedName))
- {
- localizedName = name;
- }
- }
- }
- return localizedName;
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml Mon Jun 4 17:24:29 2007
@@ -22,20 +22,20 @@
<tools>
<data type="boolean" key="VIEW_TOOLS_AVAILABLE" value="true"/>
<toolbox scope="request">
- <tool class="org.apache.velocity.tools.view.tools.ContextTool"/>
- <tool class="org.apache.velocity.tools.view.tools.CookieTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ImportTool"/>
- <tool class="org.apache.velocity.tools.view.tools.LinkTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ParameterParser"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewRenderTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewResourceTool"/>
+ <tool class="org.apache.velocity.tools.view.ContextTool"/>
+ <tool class="org.apache.velocity.tools.view.CookieTool"/>
+ <tool class="org.apache.velocity.tools.view.ImportTool"/>
+ <tool class="org.apache.velocity.tools.view.LinkTool"/>
+ <tool class="org.apache.velocity.tools.view.ParameterTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewRenderTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewResourceTool"/>
<!--
These are not directly useable.
- <tool class="org.apache.velocity.tools.view.tools.AbstractPagerTool"/>
- <tool class="org.apache.velocity.tools.view.tools.AbstractSearchTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractPagerTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractSearchTool"/>
-->
</toolbox>
<toolbox scope="session" createSession="false">
- <tool class="org.apache.velocity.tools.view.tools.BrowserSnifferTool"/>
+ <tool class="org.apache.velocity.tools.view.BrowserTool"/>
</toolbox>
</tools>
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -19,133 +19,15 @@
* under the License.
*/
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewContext;
/**
- * <p>Abstract view tool for doing request-based pagination of
- * items in an a list.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) method.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the current list index and,
- * optionally, the number of items to display per page.
- * Upon extracting these parameters, they should be set using
- * the provided setIndex(int) and setItemsPerPage(int) methods.
- * A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * You can also set the list of items to be paged at this point
- * using the setItems(List) method, or you can always set the
- * item list at another point (even from within the template).
- * </p>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * #if( $pager.hasItems() )
- * Showing $!pager.pageDescription<br>
- * #set( $i = $pager.index )
- * #foreach( $item in $pager.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $pager.pagesAvailable > 1 )
- * #set( $pagelink = $link.self.param("show",$!pager.itemsPerPage) )
- * #if( $pager.prevIndex )
- * <a href="$pagelink.param('index',$!pager.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $pager.slip )
- * #if( $index == $pager.index )
- * <b>$pager.pageNumber</b>
- * #else
- * <a href="$pagelink.param('index',$!index)">$!pager.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $pager.nextIndex )
- * <a href="$pagelink.param('index',$!pager.nextIndex)">Next</a>
- * #end
- * #end
- * #else
- * No items in list.
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>pager</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MyPagerTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.2
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.AbstractPagerTool}
*/
-@DefaultKey("pager")
-@InvalidScope({"application","session"})
-public abstract class AbstractPagerTool
+@Deprecated
+public abstract class AbstractPagerTool extends
+ org.apache.velocity.tools.view.AbstractPagerTool
{
-
- /** the default number of items shown per page */
- public static final int DEFAULT_ITEMS_PER_PAGE = 10;
-
- /** the default max number of page indices to list */
- public static final int DEFAULT_SLIP_SIZE = 20;
-
- /** the key under which items are stored in session */
- protected static final String STORED_ITEMS_KEY =
- AbstractPagerTool.class.getName();
-
- private List items;
- private int index = 0;
- private int slipSize = DEFAULT_SLIP_SIZE;
- private int itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- protected HttpSession session;
-
- /**
- * Initializes this tool with the specified {@link HttpServletRequest}.
- * This is required for this tool to operate and will throw a
- * NullPointerException if this is not set or is set to {@code null}.
- */
- public void setRequest(HttpServletRequest request)
- {
- if (request == null)
- {
- throw new NullPointerException("request should not be null");
- }
- this.session = request.getSession(false);
- setup(request);
- }
-
@Deprecated
public void init(Object obj)
{
@@ -154,431 +36,4 @@
setRequest(((ViewContext)obj).getRequest());
}
}
-
- /**
- * Abstract method to make it as obvious as possible just
- * where implementing classes should be retrieving and configuring
- * display parameters.
- * <p>A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- *
- * @param request the current HttpServletRequest
- */
- public abstract void setup(HttpServletRequest request);
-
- /* ---------------------- mutators ----------------------------- */
-
-
- /**
- * Sets the item list to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- items = null;
- index = 0;
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
-
- /**
- * Sets the List to page through.
- *
- * @param items - the {@link List} of items to be paged through
- */
- public void setItems(List items)
- {
- this.items = items;
- setStoredItems(items);
- }
-
- /**
- * Sets the index of the first result in the current page
- *
- * @param index the result index to start the current page with
- */
- public void setIndex(int index)
- {
- if (index < 0)
- {
- /* quietly override to a reasonable value */
- index = 0;
- }
- this.index = index;
- }
-
- /**
- * Sets the number of items returned in a page of items
- *
- * @param itemsPerPage the number of items to be returned per page
- */
- public void setItemsPerPage(int itemsPerPage)
- {
- if (itemsPerPage < 1)
- {
- /* quietly override to a reasonable value */
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
- this.itemsPerPage = itemsPerPage;
- }
-
- /**
- * Sets the number of result page indices for {@link #getSlip} to list.
- * (for google-ish result page links).
- *
- * @see #getSlip
- * @param slipSize - the number of result page indices to list
- */
- public void setSlipSize(int slipSize)
- {
- if (slipSize < 2)
- {
- /* quietly override to a reasonable value */
- slipSize = DEFAULT_SLIP_SIZE;
- }
- this.slipSize = slipSize;
- }
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Returns the set number of items to be displayed per page of items
- *
- * @return current number of items shown per page
- */
- public int getItemsPerPage()
- {
- return itemsPerPage;
- }
-
- /**
- * Returns the number of result page indices {@link #getSlip}
- * will return per request (if available).
- *
- * @return the number of result page indices {@link #getSlip}
- * will try to return
- */
- public int getSlipSize()
- {
- return slipSize;
- }
-
-
- /**
- * Returns the current search result index.
- *
- * @return the index for the beginning of the current page
- */
- public int getIndex()
- {
- return index;
- }
-
-
- /**
- * Checks whether or not the result list is empty.
- *
- * @return <code>true</code> if the result list is not empty.
- */
- public boolean hasItems()
- {
- return !getItems().isEmpty();
- }
-
- /**
- * Returns the item list. This is guaranteed
- * to never return <code>null</code>.
- *
- * @return {@link List} of all the items
- */
- public List getItems()
- {
- if (items == null)
- {
- items = getStoredItems();
- }
-
- return (items != null) ? items : Collections.EMPTY_LIST;
- }
-
- /**
- * Returns the index of the last item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned.
- *
- * @return index for the last item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getLastIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index + itemsPerPage - 1));
- }
-
- /**
- * Returns the index for the next page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the next page or <code>null</code> if none exists
- */
- public Integer getNextIndex()
- {
- int next = index + itemsPerPage;
- if (next < getTotal())
- {
- return new Integer(next);
- }
- return null;
- }
-
- /**
- * Returns the index of the first item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned. This is different than {@link #getIndex()} in that it
- * is adjusted to fit the reality of the items available and is not a
- * mere accessor for the current, user-set index value.
- *
- * @return index for the first item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getFirstIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index));
- }
-
- /**
- * Return the index for the previous page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the previous page or <code>null</code> if none exists
- */
- public Integer getPrevIndex()
- {
- int prev = Math.min(index, getTotal()) - itemsPerPage;
- if (index > 0)
- {
- return new Integer(Math.max(0, prev));
- }
- return null;
- }
-
- /**
- * Returns the number of pages that can be made from this list
- * given the set number of items per page.
- */
- public int getPagesAvailable()
- {
- return (int)Math.ceil(getTotal() / (double)itemsPerPage);
- }
-
-
- /**
- * Returns the current "page" of search items.
- *
- * @return a {@link List} of items for the "current page"
- */
- public List getPage()
- {
- /* return null if we have no items */
- if (!hasItems())
- {
- return null;
- }
- /* quietly keep the page indices to legal values for robustness' sake */
- int start = getFirstIndex().intValue();
- int end = getLastIndex().intValue() + 1;
- return getItems().subList(start, end);
- }
-
- /**
- * Returns the "page number" for the specified index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @param i the index that you want the page number for
- * @return the approximate "page number" for the specified index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber(int i)
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(1 + i / itemsPerPage);
- }
-
-
- /**
- * Returns the "page number" for the current index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @return the approximate "page number" for the current index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber()
- {
- return getPageNumber(index);
- }
-
- /**
- * Returns the total number of items available.
- * @since VelocityTools 1.3
- */
- public int getTotal()
- {
- if (!hasItems())
- {
- return 0;
- }
- return getItems().size();
- }
-
- /**
- * <p>Returns a description of the current page. This implementation
- * displays a 1-based range of result indices and the total number
- * of items. (e.g. "1 - 10 of 42" or "7 of 7") If there are no items,
- * this will return "0 of 0".</p>
- *
- * <p>Sub-classes may override this to provide a customized
- * description (such as one in another language).</p>
- *
- * @return a description of the current page
- */
- public String getPageDescription()
- {
- if (!hasItems())
- {
- return "0 of 0";
- }
-
- StringBuffer out = new StringBuffer();
- int first = getFirstIndex().intValue() + 1;
- int total = getTotal();
- if (first >= total)
- {
- out.append(total);
- out.append(" of ");
- out.append(total);
- }
- else
- {
- int last = getLastIndex().intValue() + 1;
- out.append(first);
- out.append(" - ");
- out.append(last);
- out.append(" of ");
- out.append(total);
- }
- return out.toString();
- }
-
- /**
- * Returns a <b>S</b>liding <b>L</b>ist of <b>I</b>ndices for <b>P</b>ages
- * of items.
- *
- * <p>Essentially, this returns a list of item indices that correspond
- * to available pages of items (as based on the set items-per-page).
- * This makes it relativly easy to do a google-ish set of links to
- * available pages.</p>
- *
- * <p>Note that this list of Integers is 0-based to correspond with the
- * underlying result indices and not the displayed page numbers (see
- * {@link #getPageNumber}).</p>
- *
- * @return {@link List} of Integers representing the indices of result
- * pages or empty list if there's one or less pages available
- */
- public List getSlip()
- {
- /* return an empty list if there's no pages to list */
- int totalPgs = getPagesAvailable();
- if (totalPgs <= 1)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* page number is 1-based so decrement it */
- int curPg = getPageNumber().intValue() - 1;
-
- /* start at zero or just under half of max slip size
- * this keeps "forward" and "back" pages about even
- * but gives preference to "forward" pages */
- int slipStart = Math.max(0, (curPg - (slipSize / 2)));
-
- /* push slip end as far as possible */
- int slipEnd = Math.min(totalPgs, (slipStart + slipSize));
-
- /* if we're out of "forward" pages, then push the
- * slip start toward zero to maintain slip size */
- if (slipEnd - slipStart < slipSize)
- {
- slipStart = Math.max(0, slipEnd - slipSize);
- }
-
- /* convert 0-based page numbers to indices and create list */
- List slip = new ArrayList(slipEnd - slipStart);
- for (int i=slipStart; i < slipEnd; i++)
- {
- slip.add(new Integer(i * itemsPerPage));
- }
- return slip;
- }
-
- /* ---------------------- protected methods ------------------------ */
-
- /**
- * Retrieves stored search items (if any) from the user's
- * session attributes.
- *
- * @return the {@link List} retrieved from memory
- */
- protected List getStoredItems()
- {
- if (session != null)
- {
- return (List)session.getAttribute(STORED_ITEMS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search items in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search items somewhere besides the
- * HttpSession or to prevent storage of items across requests. In
- * the former situation, you must also override getStoredItems().</p>
- *
- * @param items the {@link List} to be stored
- */
- protected void setStoredItems(List items)
- {
- if (session != null)
- {
- session.setAttribute(STORED_ITEMS_KEY, items);
- }
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -19,169 +19,15 @@
* under the License.
*/
-import java.util.Collections;
import java.util.List;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
/**
- * <p>Abstract view tool for doing "searching" and robust
- * pagination of search results. The goal here is to provide a simple
- * and uniform API for "search tools" that can be used in velocity
- * templates (or even a standard Search.vm template). In particular,
- * this class provides good support for result pagination and some
- * very simple result caching.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) and executeQuery(Object)
- * methods.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the search criteria, the current
- * list index, and optionally, the number of items to display
- * per page of results. Upon extracting these parameters, they
- * should be set using the provided setCriteria(Object),
- * setIndex(int), and setItemsPerPage(int) methods. A simple
- * implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setCriteria(pp.getString("find"));
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * <p>
- * The setCriteria(Object) method takes an Object in order to
- * allow the search criteria to meet your needs. Your criteria
- * may be as simple as a single string, an array of strings, or
- * whatever you like. The value passed into this method is that
- * which will ultimately be passed into executeQuery(Object) to
- * perform the search and return a list of results. A simple
- * implementation might be like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * <form name="search" method="get" action="$link.setRelative('search.vm')">
- * <input type="text"name="find" value="$!search.criteria">
- * <input type="submit" value="Find">
- * </form>
- * #if( $search.hasItems() )
- * Showing $!search.pageDescription<br>
- * #set( $i = $search.index )
- * #foreach( $item in $search.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $search.pagesAvailable > 1 )
- * #set( $pagelink = $link.setRelative('search.vm').addQueryData("find",$!search.criteria).addQueryData("show",$!search.itemsPerPage) )
- * #if( $search.prevIndex )
- * <a href="$pagelink.addQueryData('index',$!search.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $search.slip )
- * #if( $index == $search.index )
- * <b>$search.pageNumber</b>
- * #else
- * <a href="$pagelink.addQueryData('index',$!index)">$!search.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $search.nextIndex )
- * <a href="$pagelink.addQueryData('index',$!search.nextIndex)">Next</a>
- * #end
- * #end
- * #elseif( $search.criteria )
- * Sorry, no matches were found for "$!search.criteria".
- * #else
- * Please enter a search term
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * <form method="get" action="">
- * <input type="text" value="foo">
- * <input type="submit" value="Find">
- * </form>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>search</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MySearchTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.0
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.tools.AbstractSearchTool}
*/
-@DefaultKey("search")
-@InvalidScope({"application","session"})
-public abstract class AbstractSearchTool extends AbstractPagerTool
+@Deprecated
+public abstract class AbstractSearchTool extends
+ org.apache.velocity.tools.view.AbstractSearchTool
{
- /** the key under which StoredResults are kept in session */
- protected static final String STORED_RESULTS_KEY =
- StoredResults.class.getName();
-
- private Object criteria;
-
-
- /* ---------------------- mutators ----------------------------- */
-
- /**
- * Sets the criteria and results to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- super.reset();
- criteria = null;
- }
-
-
- /**
- * Sets the criteria for this search.
- *
- * @param criteria - the criteria used for this search
- */
- public void setCriteria(Object criteria)
- {
- this.criteria = criteria;
- }
-
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Return the criteria object for this request.
- * (for a simple search mechanism, this will typically be
- * just a java.lang.String)
- *
- * @return criteria object
- */
- public Object getCriteria()
- {
- return criteria;
- }
-
-
/**
* @deprecated Use {@link AbstractPagerTool#hasItems()}
*/
@@ -198,169 +44,5 @@
{
return getItems();
}
-
-
- /**
- * Gets the results for the given criteria either in memory
- * or by performing a new query for them. If the criteria
- * is null, an empty list will be returned.
- *
- * @return {@link List} of all items for the criteria
- */
- public List getItems()
- {
- /* return empty list if we have no criteria */
- if (criteria == null)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* get the current list (should never return null!) */
- List list = super.getItems();
-
- /* if empty, execute a query for the criteria */
- if (list.isEmpty())
- {
- /* perform a new query */
- list = executeQuery(criteria);
-
- /* because we can't trust executeQuery() not to return null
- and getItems() must _never_ return null... */
- if (list == null)
- {
- list = Collections.EMPTY_LIST;
- }
-
- /* save the new results */
- setItems(list);
- }
- return list;
- }
-
-
- /* ---------------------- protected methods ----------------------------- */
-
- protected List getStoredItems()
- {
- StoredResults sr = getStoredResults();
-
- /* if the criteria equals that of the stored results,
- * then return the stored result list */
- if (sr != null && criteria.equals(sr.getCriteria()))
- {
- return sr.getList();
- }
- return null;
- }
-
-
- protected void setStoredItems(List items)
- {
- setStoredResults(new StoredResults(criteria, items));
- }
-
-
- /**
- * Executes a query for the specified criteria.
- *
- * <p>This method must be implemented! A simple
- * implementation might be something like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- *
- * @return a {@link List} of results for this query
- */
- protected abstract List executeQuery(Object criteria);
-
-
- /**
- * Retrieves stored search results (if any) from the user's
- * session attributes.
- *
- * @return the {@link StoredResults} retrieved from memory
- */
- protected StoredResults getStoredResults()
- {
- if (session != null)
- {
- return (StoredResults)session.getAttribute(STORED_RESULTS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search results in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search results somewhere besides the
- * HttpSession or to prevent storage of results across requests. In
- * the former situation, you must also override getStoredResults().</p>
- *
- * @param results the {@link StoredResults} to be stored
- */
- protected void setStoredResults(StoredResults results)
- {
- if (session != null)
- {
- session.setAttribute(STORED_RESULTS_KEY, results);
- }
- }
-
-
- /* ---------------------- utility class ----------------------------- */
-
- /**
- * Simple utility class to hold a criterion and its result list.
- * <p>
- * This class is by default stored in a user's session,
- * so it implements Serializable, but its members are
- * transient. So functionally, it is not serialized and
- * the last results/criteria will not be persisted if
- * the session is serialized.
- * </p>
- */
- public static class StoredResults implements java.io.Serializable
- {
- /** serial version id */
- private static final long serialVersionUID = 4503130168585978169L;
-
- private transient Object crit;
- private transient List list;
-
- /**
- * Creates a new instance.
- *
- * @param crit the criteria for these results
- * @param list the {@link List} of results to store
- */
- public StoredResults(Object crit, List list)
- {
- this.crit = crit;
- this.list = list;
- }
-
- /**
- * @return the stored criteria object
- */
- public Object getCriteria()
- {
- return crit;
- }
-
- /**
- * @return the stored {@link List} of results
- */
- public List getList()
- {
- return list;
- }
-
- }
-
}
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 3/6/2007 12:47
Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
Posted by Sérgio 7 Reais <co...@newenterprise.com.br>.
----- Original Message -----
From: Sérgio 7 Reais
To: commits@velocity.apache.org
Sent: Wednesday, June 06, 2007 11:29 PM
Subject: Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
----- Original Message -----
From: Sérgio 7 Reais
To: dev@velocity.apache.org
Sent: Tuesday, June 05, 2007 1:45 AM
Subject: Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
----- Original Message -----
From: nbubna@apache.org
To: commits@velocity.apache.org
Sent: Monday, June 04, 2007 9:24 PM
Subject: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
Author: nbubna
Date: Mon Jun 4 17:24:29 2007
New Revision: 544331
URL: http://svn.apache.org/viewvc?view=rev&rev=544331
Log:
- copy tools (sans deprecated methods) from the o.a.v.t.view.* subpackages to the o.a.v.t.view package for consistency with GenericTools and VelocityStruts package structures.
- leave deprecated versions (including deprecated methods) in old packages
- update VelocityStruts and o.a.v.t.view.tools.xml to use tools in new locations
- rename BrowserSnifferTool and ParameterParser to BrowserTool and ParameterTool for better consistency with other tools
Added:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java Mon Jun 4 17:24:29 2007
@@ -25,7 +25,7 @@
import org.apache.struts.action.SecurePlugInInterface;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.config.SecureActionConfig;
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
/**
* Tool to be able to use Struts SSL Extensions with Velocity.
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java Mon Jun 4 17:24:29 2007
@@ -19,7 +19,7 @@
* under the License.
*/
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
import org.apache.velocity.runtime.log.Log;
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -144,15 +144,6 @@
}
this.session = request.getSession(false);
setup(request);
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,7 +31,7 @@
* <p>browser-sniffing tool (session or request scope requested, session scope advised).</p>
* <p></p>
* <p><b>Usage:</b></p>
- * <p>BrowserSniffer defines properties that are used to test the client browser, operating system, device...
+ * <p>BrowserTool defines properties that are used to test the client browser, operating system, device...
* Apart from properties related to versioning, all properties are booleans.</p>
* <p>The following properties are available:</p>
* <ul>
@@ -61,7 +61,7 @@
*/
@DefaultKey("browser")
@InvalidScope("application")
-public class BrowserSnifferTool implements java.io.Serializable
+public class BrowserTool implements java.io.Serializable
{
private static final long serialVersionUID = 1734529350532353339L;
@@ -85,15 +85,6 @@
throw new NullPointerException("request should not be null");
}
userAgent = request.getHeader("User-Agent").toLowerCase();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/* Generic getter for unknown tests
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -49,7 +49,7 @@
* <tool>
* <key>context</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ContextTool</class>
+ * <class>org.apache.velocity.tools.view.ContextTool</class>
* </tool>
* </pre></p>
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>View tool for convenient cookie access and creation.</p>
@@ -37,7 +36,7 @@
* <tool>
* <key>cookie</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.CookieTool</class>
+ * <class>org.apache.velocity.tools.view.CookieTool</class>
* </tool>
* </pre></p>
*
@@ -57,17 +56,6 @@
protected HttpServletResponse response;
// --------------------------------------- Setup Methods -------------
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- }
- }
/**
* Sets the current {@link HttpServletRequest}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.view.ImportSupport;
-import org.apache.velocity.tools.view.ViewContext;
/**
* General-purpose text-importing view tool for templates.
@@ -35,7 +34,7 @@
* <tool>
* <key>import</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ImportTool</class>
+ * <class>org.apache.velocity.tools.view.ImportTool</class>
* </tool>
* </pre></p>
*
@@ -47,24 +46,6 @@
@ValidScope("request")
public class ImportTool extends ImportSupport
{
- /**
- * Default constructor. Tool must be initialized before use.
- */
- public ImportTool() {}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Returns the supplied URL rendered as a String.
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -33,7 +33,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.view.ServletUtils;
/**
@@ -48,7 +47,7 @@
* <tool>
* <key>link</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.LinkTool</class>
+ * <class>org.apache.velocity.tools.view.LinkTool</class>
* </tool>
* </pre></p>
*
@@ -151,19 +150,6 @@
// --------------------------------------- Setup Methods -------------
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Sets the current {@link HttpServletRequest}. This is required
* for this tool to operate and will throw a NullPointerException
@@ -210,13 +196,6 @@
this.LOG = log;
}
- @Deprecated
- public void setXhtml(boolean useXhtml)
- {
- queryDataDelim =
- (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
- }
-
/**
* <p>Controls the delimiter used for separating query data pairs.
* By default, the standard '&' character is used.</p>
@@ -231,7 +210,8 @@
*/
public void setXHTML(boolean useXhtml)
{
- setXhtml(useXhtml);
+ queryDataDelim =
+ (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.i18n;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -61,7 +61,7 @@
protected VelocityEngine engine;
/**
- * Creates a new uninitialized instance. Call {@link #init}
+ * Creates a new uninitialized instance. Call {@link #configure}
* to initialize it.
*/
public MultiViewsTool()
@@ -99,15 +99,6 @@
}
this.engine = ctx.getVelocityEngine();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewToolContext)
- {
- configure((ViewToolContext)obj);
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Utility class for easy parsing of {@link ServletRequest} parameters.</p>
@@ -39,7 +38,7 @@
* <tool>
* <key>params</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ParameterParser</class>
+ * <class>org.apache.velocity.tools.view.ParameterTool</class>
* </tool>
* </pre></p>
*
@@ -52,14 +51,14 @@
*/
@DefaultKey("params")
@ValidScope("request")
-public class ParameterParser extends ValueParser
+public class ParameterTool extends ValueParser
{
private ServletRequest request;
/**
* Constructs a new instance
*/
- public ParameterParser()
+ public ParameterTool()
{}
/**
@@ -67,17 +66,11 @@
*
* @param request the {@link ServletRequest} to be parsed
*/
- public ParameterParser(ServletRequest request)
+ public ParameterTool(ServletRequest request)
{
setRequest(request);
}
- @Deprecated
- public void init(Object obj)
- {
- //Does nothing
- }
-
/**
* Sets the current {@link ServletRequest}
*
@@ -98,7 +91,7 @@
{
if (request == null)
{
- throw new UnsupportedOperationException("Request is null. ParameterParser must be initialized first!");
+ throw new UnsupportedOperationException("Request is null. ParameterTool must be initialized first!");
}
return request;
}
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,6 @@
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.generic.RenderTool;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.config.InvalidScope;
/**
@@ -59,7 +58,7 @@
* <tool>
* <key>render</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ViewRenderTool</class>
+ * <class>org.apache.velocity.tools.view.ViewRenderTool</class>
* <parameter name="parse.depth" value="10"/>
* </tool>
* </pre>
@@ -85,15 +84,6 @@
*/
public ViewRenderTool()
{}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof Context)
- {
- setVelocityContext((Context)obj);
- }
- }
/**
* Sets the current {@link Context}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.generic.ResourceTool;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Tool for accessing ResourceBundles and formatting messages therein.</p>
@@ -39,7 +38,7 @@
* Toolbox configuration example:
* <tool>
* <key>text</key>
- * <class>org.apache.velocity.tools.view.tools.ViewResourceTool</class>
+ * <class>org.apache.velocity.tools.view.ViewResourceTool</class>
* <parameter name="bundles" value="resources,com.foo.moreResources"/>
* </tool>
* </pre></p>
@@ -65,16 +64,6 @@
@InvalidScope({"application","session"})
public class ViewResourceTool extends ResourceTool
{
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
- }
-
/**
* Sets the current {@link ServletRequest}
*
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -19,88 +19,14 @@
* under the License.
*/
-import java.util.Locale;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewToolContext;
/**
- * Allows for transparent content negotiation in a manner mimicking
- * Apache httpd's <a
- * href="http://httpd.apache.org/docs-2.0/content-negotiation.html">MultiViews</a>.
- *
- * <p>Reads the default language out of the ViewContext as
- * <code>org.apache.velocity.tools.view.i18n.defaultLanguage</code>.
- * See {@link #findLocalizedResource(String, String)} and {@link
- * #findLocalizedResource(String, Locale)} for usage.</p>
- *
- * @version $Id$
- * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
+ * Use {@link org.apache.velocity.tools.view.MultiViewsTool}.
*/
-@DefaultKey("i18n")
-@InvalidScope("application")
-public class MultiViewsTool
+@Deprecated
+public class MultiViewsTool extends org.apache.velocity.tools.view.MultiViewsTool
{
- /**
- * The key used to search initialization, context, and JVM
- * parameters for the default language to use.
- */
- protected static final String DEFAULT_LANGUAGE_KEY =
- "org.apache.velocity.tools.view.i18n.defaultLanguage";
-
- /**
- * The two character abbreviation for the request's default
- * language.
- */
- protected String defaultLanguage;
-
- protected VelocityEngine engine;
-
- /**
- * Creates a new uninitialized instance. Call {@link #init}
- * to initialize it.
- */
- public MultiViewsTool()
- {
- }
-
- /**
- * Extracts the default language from the specified
- * <code>ViewContext</code>, looking first at the Velocity
- * context, then the servlet context, then lastly at the JVM
- * default. This "narrow scope to wide scope" pattern makes it
- * easy to setup language overrides at different levels within
- * your application.
- *
- * @param obj the current ViewContext
- * @throws IllegalArgumentException if the param is not a ViewContext
- */
- public void configure(Map params)
- {
- configure((ViewToolContext)params.get(ViewToolContext.CONTEXT_KEY));
- }
-
- protected void configure(ViewToolContext ctx)
- {
- defaultLanguage = (String) ctx.get(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- ServletContext sc = ctx.getServletContext();
- defaultLanguage = (String) sc.getAttribute(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- // Use JVM default.
- defaultLanguage = Locale.getDefault().getLanguage();
- }
- }
-
- this.engine = ctx.getVelocityEngine();
- }
-
@Deprecated
public void init(Object obj)
{
@@ -109,74 +35,4 @@
configure((ViewToolContext)obj);
}
}
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * language extracted from <code>locale</code>.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name, Locale locale)
- {
- return findLocalizedResource(name, locale.getLanguage());
- }
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * default language.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name)
- {
- return findLocalizedResource(defaultLanguage);
- }
-
- /**
- * <p>Finds the a localized version of the requested Velocity
- * resource (such as a file or template) which is most appropriate
- * for the locale of the current request. Use in conjuction with
- * Apache httpd's <code>MultiViews</code>, or by itself.</p>
- *
- * <p>Usage from a template would be something like the following:
- * <blockquote><code><pre>
- * #parse ($multiviews.findLocalizedResource("header.vm", "en"))
- * #include ($multiviews.findLocalizedResource("my_page.html", "en"))
- * #parse ($multiviews.findLocalizedResource("footer.vm", "en"))
- * </pre></code></blockquote>
- *
- * You might also wrap this method using another pull/view tool
- * which does internationalization/localization/content negation
- * for a single point of access.</p>
- *
- * @param name The unlocalized name of the file to find.
- * @param language The language to find localized context for.
- * @return The localized file name, or <code>name</code> if it is
- * not localizable.
- */
- public String findLocalizedResource(String name, String language)
- {
- String localizedName = name + '.' + language;
- // templateExists() checks for static content as well
- if (!engine.resourceExists(localizedName))
- {
- // Fall back to the default lanaguage.
- String defaultLangSuffix = '.' + defaultLanguage;
- if (localizedName.endsWith(defaultLangSuffix))
- {
- // Assume no localized version of the resource.
- localizedName = name;
- }
- else
- {
- localizedName = name + defaultLangSuffix;
- if (!engine.resourceExists(localizedName))
- {
- localizedName = name;
- }
- }
- }
- return localizedName;
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml Mon Jun 4 17:24:29 2007
@@ -22,20 +22,20 @@
<tools>
<data type="boolean" key="VIEW_TOOLS_AVAILABLE" value="true"/>
<toolbox scope="request">
- <tool class="org.apache.velocity.tools.view.tools.ContextTool"/>
- <tool class="org.apache.velocity.tools.view.tools.CookieTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ImportTool"/>
- <tool class="org.apache.velocity.tools.view.tools.LinkTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ParameterParser"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewRenderTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewResourceTool"/>
+ <tool class="org.apache.velocity.tools.view.ContextTool"/>
+ <tool class="org.apache.velocity.tools.view.CookieTool"/>
+ <tool class="org.apache.velocity.tools.view.ImportTool"/>
+ <tool class="org.apache.velocity.tools.view.LinkTool"/>
+ <tool class="org.apache.velocity.tools.view.ParameterTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewRenderTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewResourceTool"/>
<!--
These are not directly useable.
- <tool class="org.apache.velocity.tools.view.tools.AbstractPagerTool"/>
- <tool class="org.apache.velocity.tools.view.tools.AbstractSearchTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractPagerTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractSearchTool"/>
-->
</toolbox>
<toolbox scope="session" createSession="false">
- <tool class="org.apache.velocity.tools.view.tools.BrowserSnifferTool"/>
+ <tool class="org.apache.velocity.tools.view.BrowserTool"/>
</toolbox>
</tools>
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -19,133 +19,15 @@
* under the License.
*/
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewContext;
/**
- * <p>Abstract view tool for doing request-based pagination of
- * items in an a list.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) method.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the current list index and,
- * optionally, the number of items to display per page.
- * Upon extracting these parameters, they should be set using
- * the provided setIndex(int) and setItemsPerPage(int) methods.
- * A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * You can also set the list of items to be paged at this point
- * using the setItems(List) method, or you can always set the
- * item list at another point (even from within the template).
- * </p>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * #if( $pager.hasItems() )
- * Showing $!pager.pageDescription<br>
- * #set( $i = $pager.index )
- * #foreach( $item in $pager.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $pager.pagesAvailable > 1 )
- * #set( $pagelink = $link.self.param("show",$!pager.itemsPerPage) )
- * #if( $pager.prevIndex )
- * <a href="$pagelink.param('index',$!pager.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $pager.slip )
- * #if( $index == $pager.index )
- * <b>$pager.pageNumber</b>
- * #else
- * <a href="$pagelink.param('index',$!index)">$!pager.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $pager.nextIndex )
- * <a href="$pagelink.param('index',$!pager.nextIndex)">Next</a>
- * #end
- * #end
- * #else
- * No items in list.
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>pager</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MyPagerTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.2
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.AbstractPagerTool}
*/
-@DefaultKey("pager")
-@InvalidScope({"application","session"})
-public abstract class AbstractPagerTool
+@Deprecated
+public abstract class AbstractPagerTool extends
+ org.apache.velocity.tools.view.AbstractPagerTool
{
-
- /** the default number of items shown per page */
- public static final int DEFAULT_ITEMS_PER_PAGE = 10;
-
- /** the default max number of page indices to list */
- public static final int DEFAULT_SLIP_SIZE = 20;
-
- /** the key under which items are stored in session */
- protected static final String STORED_ITEMS_KEY =
- AbstractPagerTool.class.getName();
-
- private List items;
- private int index = 0;
- private int slipSize = DEFAULT_SLIP_SIZE;
- private int itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- protected HttpSession session;
-
- /**
- * Initializes this tool with the specified {@link HttpServletRequest}.
- * This is required for this tool to operate and will throw a
- * NullPointerException if this is not set or is set to {@code null}.
- */
- public void setRequest(HttpServletRequest request)
- {
- if (request == null)
- {
- throw new NullPointerException("request should not be null");
- }
- this.session = request.getSession(false);
- setup(request);
- }
-
@Deprecated
public void init(Object obj)
{
@@ -154,431 +36,4 @@
setRequest(((ViewContext)obj).getRequest());
}
}
-
- /**
- * Abstract method to make it as obvious as possible just
- * where implementing classes should be retrieving and configuring
- * display parameters.
- * <p>A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- *
- * @param request the current HttpServletRequest
- */
- public abstract void setup(HttpServletRequest request);
-
- /* ---------------------- mutators ----------------------------- */
-
-
- /**
- * Sets the item list to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- items = null;
- index = 0;
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
-
- /**
- * Sets the List to page through.
- *
- * @param items - the {@link List} of items to be paged through
- */
- public void setItems(List items)
- {
- this.items = items;
- setStoredItems(items);
- }
-
- /**
- * Sets the index of the first result in the current page
- *
- * @param index the result index to start the current page with
- */
- public void setIndex(int index)
- {
- if (index < 0)
- {
- /* quietly override to a reasonable value */
- index = 0;
- }
- this.index = index;
- }
-
- /**
- * Sets the number of items returned in a page of items
- *
- * @param itemsPerPage the number of items to be returned per page
- */
- public void setItemsPerPage(int itemsPerPage)
- {
- if (itemsPerPage < 1)
- {
- /* quietly override to a reasonable value */
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
- this.itemsPerPage = itemsPerPage;
- }
-
- /**
- * Sets the number of result page indices for {@link #getSlip} to list.
- * (for google-ish result page links).
- *
- * @see #getSlip
- * @param slipSize - the number of result page indices to list
- */
- public void setSlipSize(int slipSize)
- {
- if (slipSize < 2)
- {
- /* quietly override to a reasonable value */
- slipSize = DEFAULT_SLIP_SIZE;
- }
- this.slipSize = slipSize;
- }
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Returns the set number of items to be displayed per page of items
- *
- * @return current number of items shown per page
- */
- public int getItemsPerPage()
- {
- return itemsPerPage;
- }
-
- /**
- * Returns the number of result page indices {@link #getSlip}
- * will return per request (if available).
- *
- * @return the number of result page indices {@link #getSlip}
- * will try to return
- */
- public int getSlipSize()
- {
- return slipSize;
- }
-
-
- /**
- * Returns the current search result index.
- *
- * @return the index for the beginning of the current page
- */
- public int getIndex()
- {
- return index;
- }
-
-
- /**
- * Checks whether or not the result list is empty.
- *
- * @return <code>true</code> if the result list is not empty.
- */
- public boolean hasItems()
- {
- return !getItems().isEmpty();
- }
-
- /**
- * Returns the item list. This is guaranteed
- * to never return <code>null</code>.
- *
- * @return {@link List} of all the items
- */
- public List getItems()
- {
- if (items == null)
- {
- items = getStoredItems();
- }
-
- return (items != null) ? items : Collections.EMPTY_LIST;
- }
-
- /**
- * Returns the index of the last item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned.
- *
- * @return index for the last item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getLastIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index + itemsPerPage - 1));
- }
-
- /**
- * Returns the index for the next page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the next page or <code>null</code> if none exists
- */
- public Integer getNextIndex()
- {
- int next = index + itemsPerPage;
- if (next < getTotal())
- {
- return new Integer(next);
- }
- return null;
- }
-
- /**
- * Returns the index of the first item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned. This is different than {@link #getIndex()} in that it
- * is adjusted to fit the reality of the items available and is not a
- * mere accessor for the current, user-set index value.
- *
- * @return index for the first item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getFirstIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index));
- }
-
- /**
- * Return the index for the previous page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the previous page or <code>null</code> if none exists
- */
- public Integer getPrevIndex()
- {
- int prev = Math.min(index, getTotal()) - itemsPerPage;
- if (index > 0)
- {
- return new Integer(Math.max(0, prev));
- }
- return null;
- }
-
- /**
- * Returns the number of pages that can be made from this list
- * given the set number of items per page.
- */
- public int getPagesAvailable()
- {
- return (int)Math.ceil(getTotal() / (double)itemsPerPage);
- }
-
-
- /**
- * Returns the current "page" of search items.
- *
- * @return a {@link List} of items for the "current page"
- */
- public List getPage()
- {
- /* return null if we have no items */
- if (!hasItems())
- {
- return null;
- }
- /* quietly keep the page indices to legal values for robustness' sake */
- int start = getFirstIndex().intValue();
- int end = getLastIndex().intValue() + 1;
- return getItems().subList(start, end);
- }
-
- /**
- * Returns the "page number" for the specified index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @param i the index that you want the page number for
- * @return the approximate "page number" for the specified index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber(int i)
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(1 + i / itemsPerPage);
- }
-
-
- /**
- * Returns the "page number" for the current index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @return the approximate "page number" for the current index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber()
- {
- return getPageNumber(index);
- }
-
- /**
- * Returns the total number of items available.
- * @since VelocityTools 1.3
- */
- public int getTotal()
- {
- if (!hasItems())
- {
- return 0;
- }
- return getItems().size();
- }
-
- /**
- * <p>Returns a description of the current page. This implementation
- * displays a 1-based range of result indices and the total number
- * of items. (e.g. "1 - 10 of 42" or "7 of 7") If there are no items,
- * this will return "0 of 0".</p>
- *
- * <p>Sub-classes may override this to provide a customized
- * description (such as one in another language).</p>
- *
- * @return a description of the current page
- */
- public String getPageDescription()
- {
- if (!hasItems())
- {
- return "0 of 0";
- }
-
- StringBuffer out = new StringBuffer();
- int first = getFirstIndex().intValue() + 1;
- int total = getTotal();
- if (first >= total)
- {
- out.append(total);
- out.append(" of ");
- out.append(total);
- }
- else
- {
- int last = getLastIndex().intValue() + 1;
- out.append(first);
- out.append(" - ");
- out.append(last);
- out.append(" of ");
- out.append(total);
- }
- return out.toString();
- }
-
- /**
- * Returns a <b>S</b>liding <b>L</b>ist of <b>I</b>ndices for <b>P</b>ages
- * of items.
- *
- * <p>Essentially, this returns a list of item indices that correspond
- * to available pages of items (as based on the set items-per-page).
- * This makes it relativly easy to do a google-ish set of links to
- * available pages.</p>
- *
- * <p>Note that this list of Integers is 0-based to correspond with the
- * underlying result indices and not the displayed page numbers (see
- * {@link #getPageNumber}).</p>
- *
- * @return {@link List} of Integers representing the indices of result
- * pages or empty list if there's one or less pages available
- */
- public List getSlip()
- {
- /* return an empty list if there's no pages to list */
- int totalPgs = getPagesAvailable();
- if (totalPgs <= 1)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* page number is 1-based so decrement it */
- int curPg = getPageNumber().intValue() - 1;
-
- /* start at zero or just under half of max slip size
- * this keeps "forward" and "back" pages about even
- * but gives preference to "forward" pages */
- int slipStart = Math.max(0, (curPg - (slipSize / 2)));
-
- /* push slip end as far as possible */
- int slipEnd = Math.min(totalPgs, (slipStart + slipSize));
-
- /* if we're out of "forward" pages, then push the
- * slip start toward zero to maintain slip size */
- if (slipEnd - slipStart < slipSize)
- {
- slipStart = Math.max(0, slipEnd - slipSize);
- }
-
- /* convert 0-based page numbers to indices and create list */
- List slip = new ArrayList(slipEnd - slipStart);
- for (int i=slipStart; i < slipEnd; i++)
- {
- slip.add(new Integer(i * itemsPerPage));
- }
- return slip;
- }
-
- /* ---------------------- protected methods ------------------------ */
-
- /**
- * Retrieves stored search items (if any) from the user's
- * session attributes.
- *
- * @return the {@link List} retrieved from memory
- */
- protected List getStoredItems()
- {
- if (session != null)
- {
- return (List)session.getAttribute(STORED_ITEMS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search items in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search items somewhere besides the
- * HttpSession or to prevent storage of items across requests. In
- * the former situation, you must also override getStoredItems().</p>
- *
- * @param items the {@link List} to be stored
- */
- protected void setStoredItems(List items)
- {
- if (session != null)
- {
- session.setAttribute(STORED_ITEMS_KEY, items);
- }
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -19,169 +19,15 @@
* under the License.
*/
-import java.util.Collections;
import java.util.List;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
/**
- * <p>Abstract view tool for doing "searching" and robust
- * pagination of search results. The goal here is to provide a simple
- * and uniform API for "search tools" that can be used in velocity
- * templates (or even a standard Search.vm template). In particular,
- * this class provides good support for result pagination and some
- * very simple result caching.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) and executeQuery(Object)
- * methods.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the search criteria, the current
- * list index, and optionally, the number of items to display
- * per page of results. Upon extracting these parameters, they
- * should be set using the provided setCriteria(Object),
- * setIndex(int), and setItemsPerPage(int) methods. A simple
- * implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setCriteria(pp.getString("find"));
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * <p>
- * The setCriteria(Object) method takes an Object in order to
- * allow the search criteria to meet your needs. Your criteria
- * may be as simple as a single string, an array of strings, or
- * whatever you like. The value passed into this method is that
- * which will ultimately be passed into executeQuery(Object) to
- * perform the search and return a list of results. A simple
- * implementation might be like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * <form name="search" method="get" action="$link.setRelative('search.vm')">
- * <input type="text"name="find" value="$!search.criteria">
- * <input type="submit" value="Find">
- * </form>
- * #if( $search.hasItems() )
- * Showing $!search.pageDescription<br>
- * #set( $i = $search.index )
- * #foreach( $item in $search.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $search.pagesAvailable > 1 )
- * #set( $pagelink = $link.setRelative('search.vm').addQueryData("find",$!search.criteria).addQueryData("show",$!search.itemsPerPage) )
- * #if( $search.prevIndex )
- * <a href="$pagelink.addQueryData('index',$!search.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $search.slip )
- * #if( $index == $search.index )
- * <b>$search.pageNumber</b>
- * #else
- * <a href="$pagelink.addQueryData('index',$!index)">$!search.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $search.nextIndex )
- * <a href="$pagelink.addQueryData('index',$!search.nextIndex)">Next</a>
- * #end
- * #end
- * #elseif( $search.criteria )
- * Sorry, no matches were found for "$!search.criteria".
- * #else
- * Please enter a search term
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * <form method="get" action="">
- * <input type="text" value="foo">
- * <input type="submit" value="Find">
- * </form>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>search</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MySearchTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.0
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.tools.AbstractSearchTool}
*/
-@DefaultKey("search")
-@InvalidScope({"application","session"})
-public abstract class AbstractSearchTool extends AbstractPagerTool
+@Deprecated
+public abstract class AbstractSearchTool extends
+ org.apache.velocity.tools.view.AbstractSearchTool
{
- /** the key under which StoredResults are kept in session */
- protected static final String STORED_RESULTS_KEY =
- StoredResults.class.getName();
-
- private Object criteria;
-
-
- /* ---------------------- mutators ----------------------------- */
-
- /**
- * Sets the criteria and results to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- super.reset();
- criteria = null;
- }
-
-
- /**
- * Sets the criteria for this search.
- *
- * @param criteria - the criteria used for this search
- */
- public void setCriteria(Object criteria)
- {
- this.criteria = criteria;
- }
-
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Return the criteria object for this request.
- * (for a simple search mechanism, this will typically be
- * just a java.lang.String)
- *
- * @return criteria object
- */
- public Object getCriteria()
- {
- return criteria;
- }
-
-
/**
* @deprecated Use {@link AbstractPagerTool#hasItems()}
*/
@@ -198,169 +44,5 @@
{
return getItems();
}
-
-
- /**
- * Gets the results for the given criteria either in memory
- * or by performing a new query for them. If the criteria
- * is null, an empty list will be returned.
- *
- * @return {@link List} of all items for the criteria
- */
- public List getItems()
- {
- /* return empty list if we have no criteria */
- if (criteria == null)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* get the current list (should never return null!) */
- List list = super.getItems();
-
- /* if empty, execute a query for the criteria */
- if (list.isEmpty())
- {
- /* perform a new query */
- list = executeQuery(criteria);
-
- /* because we can't trust executeQuery() not to return null
- and getItems() must _never_ return null... */
- if (list == null)
- {
- list = Collections.EMPTY_LIST;
- }
-
- /* save the new results */
- setItems(list);
- }
- return list;
- }
-
-
- /* ---------------------- protected methods ----------------------------- */
-
- protected List getStoredItems()
- {
- StoredResults sr = getStoredResults();
-
- /* if the criteria equals that of the stored results,
- * then return the stored result list */
- if (sr != null && criteria.equals(sr.getCriteria()))
- {
- return sr.getList();
- }
- return null;
- }
-
-
- protected void setStoredItems(List items)
- {
- setStoredResults(new StoredResults(criteria, items));
- }
-
-
- /**
- * Executes a query for the specified criteria.
- *
- * <p>This method must be implemented! A simple
- * implementation might be something like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- *
- * @return a {@link List} of results for this query
- */
- protected abstract List executeQuery(Object criteria);
-
-
- /**
- * Retrieves stored search results (if any) from the user's
- * session attributes.
- *
- * @return the {@link StoredResults} retrieved from memory
- */
- protected StoredResults getStoredResults()
- {
- if (session != null)
- {
- return (StoredResults)session.getAttribute(STORED_RESULTS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search results in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search results somewhere besides the
- * HttpSession or to prevent storage of results across requests. In
- * the former situation, you must also override getStoredResults().</p>
- *
- * @param results the {@link StoredResults} to be stored
- */
- protected void setStoredResults(StoredResults results)
- {
- if (session != null)
- {
- session.setAttribute(STORED_RESULTS_KEY, results);
- }
- }
-
-
- /* ---------------------- utility class ----------------------------- */
-
- /**
- * Simple utility class to hold a criterion and its result list.
- * <p>
- * This class is by default stored in a user's session,
- * so it implements Serializable, but its members are
- * transient. So functionally, it is not serialized and
- * the last results/criteria will not be persisted if
- * the session is serialized.
- * </p>
- */
- public static class StoredResults implements java.io.Serializable
- {
- /** serial version id */
- private static final long serialVersionUID = 4503130168585978169L;
-
- private transient Object crit;
- private transient List list;
-
- /**
- * Creates a new instance.
- *
- * @param crit the criteria for these results
- * @param list the {@link List} of results to store
- */
- public StoredResults(Object crit, List list)
- {
- this.crit = crit;
- this.list = list;
- }
-
- /**
- * @return the stored criteria object
- */
- public Object getCriteria()
- {
- return crit;
- }
-
- /**
- * @return the stored {@link List} of results
- */
- public List getList()
- {
- return list;
- }
-
- }
-
}
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 3/6/2007 12:47
------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 3/6/2007 12:47
------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.9/834 - Release Date: 5/6/2007 14:38
Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
Posted by Sérgio 7 Reais <co...@newenterprise.com.br>.
----- Original Message -----
From: Sérgio 7 Reais
To: dev@velocity.apache.org
Sent: Tuesday, June 05, 2007 1:45 AM
Subject: Re: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
----- Original Message -----
From: nbubna@apache.org
To: commits@velocity.apache.org
Sent: Monday, June 04, 2007 9:24 PM
Subject: svn commit: r544331 [1/2] - in /velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools: struts/ view/ view/i18n/ view/tools/
Author: nbubna
Date: Mon Jun 4 17:24:29 2007
New Revision: 544331
URL: http://svn.apache.org/viewvc?view=rev&rev=544331
Log:
- copy tools (sans deprecated methods) from the o.a.v.t.view.* subpackages to the o.a.v.t.view package for consistency with GenericTools and VelocityStruts package structures.
- leave deprecated versions (including deprecated methods) in old packages
- update VelocityStruts and o.a.v.t.view.tools.xml to use tools in new locations
- rename BrowserSnifferTool and ParameterParser to BrowserTool and ParameterTool for better consistency with other tools
Added:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java
- copied, changed from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified:
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java
velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/SecureLinkTool.java Mon Jun 4 17:24:29 2007
@@ -25,7 +25,7 @@
import org.apache.struts.action.SecurePlugInInterface;
import org.apache.struts.config.ModuleConfig;
import org.apache.struts.config.SecureActionConfig;
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
/**
* Tool to be able to use Struts SSL Extensions with Velocity.
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/struts/StrutsLinkTool.java Mon Jun 4 17:24:29 2007
@@ -19,7 +19,7 @@
* under the License.
*/
-import org.apache.velocity.tools.view.tools.LinkTool;
+import org.apache.velocity.tools.view.LinkTool;
import org.apache.velocity.runtime.log.Log;
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -144,15 +144,6 @@
}
this.session = request.getSession(false);
setup(request);
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/BrowserSnifferTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/BrowserTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,7 +31,7 @@
* <p>browser-sniffing tool (session or request scope requested, session scope advised).</p>
* <p></p>
* <p><b>Usage:</b></p>
- * <p>BrowserSniffer defines properties that are used to test the client browser, operating system, device...
+ * <p>BrowserTool defines properties that are used to test the client browser, operating system, device...
* Apart from properties related to versioning, all properties are booleans.</p>
* <p>The following properties are available:</p>
* <ul>
@@ -61,7 +61,7 @@
*/
@DefaultKey("browser")
@InvalidScope("application")
-public class BrowserSnifferTool implements java.io.Serializable
+public class BrowserTool implements java.io.Serializable
{
private static final long serialVersionUID = 1734529350532353339L;
@@ -85,15 +85,6 @@
throw new NullPointerException("request should not be null");
}
userAgent = request.getHeader("User-Agent").toLowerCase();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
}
/* Generic getter for unknown tests
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ContextTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ContextTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -49,7 +49,7 @@
* <tool>
* <key>context</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ContextTool</class>
+ * <class>org.apache.velocity.tools.view.ContextTool</class>
* </tool>
* </pre></p>
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/CookieTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/CookieTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import javax.servlet.http.HttpServletResponse;
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>View tool for convenient cookie access and creation.</p>
@@ -37,7 +36,7 @@
* <tool>
* <key>cookie</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.CookieTool</class>
+ * <class>org.apache.velocity.tools.view.CookieTool</class>
* </tool>
* </pre></p>
*
@@ -57,17 +56,6 @@
protected HttpServletResponse response;
// --------------------------------------- Setup Methods -------------
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- }
- }
/**
* Sets the current {@link HttpServletRequest}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ImportTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ImportTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.view.ImportSupport;
-import org.apache.velocity.tools.view.ViewContext;
/**
* General-purpose text-importing view tool for templates.
@@ -35,7 +34,7 @@
* <tool>
* <key>import</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ImportTool</class>
+ * <class>org.apache.velocity.tools.view.ImportTool</class>
* </tool>
* </pre></p>
*
@@ -47,24 +46,6 @@
@ValidScope("request")
public class ImportTool extends ImportSupport
{
- /**
- * Default constructor. Tool must be initialized before use.
- */
- public ImportTool() {}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Returns the supplied URL rendered as a String.
*
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/LinkTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/LinkTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -33,7 +33,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.view.ServletUtils;
/**
@@ -48,7 +47,7 @@
* <tool>
* <key>link</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.LinkTool</class>
+ * <class>org.apache.velocity.tools.view.LinkTool</class>
* </tool>
* </pre></p>
*
@@ -151,19 +150,6 @@
// --------------------------------------- Setup Methods -------------
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- ViewContext ctx = (ViewContext)obj;
- setRequest(ctx.getRequest());
- setResponse(ctx.getResponse());
- setServletContext(ctx.getServletContext());
- setLog(ctx.getVelocityEngine().getLog());
- }
- }
-
/**
* Sets the current {@link HttpServletRequest}. This is required
* for this tool to operate and will throw a NullPointerException
@@ -210,13 +196,6 @@
this.LOG = log;
}
- @Deprecated
- public void setXhtml(boolean useXhtml)
- {
- queryDataDelim =
- (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
- }
-
/**
* <p>Controls the delimiter used for separating query data pairs.
* By default, the standard '&' character is used.</p>
@@ -231,7 +210,8 @@
*/
public void setXHTML(boolean useXhtml)
{
- setXhtml(useXhtml);
+ queryDataDelim =
+ (useXhtml) ? XHTML_QUERY_DELIMITER : HTML_QUERY_DELIMITER;
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.i18n;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -61,7 +61,7 @@
protected VelocityEngine engine;
/**
- * Creates a new uninitialized instance. Call {@link #init}
+ * Creates a new uninitialized instance. Call {@link #configure}
* to initialize it.
*/
public MultiViewsTool()
@@ -99,15 +99,6 @@
}
this.engine = ctx.getVelocityEngine();
- }
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewToolContext)
- {
- configure((ViewToolContext)obj);
- }
}
/**
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ParameterParser.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ParameterTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -24,7 +24,6 @@
import org.apache.velocity.tools.config.DefaultKey;
import org.apache.velocity.tools.config.ValidScope;
import org.apache.velocity.tools.generic.ValueParser;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Utility class for easy parsing of {@link ServletRequest} parameters.</p>
@@ -39,7 +38,7 @@
* <tool>
* <key>params</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ParameterParser</class>
+ * <class>org.apache.velocity.tools.view.ParameterTool</class>
* </tool>
* </pre></p>
*
@@ -52,14 +51,14 @@
*/
@DefaultKey("params")
@ValidScope("request")
-public class ParameterParser extends ValueParser
+public class ParameterTool extends ValueParser
{
private ServletRequest request;
/**
* Constructs a new instance
*/
- public ParameterParser()
+ public ParameterTool()
{}
/**
@@ -67,17 +66,11 @@
*
* @param request the {@link ServletRequest} to be parsed
*/
- public ParameterParser(ServletRequest request)
+ public ParameterTool(ServletRequest request)
{
setRequest(request);
}
- @Deprecated
- public void init(Object obj)
- {
- //Does nothing
- }
-
/**
* Sets the current {@link ServletRequest}
*
@@ -98,7 +91,7 @@
{
if (request == null)
{
- throw new UnsupportedOperationException("Request is null. ParameterParser must be initialized first!");
+ throw new UnsupportedOperationException("Request is null. ParameterTool must be initialized first!");
}
return request;
}
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewRenderTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewRenderTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -21,7 +21,6 @@
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.generic.RenderTool;
-import org.apache.velocity.tools.view.ViewContext;
import org.apache.velocity.tools.config.InvalidScope;
/**
@@ -59,7 +58,7 @@
* <tool>
* <key>render</key>
* <scope>request</scope>
- * <class>org.apache.velocity.tools.view.tools.ViewRenderTool</class>
+ * <class>org.apache.velocity.tools.view.ViewRenderTool</class>
* <parameter name="parse.depth" value="10"/>
* </tool>
* </pre>
@@ -85,15 +84,6 @@
*/
public ViewRenderTool()
{}
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof Context)
- {
- setVelocityContext((Context)obj);
- }
- }
/**
* Sets the current {@link Context}. This is required
Copied: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java (from r544152, velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java)
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java?view=diff&rev=544331&p1=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java&r1=544152&p2=velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/ViewResourceTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/ViewResourceTool.java Mon Jun 4 17:24:29 2007
@@ -1,4 +1,4 @@
-package org.apache.velocity.tools.view.tools;
+package org.apache.velocity.tools.view;
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,6 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.generic.ResourceTool;
-import org.apache.velocity.tools.view.ViewContext;
/**
* <p>Tool for accessing ResourceBundles and formatting messages therein.</p>
@@ -39,7 +38,7 @@
* Toolbox configuration example:
* <tool>
* <key>text</key>
- * <class>org.apache.velocity.tools.view.tools.ViewResourceTool</class>
+ * <class>org.apache.velocity.tools.view.ViewResourceTool</class>
* <parameter name="bundles" value="resources,com.foo.moreResources"/>
* </tool>
* </pre></p>
@@ -65,16 +64,6 @@
@InvalidScope({"application","session"})
public class ViewResourceTool extends ResourceTool
{
-
- @Deprecated
- public void init(Object obj)
- {
- if (obj instanceof ViewContext)
- {
- setRequest(((ViewContext)obj).getRequest());
- }
- }
-
/**
* Sets the current {@link ServletRequest}
*
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/i18n/MultiViewsTool.java Mon Jun 4 17:24:29 2007
@@ -19,88 +19,14 @@
* under the License.
*/
-import java.util.Locale;
-import java.util.Map;
-import javax.servlet.ServletContext;
-import org.apache.velocity.app.VelocityEngine;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewToolContext;
/**
- * Allows for transparent content negotiation in a manner mimicking
- * Apache httpd's <a
- * href="http://httpd.apache.org/docs-2.0/content-negotiation.html">MultiViews</a>.
- *
- * <p>Reads the default language out of the ViewContext as
- * <code>org.apache.velocity.tools.view.i18n.defaultLanguage</code>.
- * See {@link #findLocalizedResource(String, String)} and {@link
- * #findLocalizedResource(String, Locale)} for usage.</p>
- *
- * @version $Id$
- * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
+ * Use {@link org.apache.velocity.tools.view.MultiViewsTool}.
*/
-@DefaultKey("i18n")
-@InvalidScope("application")
-public class MultiViewsTool
+@Deprecated
+public class MultiViewsTool extends org.apache.velocity.tools.view.MultiViewsTool
{
- /**
- * The key used to search initialization, context, and JVM
- * parameters for the default language to use.
- */
- protected static final String DEFAULT_LANGUAGE_KEY =
- "org.apache.velocity.tools.view.i18n.defaultLanguage";
-
- /**
- * The two character abbreviation for the request's default
- * language.
- */
- protected String defaultLanguage;
-
- protected VelocityEngine engine;
-
- /**
- * Creates a new uninitialized instance. Call {@link #init}
- * to initialize it.
- */
- public MultiViewsTool()
- {
- }
-
- /**
- * Extracts the default language from the specified
- * <code>ViewContext</code>, looking first at the Velocity
- * context, then the servlet context, then lastly at the JVM
- * default. This "narrow scope to wide scope" pattern makes it
- * easy to setup language overrides at different levels within
- * your application.
- *
- * @param obj the current ViewContext
- * @throws IllegalArgumentException if the param is not a ViewContext
- */
- public void configure(Map params)
- {
- configure((ViewToolContext)params.get(ViewToolContext.CONTEXT_KEY));
- }
-
- protected void configure(ViewToolContext ctx)
- {
- defaultLanguage = (String) ctx.get(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- ServletContext sc = ctx.getServletContext();
- defaultLanguage = (String) sc.getAttribute(DEFAULT_LANGUAGE_KEY);
- if (defaultLanguage == null || defaultLanguage.trim().equals(""))
- {
- // Use JVM default.
- defaultLanguage = Locale.getDefault().getLanguage();
- }
- }
-
- this.engine = ctx.getVelocityEngine();
- }
-
@Deprecated
public void init(Object obj)
{
@@ -109,74 +35,4 @@
configure((ViewToolContext)obj);
}
}
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * language extracted from <code>locale</code>.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name, Locale locale)
- {
- return findLocalizedResource(name, locale.getLanguage());
- }
-
- /**
- * Calls {@link #findLocalizedResource(String, String)} using the
- * default language.
- *
- * @see #findLocalizedResource(String, String)
- */
- public String findLocalizedResource(String name)
- {
- return findLocalizedResource(defaultLanguage);
- }
-
- /**
- * <p>Finds the a localized version of the requested Velocity
- * resource (such as a file or template) which is most appropriate
- * for the locale of the current request. Use in conjuction with
- * Apache httpd's <code>MultiViews</code>, or by itself.</p>
- *
- * <p>Usage from a template would be something like the following:
- * <blockquote><code><pre>
- * #parse ($multiviews.findLocalizedResource("header.vm", "en"))
- * #include ($multiviews.findLocalizedResource("my_page.html", "en"))
- * #parse ($multiviews.findLocalizedResource("footer.vm", "en"))
- * </pre></code></blockquote>
- *
- * You might also wrap this method using another pull/view tool
- * which does internationalization/localization/content negation
- * for a single point of access.</p>
- *
- * @param name The unlocalized name of the file to find.
- * @param language The language to find localized context for.
- * @return The localized file name, or <code>name</code> if it is
- * not localizable.
- */
- public String findLocalizedResource(String name, String language)
- {
- String localizedName = name + '.' + language;
- // templateExists() checks for static content as well
- if (!engine.resourceExists(localizedName))
- {
- // Fall back to the default lanaguage.
- String defaultLangSuffix = '.' + defaultLanguage;
- if (localizedName.endsWith(defaultLangSuffix))
- {
- // Assume no localized version of the resource.
- localizedName = name;
- }
- else
- {
- localizedName = name + defaultLangSuffix;
- if (!engine.resourceExists(localizedName))
- {
- localizedName = name;
- }
- }
- }
- return localizedName;
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools.xml Mon Jun 4 17:24:29 2007
@@ -22,20 +22,20 @@
<tools>
<data type="boolean" key="VIEW_TOOLS_AVAILABLE" value="true"/>
<toolbox scope="request">
- <tool class="org.apache.velocity.tools.view.tools.ContextTool"/>
- <tool class="org.apache.velocity.tools.view.tools.CookieTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ImportTool"/>
- <tool class="org.apache.velocity.tools.view.tools.LinkTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ParameterParser"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewRenderTool"/>
- <tool class="org.apache.velocity.tools.view.tools.ViewResourceTool"/>
+ <tool class="org.apache.velocity.tools.view.ContextTool"/>
+ <tool class="org.apache.velocity.tools.view.CookieTool"/>
+ <tool class="org.apache.velocity.tools.view.ImportTool"/>
+ <tool class="org.apache.velocity.tools.view.LinkTool"/>
+ <tool class="org.apache.velocity.tools.view.ParameterTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewRenderTool"/>
+ <tool class="org.apache.velocity.tools.view.ViewResourceTool"/>
<!--
These are not directly useable.
- <tool class="org.apache.velocity.tools.view.tools.AbstractPagerTool"/>
- <tool class="org.apache.velocity.tools.view.tools.AbstractSearchTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractPagerTool"/>
+ <tool class="org.apache.velocity.tools.view.AbstractSearchTool"/>
-->
</toolbox>
<toolbox scope="session" createSession="false">
- <tool class="org.apache.velocity.tools.view.tools.BrowserSnifferTool"/>
+ <tool class="org.apache.velocity.tools.view.BrowserTool"/>
</toolbox>
</tools>
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractPagerTool.java Mon Jun 4 17:24:29 2007
@@ -19,133 +19,15 @@
* under the License.
*/
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
import org.apache.velocity.tools.view.ViewContext;
/**
- * <p>Abstract view tool for doing request-based pagination of
- * items in an a list.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) method.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the current list index and,
- * optionally, the number of items to display per page.
- * Upon extracting these parameters, they should be set using
- * the provided setIndex(int) and setItemsPerPage(int) methods.
- * A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * You can also set the list of items to be paged at this point
- * using the setItems(List) method, or you can always set the
- * item list at another point (even from within the template).
- * </p>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * #if( $pager.hasItems() )
- * Showing $!pager.pageDescription<br>
- * #set( $i = $pager.index )
- * #foreach( $item in $pager.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $pager.pagesAvailable > 1 )
- * #set( $pagelink = $link.self.param("show",$!pager.itemsPerPage) )
- * #if( $pager.prevIndex )
- * <a href="$pagelink.param('index',$!pager.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $pager.slip )
- * #if( $index == $pager.index )
- * <b>$pager.pageNumber</b>
- * #else
- * <a href="$pagelink.param('index',$!index)">$!pager.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $pager.nextIndex )
- * <a href="$pagelink.param('index',$!pager.nextIndex)">Next</a>
- * #end
- * #end
- * #else
- * No items in list.
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>pager</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MyPagerTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.2
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.AbstractPagerTool}
*/
-@DefaultKey("pager")
-@InvalidScope({"application","session"})
-public abstract class AbstractPagerTool
+@Deprecated
+public abstract class AbstractPagerTool extends
+ org.apache.velocity.tools.view.AbstractPagerTool
{
-
- /** the default number of items shown per page */
- public static final int DEFAULT_ITEMS_PER_PAGE = 10;
-
- /** the default max number of page indices to list */
- public static final int DEFAULT_SLIP_SIZE = 20;
-
- /** the key under which items are stored in session */
- protected static final String STORED_ITEMS_KEY =
- AbstractPagerTool.class.getName();
-
- private List items;
- private int index = 0;
- private int slipSize = DEFAULT_SLIP_SIZE;
- private int itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- protected HttpSession session;
-
- /**
- * Initializes this tool with the specified {@link HttpServletRequest}.
- * This is required for this tool to operate and will throw a
- * NullPointerException if this is not set or is set to {@code null}.
- */
- public void setRequest(HttpServletRequest request)
- {
- if (request == null)
- {
- throw new NullPointerException("request should not be null");
- }
- this.session = request.getSession(false);
- setup(request);
- }
-
@Deprecated
public void init(Object obj)
{
@@ -154,431 +36,4 @@
setRequest(((ViewContext)obj).getRequest());
}
}
-
- /**
- * Abstract method to make it as obvious as possible just
- * where implementing classes should be retrieving and configuring
- * display parameters.
- * <p>A simple implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- *
- * @param request the current HttpServletRequest
- */
- public abstract void setup(HttpServletRequest request);
-
- /* ---------------------- mutators ----------------------------- */
-
-
- /**
- * Sets the item list to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- items = null;
- index = 0;
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
-
- /**
- * Sets the List to page through.
- *
- * @param items - the {@link List} of items to be paged through
- */
- public void setItems(List items)
- {
- this.items = items;
- setStoredItems(items);
- }
-
- /**
- * Sets the index of the first result in the current page
- *
- * @param index the result index to start the current page with
- */
- public void setIndex(int index)
- {
- if (index < 0)
- {
- /* quietly override to a reasonable value */
- index = 0;
- }
- this.index = index;
- }
-
- /**
- * Sets the number of items returned in a page of items
- *
- * @param itemsPerPage the number of items to be returned per page
- */
- public void setItemsPerPage(int itemsPerPage)
- {
- if (itemsPerPage < 1)
- {
- /* quietly override to a reasonable value */
- itemsPerPage = DEFAULT_ITEMS_PER_PAGE;
- }
- this.itemsPerPage = itemsPerPage;
- }
-
- /**
- * Sets the number of result page indices for {@link #getSlip} to list.
- * (for google-ish result page links).
- *
- * @see #getSlip
- * @param slipSize - the number of result page indices to list
- */
- public void setSlipSize(int slipSize)
- {
- if (slipSize < 2)
- {
- /* quietly override to a reasonable value */
- slipSize = DEFAULT_SLIP_SIZE;
- }
- this.slipSize = slipSize;
- }
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Returns the set number of items to be displayed per page of items
- *
- * @return current number of items shown per page
- */
- public int getItemsPerPage()
- {
- return itemsPerPage;
- }
-
- /**
- * Returns the number of result page indices {@link #getSlip}
- * will return per request (if available).
- *
- * @return the number of result page indices {@link #getSlip}
- * will try to return
- */
- public int getSlipSize()
- {
- return slipSize;
- }
-
-
- /**
- * Returns the current search result index.
- *
- * @return the index for the beginning of the current page
- */
- public int getIndex()
- {
- return index;
- }
-
-
- /**
- * Checks whether or not the result list is empty.
- *
- * @return <code>true</code> if the result list is not empty.
- */
- public boolean hasItems()
- {
- return !getItems().isEmpty();
- }
-
- /**
- * Returns the item list. This is guaranteed
- * to never return <code>null</code>.
- *
- * @return {@link List} of all the items
- */
- public List getItems()
- {
- if (items == null)
- {
- items = getStoredItems();
- }
-
- return (items != null) ? items : Collections.EMPTY_LIST;
- }
-
- /**
- * Returns the index of the last item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned.
- *
- * @return index for the last item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getLastIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index + itemsPerPage - 1));
- }
-
- /**
- * Returns the index for the next page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the next page or <code>null</code> if none exists
- */
- public Integer getNextIndex()
- {
- int next = index + itemsPerPage;
- if (next < getTotal())
- {
- return new Integer(next);
- }
- return null;
- }
-
- /**
- * Returns the index of the first item on the current page of results
- * (as determined by the current index, items per page, and
- * the number of items). If there is no current page, then null is
- * returned. This is different than {@link #getIndex()} in that it
- * is adjusted to fit the reality of the items available and is not a
- * mere accessor for the current, user-set index value.
- *
- * @return index for the first item on this page or <code>null</code>
- * if none exists
- * @since VelocityTools 1.3
- */
- public Integer getFirstIndex()
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(Math.min(getTotal() - 1, index));
- }
-
- /**
- * Return the index for the previous page of items
- * (as determined by the current index, items per page, and
- * the number of items). If no "next page" exists, then null is
- * returned.
- *
- * @return index for the previous page or <code>null</code> if none exists
- */
- public Integer getPrevIndex()
- {
- int prev = Math.min(index, getTotal()) - itemsPerPage;
- if (index > 0)
- {
- return new Integer(Math.max(0, prev));
- }
- return null;
- }
-
- /**
- * Returns the number of pages that can be made from this list
- * given the set number of items per page.
- */
- public int getPagesAvailable()
- {
- return (int)Math.ceil(getTotal() / (double)itemsPerPage);
- }
-
-
- /**
- * Returns the current "page" of search items.
- *
- * @return a {@link List} of items for the "current page"
- */
- public List getPage()
- {
- /* return null if we have no items */
- if (!hasItems())
- {
- return null;
- }
- /* quietly keep the page indices to legal values for robustness' sake */
- int start = getFirstIndex().intValue();
- int end = getLastIndex().intValue() + 1;
- return getItems().subList(start, end);
- }
-
- /**
- * Returns the "page number" for the specified index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @param i the index that you want the page number for
- * @return the approximate "page number" for the specified index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber(int i)
- {
- if (!hasItems())
- {
- return null;
- }
- return new Integer(1 + i / itemsPerPage);
- }
-
-
- /**
- * Returns the "page number" for the current index. Because the page
- * number is used for the user interface, the page numbers are 1-based.
- *
- * @return the approximate "page number" for the current index or
- * <code>null</code> if there are no items
- */
- public Integer getPageNumber()
- {
- return getPageNumber(index);
- }
-
- /**
- * Returns the total number of items available.
- * @since VelocityTools 1.3
- */
- public int getTotal()
- {
- if (!hasItems())
- {
- return 0;
- }
- return getItems().size();
- }
-
- /**
- * <p>Returns a description of the current page. This implementation
- * displays a 1-based range of result indices and the total number
- * of items. (e.g. "1 - 10 of 42" or "7 of 7") If there are no items,
- * this will return "0 of 0".</p>
- *
- * <p>Sub-classes may override this to provide a customized
- * description (such as one in another language).</p>
- *
- * @return a description of the current page
- */
- public String getPageDescription()
- {
- if (!hasItems())
- {
- return "0 of 0";
- }
-
- StringBuffer out = new StringBuffer();
- int first = getFirstIndex().intValue() + 1;
- int total = getTotal();
- if (first >= total)
- {
- out.append(total);
- out.append(" of ");
- out.append(total);
- }
- else
- {
- int last = getLastIndex().intValue() + 1;
- out.append(first);
- out.append(" - ");
- out.append(last);
- out.append(" of ");
- out.append(total);
- }
- return out.toString();
- }
-
- /**
- * Returns a <b>S</b>liding <b>L</b>ist of <b>I</b>ndices for <b>P</b>ages
- * of items.
- *
- * <p>Essentially, this returns a list of item indices that correspond
- * to available pages of items (as based on the set items-per-page).
- * This makes it relativly easy to do a google-ish set of links to
- * available pages.</p>
- *
- * <p>Note that this list of Integers is 0-based to correspond with the
- * underlying result indices and not the displayed page numbers (see
- * {@link #getPageNumber}).</p>
- *
- * @return {@link List} of Integers representing the indices of result
- * pages or empty list if there's one or less pages available
- */
- public List getSlip()
- {
- /* return an empty list if there's no pages to list */
- int totalPgs = getPagesAvailable();
- if (totalPgs <= 1)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* page number is 1-based so decrement it */
- int curPg = getPageNumber().intValue() - 1;
-
- /* start at zero or just under half of max slip size
- * this keeps "forward" and "back" pages about even
- * but gives preference to "forward" pages */
- int slipStart = Math.max(0, (curPg - (slipSize / 2)));
-
- /* push slip end as far as possible */
- int slipEnd = Math.min(totalPgs, (slipStart + slipSize));
-
- /* if we're out of "forward" pages, then push the
- * slip start toward zero to maintain slip size */
- if (slipEnd - slipStart < slipSize)
- {
- slipStart = Math.max(0, slipEnd - slipSize);
- }
-
- /* convert 0-based page numbers to indices and create list */
- List slip = new ArrayList(slipEnd - slipStart);
- for (int i=slipStart; i < slipEnd; i++)
- {
- slip.add(new Integer(i * itemsPerPage));
- }
- return slip;
- }
-
- /* ---------------------- protected methods ------------------------ */
-
- /**
- * Retrieves stored search items (if any) from the user's
- * session attributes.
- *
- * @return the {@link List} retrieved from memory
- */
- protected List getStoredItems()
- {
- if (session != null)
- {
- return (List)session.getAttribute(STORED_ITEMS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search items in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search items somewhere besides the
- * HttpSession or to prevent storage of items across requests. In
- * the former situation, you must also override getStoredItems().</p>
- *
- * @param items the {@link List} to be stored
- */
- protected void setStoredItems(List items)
- {
- if (session != null)
- {
- session.setAttribute(STORED_ITEMS_KEY, items);
- }
- }
-
}
Modified: velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java
URL: http://svn.apache.org/viewvc/velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java?view=diff&rev=544331&r1=544330&r2=544331
==============================================================================
--- velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java (original)
+++ velocity/tools/branches/2.x/src/main/java/org/apache/velocity/tools/view/tools/AbstractSearchTool.java Mon Jun 4 17:24:29 2007
@@ -19,169 +19,15 @@
* under the License.
*/
-import java.util.Collections;
import java.util.List;
-import org.apache.velocity.tools.config.DefaultKey;
-import org.apache.velocity.tools.config.InvalidScope;
/**
- * <p>Abstract view tool for doing "searching" and robust
- * pagination of search results. The goal here is to provide a simple
- * and uniform API for "search tools" that can be used in velocity
- * templates (or even a standard Search.vm template). In particular,
- * this class provides good support for result pagination and some
- * very simple result caching.
- * </p>
- * <p><b>Usage:</b><br>
- * To use this class, you must extend it and implement
- * the setup(HttpServletRequest) and executeQuery(Object)
- * methods.
- * <p>
- * The setup(HttpServletRequest) method ought to extract
- * from the current request the search criteria, the current
- * list index, and optionally, the number of items to display
- * per page of results. Upon extracting these parameters, they
- * should be set using the provided setCriteria(Object),
- * setIndex(int), and setItemsPerPage(int) methods. A simple
- * implementation would be:
- * <pre>
- * public void setup(HttpServletRequest req)
- * {
- * ParameterParser pp = new ParameterParser(req);
- * setCriteria(pp.getString("find"));
- * setIndex(pp.getInt("index", 0));
- * setItemsPerPage(pp.getInt("show", DEFAULT_ITEMS_PER_PAGE));
- * }
- * </pre>
- * <p>
- * The setCriteria(Object) method takes an Object in order to
- * allow the search criteria to meet your needs. Your criteria
- * may be as simple as a single string, an array of strings, or
- * whatever you like. The value passed into this method is that
- * which will ultimately be passed into executeQuery(Object) to
- * perform the search and return a list of results. A simple
- * implementation might be like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- * <p>
- * Here's an example of how your subclass would be used in a template:
- * <pre>
- * <form name="search" method="get" action="$link.setRelative('search.vm')">
- * <input type="text"name="find" value="$!search.criteria">
- * <input type="submit" value="Find">
- * </form>
- * #if( $search.hasItems() )
- * Showing $!search.pageDescription<br>
- * #set( $i = $search.index )
- * #foreach( $item in $search.page )
- * ${i}. $!item <br>
- * #set( $i = $i + 1 )
- * #end
- * <br>
- * #if ( $search.pagesAvailable > 1 )
- * #set( $pagelink = $link.setRelative('search.vm').addQueryData("find",$!search.criteria).addQueryData("show",$!search.itemsPerPage) )
- * #if( $search.prevIndex )
- * <a href="$pagelink.addQueryData('index',$!search.prevIndex)">Prev</a>
- * #end
- * #foreach( $index in $search.slip )
- * #if( $index == $search.index )
- * <b>$search.pageNumber</b>
- * #else
- * <a href="$pagelink.addQueryData('index',$!index)">$!search.getPageNumber($index)</a>
- * #end
- * #end
- * #if( $search.nextIndex )
- * <a href="$pagelink.addQueryData('index',$!search.nextIndex)">Next</a>
- * #end
- * #end
- * #elseif( $search.criteria )
- * Sorry, no matches were found for "$!search.criteria".
- * #else
- * Please enter a search term
- * #end
- * </pre>
- *
- * The output of this might look like:<br><br>
- * <form method="get" action="">
- * <input type="text" value="foo">
- * <input type="submit" value="Find">
- * </form>
- * Showing 1-5 of 8<br>
- * 1. foo<br>
- * 2. bar<br>
- * 3. blah<br>
- * 4. woogie<br>
- * 5. baz<br><br>
- * <b>1</b> <a href="">2</a> <a href="">Next</a>
- * </p>
- * <p>
- * <b>Example toolbox.xml configuration:</b>
- * <pre><tool>
- * <key>search</key>
- * <scope>request</scope>
- * <class>com.foo.tools.MySearchTool</class>
- * </tool>
- * </pre>
- * </p>
- *
- * @author Nathan Bubna
- * @since VelocityTools 1.0
- * @version $Revision$ $Date$
+ * Use {@link org.apache.velocity.tools.view.tools.AbstractSearchTool}
*/
-@DefaultKey("search")
-@InvalidScope({"application","session"})
-public abstract class AbstractSearchTool extends AbstractPagerTool
+@Deprecated
+public abstract class AbstractSearchTool extends
+ org.apache.velocity.tools.view.AbstractSearchTool
{
- /** the key under which StoredResults are kept in session */
- protected static final String STORED_RESULTS_KEY =
- StoredResults.class.getName();
-
- private Object criteria;
-
-
- /* ---------------------- mutators ----------------------------- */
-
- /**
- * Sets the criteria and results to null, page index to zero, and
- * items per page to the default.
- */
- public void reset()
- {
- super.reset();
- criteria = null;
- }
-
-
- /**
- * Sets the criteria for this search.
- *
- * @param criteria - the criteria used for this search
- */
- public void setCriteria(Object criteria)
- {
- this.criteria = criteria;
- }
-
-
- /* ---------------------- accessors ----------------------------- */
-
- /**
- * Return the criteria object for this request.
- * (for a simple search mechanism, this will typically be
- * just a java.lang.String)
- *
- * @return criteria object
- */
- public Object getCriteria()
- {
- return criteria;
- }
-
-
/**
* @deprecated Use {@link AbstractPagerTool#hasItems()}
*/
@@ -198,169 +44,5 @@
{
return getItems();
}
-
-
- /**
- * Gets the results for the given criteria either in memory
- * or by performing a new query for them. If the criteria
- * is null, an empty list will be returned.
- *
- * @return {@link List} of all items for the criteria
- */
- public List getItems()
- {
- /* return empty list if we have no criteria */
- if (criteria == null)
- {
- return Collections.EMPTY_LIST;
- }
-
- /* get the current list (should never return null!) */
- List list = super.getItems();
-
- /* if empty, execute a query for the criteria */
- if (list.isEmpty())
- {
- /* perform a new query */
- list = executeQuery(criteria);
-
- /* because we can't trust executeQuery() not to return null
- and getItems() must _never_ return null... */
- if (list == null)
- {
- list = Collections.EMPTY_LIST;
- }
-
- /* save the new results */
- setItems(list);
- }
- return list;
- }
-
-
- /* ---------------------- protected methods ----------------------------- */
-
- protected List getStoredItems()
- {
- StoredResults sr = getStoredResults();
-
- /* if the criteria equals that of the stored results,
- * then return the stored result list */
- if (sr != null && criteria.equals(sr.getCriteria()))
- {
- return sr.getList();
- }
- return null;
- }
-
-
- protected void setStoredItems(List items)
- {
- setStoredResults(new StoredResults(criteria, items));
- }
-
-
- /**
- * Executes a query for the specified criteria.
- *
- * <p>This method must be implemented! A simple
- * implementation might be something like:
- * <pre>
- * protected List executeQuery(Object crit)
- * {
- * return MyDbUtils.getFooBarsMatching((String)crit);
- * }
- * </pre>
- *
- * @return a {@link List} of results for this query
- */
- protected abstract List executeQuery(Object criteria);
-
-
- /**
- * Retrieves stored search results (if any) from the user's
- * session attributes.
- *
- * @return the {@link StoredResults} retrieved from memory
- */
- protected StoredResults getStoredResults()
- {
- if (session != null)
- {
- return (StoredResults)session.getAttribute(STORED_RESULTS_KEY);
- }
- return null;
- }
-
-
- /**
- * Stores current search results in the user's session attributes
- * (if one currently exists) in order to do efficient result pagination.
- *
- * <p>Override this to store search results somewhere besides the
- * HttpSession or to prevent storage of results across requests. In
- * the former situation, you must also override getStoredResults().</p>
- *
- * @param results the {@link StoredResults} to be stored
- */
- protected void setStoredResults(StoredResults results)
- {
- if (session != null)
- {
- session.setAttribute(STORED_RESULTS_KEY, results);
- }
- }
-
-
- /* ---------------------- utility class ----------------------------- */
-
- /**
- * Simple utility class to hold a criterion and its result list.
- * <p>
- * This class is by default stored in a user's session,
- * so it implements Serializable, but its members are
- * transient. So functionally, it is not serialized and
- * the last results/criteria will not be persisted if
- * the session is serialized.
- * </p>
- */
- public static class StoredResults implements java.io.Serializable
- {
- /** serial version id */
- private static final long serialVersionUID = 4503130168585978169L;
-
- private transient Object crit;
- private transient List list;
-
- /**
- * Creates a new instance.
- *
- * @param crit the criteria for these results
- * @param list the {@link List} of results to store
- */
- public StoredResults(Object crit, List list)
- {
- this.crit = crit;
- this.list = list;
- }
-
- /**
- * @return the stored criteria object
- */
- public Object getCriteria()
- {
- return crit;
- }
-
- /**
- * @return the stored {@link List} of results
- */
- public List getList()
- {
- return list;
- }
-
- }
-
}
--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 3/6/2007 12:47
------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.472 / Virus Database: 269.8.7/830 - Release Date: 3/6/2007 12:47