1 16 package org.apache.cocoon.woody.formmodel; 17 18 import org.apache.avalon.framework.service.ServiceSelector; 19 import org.apache.cocoon.woody.Constants; 20 import org.apache.cocoon.woody.datatype.SelectionList; 21 import org.apache.cocoon.woody.datatype.SelectionListBuilder; 22 import org.apache.cocoon.woody.util.DomHelper; 23 import org.w3c.dom.Element ; 24 25 30 public abstract class AbstractDatatypeWidgetDefinitionBuilder extends AbstractWidgetDefinitionBuilder { 31 32 35 protected boolean buildSelectionList(Element widgetElement, AbstractDatatypeWidgetDefinition widget) throws Exception { 36 widget.service(this.serviceManager); 39 40 Element selectionListElement = DomHelper.getChildElement(widgetElement, Constants.WD_NS, "selection-list"); 41 if (selectionListElement != null) { 42 ServiceSelector builderSelector = (ServiceSelector)this.serviceManager.lookup(SelectionListBuilder.ROLE + "Selector"); 44 SelectionListBuilder builder = null; 45 try { 46 String listType = selectionListElement.getAttribute("type"); 48 if ("".equals(listType)) { 49 listType = null; 50 } 51 52 builder = (SelectionListBuilder)builderSelector.select(listType); 53 SelectionList list = builder.build(selectionListElement, widget.getDatatype()); 54 widget.setSelectionList(list); 55 } finally { 56 if (builder != null) { 57 builderSelector.release(builder); 58 } 59 this.serviceManager.release(builderSelector); 60 } 61 62 return true; 63 } else { 64 return false; 65 } 66 } 67 } 68 | Popular Tags |