Update of /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers In directory james.mmbase.org:/tmp/cvs-serv12825/containers
Modified Files: ListContainerTag.java ListNodesContainerTag.java QueryAgeConstraintTag.java QueryAliasConstraintTag.java QueryCompositeConstraintTag.java QueryConstraintTag.java QueryContainer.java QueryContainerReferrer.java QueryDistinctTag.java QueryMaxNumberTag.java QueryNextBatchesTag.java QueryOffsetTag.java QueryPreviousBatchesTag.java QuerySortOrderTag.java QueryTypeConstraintTag.java RelatedContainerTag.java RelatedNodesContainerTag.java Log Message: MMB-1668 See also: http://cvs.mmbase.org/viewcvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers See also: http://www.mmbase.org/jira/browse/MMB-1668 Index: ListContainerTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/ListContainerTag.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -b -r1.18 -r1.19 --- ListContainerTag.java 4 Jul 2006 12:16:09 -0000 1.18 +++ ListContainerTag.java 27 Jun 2008 09:07:10 -0000 1.19 @@ -22,11 +22,12 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: ListContainerTag.java,v 1.18 2006/07/04 12:16:09 michiel Exp $ + * @version $Id: ListContainerTag.java,v 1.19 2008/06/27 09:07:10 michiel Exp $ */ public class ListContainerTag extends CloudReferrerTag implements QueryContainer { private Query query = null; + protected Object prevQuery = null; private Attribute cachePolicy = Attribute.NULL; private Attribute path = Attribute.NULL; private Attribute searchDirs = Attribute.NULL; @@ -78,6 +79,7 @@ public int doStartTag() throws JspTagException { + prevQuery= pageContext.getAttribute(QueryContainer.KEY, QueryContainer.SCOPE); if (getReferid() != null) { query = (Query) getContextProvider().getContextContainer().getObject(getReferid()); } else { @@ -104,7 +106,7 @@ Queries.addFields(query, (String) fields.getValue(this)); Queries.addStartNodes(query, nodes.getString(this)); - + pageContext.setAttribute(QueryContainer.KEY, query, QueryContainer.SCOPE); return EVAL_BODY; } @@ -121,6 +123,8 @@ return SKIP_BODY; } public int doEndTag() throws JspTagException { + pageContext.setAttribute(KEY, prevQuery, SCOPE); + prevQuery = null; query = null; return super.doEndTag(); } Index: ListNodesContainerTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/ListNodesContainerTag.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -b -r1.24 -r1.25 --- ListNodesContainerTag.java 17 Mar 2008 16:18:15 -0000 1.24 +++ ListNodesContainerTag.java 27 Jun 2008 09:07:10 -0000 1.25 @@ -23,12 +23,13 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: ListNodesContainerTag.java,v 1.24 2008/03/17 16:18:15 michiel Exp $ + * @version $Id: ListNodesContainerTag.java,v 1.25 2008/06/27 09:07:10 michiel Exp $ */ public class ListNodesContainerTag extends NodeReferrerTag implements NodeQueryContainer { // nodereferrer because RelatedNodesContainer extension protected NodeQuery query = null; + protected Object prevQuery = null; protected Attribute cachePolicy = Attribute.NULL; protected Attribute path = Attribute.NULL; protected Attribute searchDirs = Attribute.NULL; @@ -106,6 +107,7 @@ } public int doStartTag() throws JspTagException { + prevQuery= pageContext.getAttribute(QueryContainer.KEY, QueryContainer.SCOPE); String cloneId = clone.getString(this); if (! "".equals(cloneId)) { query = (NodeQuery) getContextProvider().getContextContainer().getObject(cloneId); @@ -156,6 +158,7 @@ if (jspVar != null) { pageContext.setAttribute(jspVar, query); } + pageContext.setAttribute(QueryContainer.KEY, query, QueryContainer.SCOPE); return EVAL_BODY; } @@ -173,6 +176,8 @@ return SKIP_BODY; } public int doEndTag() throws JspTagException { + pageContext.setAttribute(KEY, prevQuery, SCOPE); + prevQuery = null; if (markused.getBoolean(this, false)) { query.markUsed(); } Index: QueryAgeConstraintTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryAgeConstraintTag.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- QueryAgeConstraintTag.java 27 Feb 2008 10:49:01 -0000 1.8 +++ QueryAgeConstraintTag.java 27 Jun 2008 09:07:10 -0000 1.9 @@ -23,7 +23,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryAgeConstraintTag.java,v 1.8 2008/02/27 10:49:01 michiel Exp $ + * @version $Id: QueryAgeConstraintTag.java,v 1.9 2008/06/27 09:07:10 michiel Exp $ * @see org.mmbase.module.builders.DayMarkers */ public class QueryAgeConstraintTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -99,8 +99,7 @@ if (minAge == Attribute.NULL && maxAge == Attribute.NULL) { throw new JspTagException("Either 'minage' or 'maxage' (or both) attributes must be present"); } - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); String fieldName; if (field == Attribute.NULL && element == Attribute.NULL) { Index: QueryAliasConstraintTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryAliasConstraintTag.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -b -r1.11 -r1.12 --- QueryAliasConstraintTag.java 27 Feb 2008 10:49:01 -0000 1.11 +++ QueryAliasConstraintTag.java 27 Jun 2008 09:07:10 -0000 1.12 @@ -23,7 +23,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryAliasConstraintTag.java,v 1.11 2008/02/27 10:49:01 michiel Exp $ + * @version $Id: QueryAliasConstraintTag.java,v 1.12 2008/06/27 09:07:10 michiel Exp $ */ public class QueryAliasConstraintTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -72,8 +72,7 @@ public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); String elementString = element.getString(this); Step step; if (elementString.length() == 0) { Index: QueryCompositeConstraintTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryCompositeConstraintTag.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -b -r1.10 -r1.11 --- QueryCompositeConstraintTag.java 18 Jul 2007 07:50:47 -0000 1.10 +++ QueryCompositeConstraintTag.java 27 Jun 2008 09:07:10 -0000 1.11 @@ -25,7 +25,7 @@ * @author Pierre van Rooden * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryCompositeConstraintTag.java,v 1.10 2007/07/18 07:50:47 michiel Exp $ + * @version $Id: QueryCompositeConstraintTag.java,v 1.11 2008/06/27 09:07:10 michiel Exp $ */ public class QueryCompositeConstraintTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -89,8 +89,7 @@ } public int doAfterBody() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); addConstraint(query, getOperator(), constraints); if(EVAL_BODY == EVAL_BODY_BUFFERED) { Index: QueryConstraintTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryConstraintTag.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- QueryConstraintTag.java 18 Jul 2007 07:50:47 -0000 1.8 +++ QueryConstraintTag.java 27 Jun 2008 09:07:10 -0000 1.9 @@ -23,7 +23,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryConstraintTag.java,v 1.8 2007/07/18 07:50:47 michiel Exp $ + * @version $Id: QueryConstraintTag.java,v 1.9 2008/06/27 09:07:10 michiel Exp $ */ public class QueryConstraintTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -157,9 +157,7 @@ } public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - - Query query = c.getQuery(); + Query query = getQuery(container); Constraint cons = addConstraint(query); if (inverse.getBoolean(this, false)) { query.setInverse(cons, true); Index: QueryContainer.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryContainer.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -b -r1.9 -r1.10 --- QueryContainer.java 10 Feb 2007 16:49:27 -0000 1.9 +++ QueryContainer.java 27 Jun 2008 09:07:10 -0000 1.10 @@ -11,16 +11,19 @@ import org.mmbase.bridge.*; import org.mmbase.bridge.jsp.taglib.CloudProvider; +import javax.servlet.jsp.PageContext; /** * A Query container can be used around node-list Tags. Basicly, it adminstrates a Query object. * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryContainer.java,v 1.9 2007/02/10 16:49:27 nklasens Exp $ + * @version $Id: QueryContainer.java,v 1.10 2008/06/27 09:07:10 michiel Exp $ */ public interface QueryContainer extends CloudProvider { + static final String KEY = "org.mmbase.query"; + static final int SCOPE = PageContext.REQUEST_SCOPE; /** * Returns the currently by the container defined query object. Subtags can use this query * object to change it or to use it. Index: QueryContainerReferrer.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryContainerReferrer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- QueryContainerReferrer.java 18 Dec 2003 09:05:47 -0000 1.1 +++ QueryContainerReferrer.java 27 Jun 2008 09:07:10 -0000 1.2 @@ -16,8 +16,9 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryContainerReferrer.java,v 1.1 2003/12/18 09:05:47 michiel Exp $ + * @version $Id: QueryContainerReferrer.java,v 1.2 2008/06/27 09:07:10 michiel Exp $ */ public interface QueryContainerReferrer extends ContainerReferrer { + } Index: QueryDistinctTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryDistinctTag.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- QueryDistinctTag.java 10 Feb 2007 16:49:27 -0000 1.2 +++ QueryDistinctTag.java 27 Jun 2008 09:07:10 -0000 1.3 @@ -21,7 +21,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryDistinctTag.java,v 1.2 2007/02/10 16:49:27 nklasens Exp $ + * @version $Id: QueryDistinctTag.java,v 1.3 2008/06/27 09:07:10 michiel Exp $ */ public class QueryDistinctTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -42,8 +42,7 @@ public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); query.setDistinct(distinct.getBoolean(this, true)); return SKIP_BODY; } Index: QueryMaxNumberTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryMaxNumberTag.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- QueryMaxNumberTag.java 10 Feb 2007 16:49:27 -0000 1.2 +++ QueryMaxNumberTag.java 27 Jun 2008 09:07:10 -0000 1.3 @@ -21,7 +21,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryMaxNumberTag.java,v 1.2 2007/02/10 16:49:27 nklasens Exp $ + * @version $Id: QueryMaxNumberTag.java,v 1.3 2008/06/27 09:07:10 michiel Exp $ */ public class QueryMaxNumberTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -41,8 +41,7 @@ public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); query.setMaxNumber(max.getInt(this, -1)); return SKIP_BODY; } Index: QueryNextBatchesTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryNextBatchesTag.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -b -r1.9 -r1.10 --- QueryNextBatchesTag.java 2 Mar 2007 21:01:15 -0000 1.9 +++ QueryNextBatchesTag.java 27 Jun 2008 09:07:10 -0000 1.10 @@ -26,7 +26,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryNextBatchesTag.java,v 1.9 2007/03/02 21:01:15 nklasens Exp $ + * @version $Id: QueryNextBatchesTag.java,v 1.10 2008/06/27 09:07:10 michiel Exp $ */ public class QueryNextBatchesTag extends StringListTag implements QueryContainerReferrer { //private static final Logger log = Logging.getLoggerInstance(QueryNextBatchesTag.class); @@ -57,8 +57,7 @@ protected List<String> getList() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); int offset = query.getOffset(); int maxNumber = query.getMaxNumber(); if (maxNumber == SearchQuery.DEFAULT_MAX_NUMBER) { Index: QueryOffsetTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryOffsetTag.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- QueryOffsetTag.java 10 Feb 2007 16:49:27 -0000 1.2 +++ QueryOffsetTag.java 27 Jun 2008 09:07:10 -0000 1.3 @@ -21,7 +21,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryOffsetTag.java,v 1.2 2007/02/10 16:49:27 nklasens Exp $ + * @version $Id: QueryOffsetTag.java,v 1.3 2008/06/27 09:07:10 michiel Exp $ */ public class QueryOffsetTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -41,9 +41,7 @@ public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); - + Query query = getQuery(container); query.setOffset(offset.getInt(this, 0)); return SKIP_BODY; } Index: QueryPreviousBatchesTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryPreviousBatchesTag.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -b -r1.9 -r1.10 --- QueryPreviousBatchesTag.java 2 Mar 2007 21:01:15 -0000 1.9 +++ QueryPreviousBatchesTag.java 27 Jun 2008 09:07:10 -0000 1.10 @@ -25,7 +25,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QueryPreviousBatchesTag.java,v 1.9 2007/03/02 21:01:15 nklasens Exp $ + * @version $Id: QueryPreviousBatchesTag.java,v 1.10 2008/06/27 09:07:10 michiel Exp $ */ public class QueryPreviousBatchesTag extends StringListTag implements QueryContainerReferrer { private static final Logger log = Logging.getLoggerInstance(QueryPreviousBatchesTag.class); @@ -66,8 +66,7 @@ protected List<String> getList() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); int offset = query.getOffset(); int maxNumber = query.getMaxNumber(); if (maxNumber == SearchQuery.DEFAULT_MAX_NUMBER) { Index: QuerySortOrderTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QuerySortOrderTag.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- QuerySortOrderTag.java 21 Jun 2007 15:50:20 -0000 1.8 +++ QuerySortOrderTag.java 27 Jun 2008 09:07:10 -0000 1.9 @@ -22,7 +22,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: QuerySortOrderTag.java,v 1.8 2007/06/21 15:50:20 nklasens Exp $ + * @version $Id: QuerySortOrderTag.java,v 1.9 2008/06/27 09:07:10 michiel Exp $ */ public class QuerySortOrderTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -53,9 +53,7 @@ } public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - - Query query = c.getQuery(); + Query query = getQuery(container); int order = Queries.getSortOrder(direction.getString(this)); int orderPart = Queries.getDateTimePart(part.getString(this)); StepField stepField = query.createStepField(field.getString(this)); Index: QueryTypeConstraintTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/QueryTypeConstraintTag.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -b -r1.8 -r1.9 --- QueryTypeConstraintTag.java 27 Feb 2008 10:49:01 -0000 1.8 +++ QueryTypeConstraintTag.java 27 Jun 2008 09:07:10 -0000 1.9 @@ -23,7 +23,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.8 - * @version $Id: QueryTypeConstraintTag.java,v 1.8 2008/02/27 10:49:01 michiel Exp $ + * @version $Id: QueryTypeConstraintTag.java,v 1.9 2008/06/27 09:07:10 michiel Exp $ */ public class QueryTypeConstraintTag extends CloudReferrerTag implements QueryContainerReferrer { @@ -80,8 +80,7 @@ public int doStartTag() throws JspTagException { - QueryContainer c = findParentTag(QueryContainer.class, (String) container.getValue(this)); - Query query = c.getQuery(); + Query query = getQuery(container); String elementString = element.getString(this); Step step; if (elementString.length() == 0) { Index: RelatedContainerTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/RelatedContainerTag.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -b -r1.18 -r1.19 --- RelatedContainerTag.java 4 Jul 2006 12:16:09 -0000 1.18 +++ RelatedContainerTag.java 27 Jun 2008 09:07:10 -0000 1.19 @@ -23,13 +23,14 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: RelatedContainerTag.java,v 1.18 2006/07/04 12:16:09 michiel Exp $ + * @version $Id: RelatedContainerTag.java,v 1.19 2008/06/27 09:07:10 michiel Exp $ */ public class RelatedContainerTag extends NodeReferrerTag implements QueryContainer { // private static final Logger log = Logging.getLoggerInstance(RelatedContainerTag.class); private Query query = null; + private Object prevQuery = null; private Attribute cachePolicy = Attribute.NULL; private Attribute path = Attribute.NULL; private Attribute searchDirs = Attribute.NULL; @@ -68,6 +69,7 @@ public int doStartTag() throws JspTagException { + prevQuery= pageContext.getAttribute(QueryContainer.KEY, QueryContainer.SCOPE); if (getReferid() != null) { query = (Query) getContextProvider().getContextContainer().getObject(getReferid()); } else { @@ -100,6 +102,8 @@ Queries.addFields(query, (String) fields.getValue(this)); + pageContext.setAttribute(QueryContainer.KEY, query, QueryContainer.SCOPE); + return EVAL_BODY; } @@ -116,6 +120,8 @@ return SKIP_BODY; } public int doEndTag() throws JspTagException { + pageContext.setAttribute(KEY, prevQuery, SCOPE); + prevQuery = null; query = null; return super.doEndTag(); } Index: RelatedNodesContainerTag.java =================================================================== RCS file: /var/cvs/applications/taglib/src/org/mmbase/bridge/jsp/taglib/containers/RelatedNodesContainerTag.java,v retrieving revision 1.18 retrieving revision 1.19 diff -u -b -r1.18 -r1.19 --- RelatedNodesContainerTag.java 20 Jun 2008 14:38:54 -0000 1.18 +++ RelatedNodesContainerTag.java 27 Jun 2008 09:07:10 -0000 1.19 @@ -26,7 +26,7 @@ * * @author Michiel Meeuwissen * @since MMBase-1.7 - * @version $Id: RelatedNodesContainerTag.java,v 1.18 2008/06/20 14:38:54 michiel Exp $ + * @version $Id: RelatedNodesContainerTag.java,v 1.19 2008/06/27 09:07:10 michiel Exp $ */ public class RelatedNodesContainerTag extends ListNodesContainerTag { @@ -51,6 +51,7 @@ public int doStartTag() throws JspTagException { + prevQuery= pageContext.getAttribute(QueryContainer.KEY, QueryContainer.SCOPE); String cloneId = clone.getString(this); if (! "".equals(cloneId)) { query = (NodeQuery) getContextProvider().getContextContainer().getObject(cloneId); @@ -115,6 +116,7 @@ if (jspVar != null) { pageContext.setAttribute(jspVar, query); } + pageContext.setAttribute(QueryContainer.KEY, query, QueryContainer.SCOPE); return EVAL_BODY; } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs