bruno       2003/06/26 08:34:40

  Modified:    src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl
                        AbstractDatatypeBuilder.java
  Log:
  Added support for dynamic (non-cached) selection lists
  
  Revision  Changes    Path
  1.3       +13 -3     
cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl/AbstractDatatypeBuilder.java
  
  Index: AbstractDatatypeBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/cocoon-2.1/src/blocks/woody/java/org/apache/cocoon/woody/datatype/typeimpl/AbstractDatatypeBuilder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractDatatypeBuilder.java      26 Jun 2003 09:11:24 -0000      1.2
  +++ AbstractDatatypeBuilder.java      26 Jun 2003 15:34:40 -0000      1.3
  @@ -89,10 +89,20 @@
       protected void buildSelectionList(Element datatypeElement, AbstractDatatype 
datatype) throws Exception {
           Element selectionListElement = DomHelper.getChildElement(datatypeElement, 
Constants.WD_NS, "selection-list");
           if (selectionListElement != null) {
  +            SelectionList selectionList;
               String src = selectionListElement.getAttribute("src");
  -            if (src.length() > 0)
  -                selectionListElement = readSelectionList(src);
  -            SelectionList selectionList = 
SelectionListBuilder.build(selectionListElement, datatype);
  +            if (src.length() > 0) {
  +                boolean cache = 
DomHelper.getAttributeAsBoolean(selectionListElement, "cache", true);
  +                if (cache) {
  +                    selectionListElement = readSelectionList(src);
  +                    selectionList = 
SelectionListBuilder.build(selectionListElement, datatype);
  +                } else {
  +                    selectionList = new DynamicSelectionList(datatype, src, 
componentManager);
  +                }
  +            } else {
  +                // selection list is defined inline
  +                selectionList = SelectionListBuilder.build(selectionListElement, 
datatype);
  +            }
               datatype.setSelectionList(selectionList);
           }
       }
  
  
  

Reply via email to