1 16 package org.apache.cocoon.forms.formmodel; 17 18 import java.util.Collection ; 19 import java.util.Iterator ; 20 import java.util.List ; 21 22 27 public abstract class AbstractContainerDefinition 28 extends AbstractWidgetDefinition implements ContainerDefinition { 29 protected WidgetDefinitionList definitions; 30 31 public AbstractContainerDefinition() { 32 definitions = new WidgetDefinitionList(this); 33 } 34 35 public void createWidget(Widget parent, String id) { 36 definitions.createWidget(parent, id); 37 } 38 39 public void createWidgets(Widget parent) { 40 definitions.createWidgets(parent); 41 } 42 43 46 public void initializeFrom(WidgetDefinition definition) throws Exception { 47 super.initializeFrom(definition); 48 49 if(definition instanceof AbstractContainerDefinition) { 50 AbstractContainerDefinition other = (AbstractContainerDefinition)definition; 51 52 Iterator otherwidgets = other.definitions.getWidgetDefinitions().iterator(); 53 while(otherwidgets.hasNext()) { 54 try { 55 WidgetDefinition def = (WidgetDefinition)otherwidgets.next(); 56 this.definitions.addWidgetDefinition(def); 57 } catch(DuplicateIdException ignore) {} 58 } 59 } else { 60 throw new Exception ("Definition to inherit from is not of the right type! (at "+getLocation()+")"); 61 } 62 } 63 64 67 public void checkCompleteness() throws IncompletenessException { 68 super.checkCompleteness(); 69 this.definitions.checkCompleteness(); 70 } 71 72 public void addWidgetDefinition(WidgetDefinition definition) throws Exception , DuplicateIdException { 73 definition.setParent(this); 76 definitions.addWidgetDefinition(definition); 77 } 78 79 public void resolve(List parents, WidgetDefinition parent) throws Exception { 80 definitions.resolve(parents, parent); 81 } 82 83 public boolean hasWidget(String id) { 84 return definitions.hasWidget(id); 85 } 86 87 public WidgetDefinition getWidgetDefinition(String id) { 88 return definitions.getWidgetDefinition(id); 89 } 90 91 public Collection getWidgetDefinitions() { 92 return definitions.getWidgetDefinitions(); 93 } 94 } 95 | Popular Tags |