1 19 20 21 29 30 package org.netbeans.modules.xml.axi.impl; 31 32 import java.util.List ; 33 import org.netbeans.modules.xml.axi.AXIComponent; 34 import org.netbeans.modules.xml.axi.AXIComponent.ComponentType; 35 import org.netbeans.modules.xml.axi.AXIModel; 36 import org.netbeans.modules.xml.axi.AXIType; 37 import org.netbeans.modules.xml.axi.AbstractAttribute; 38 import org.netbeans.modules.xml.axi.AbstractElement; 39 import org.netbeans.modules.xml.axi.Compositor; 40 import org.netbeans.modules.xml.axi.ContentModel; 41 import org.netbeans.modules.xml.axi.Element; 42 import org.netbeans.modules.xml.axi.datatype.Datatype; 43 import org.netbeans.modules.xml.schema.model.Form; 44 import org.netbeans.modules.xml.schema.model.SchemaComponent; 45 46 54 public class ElementRef extends Element { 55 56 59 public ElementRef(AXIModel model, Element referent) { 60 super(model, referent); 61 } 62 63 66 public ElementRef(AXIModel model, SchemaComponent component, Element referent) { 67 super(model, component); 68 super.setSharedComponent(referent); 69 } 70 71 76 public ComponentType getComponentType() { 77 return ComponentType.REFERENCE; 78 } 79 80 83 public Element getReferent() { 84 return (Element)getSharedComponent(); 85 } 86 87 90 public void setRef(Element referent) { 91 ElementImpl oldRef = (ElementImpl) getReferent(); 92 if(oldRef == referent) 93 return; 94 oldRef.removeListener(this); 95 setSharedComponent(referent); 96 firePropertyChangeEvent(PROP_ELEMENT_REF, oldRef, referent); 97 forceFireEvent(); 98 if(canVisitChildren()) { 99 removeAllChildren(); 100 Util.addProxyChildren(this, referent, null); 101 } 102 } 103 104 107 public boolean isReference() { 108 return true; 109 } 110 111 114 public String getName() { 115 return getReferent().getName(); 116 } 117 118 121 public void setName(String name) { 122 getReferent().setName(name); 123 } 124 125 128 public boolean getAbstract() { 129 return getReferent().getAbstract(); 130 } 131 132 135 public void setAbstract(boolean value) { 136 getReferent().setAbstract(value); 137 } 138 139 142 public String getBlock() { 143 return getReferent().getBlock(); 144 } 145 146 149 public void setBlock(String value) { 150 getReferent().setBlock(value); 151 } 152 153 156 public String getFinal() { 157 return getReferent().getFinal(); 158 } 159 160 163 public void setFinal(String value) { 164 getReferent().setFinal(value); 165 } 166 167 170 public String getFixed() { 171 return getReferent().getFixed(); 172 } 173 174 177 public void setFixed(String value) { 178 getReferent().setFixed(value); 179 } 180 181 184 public String getDefault() { 185 return getReferent().getDefault(); 186 } 187 188 191 public void setDefault(String value) { 192 getReferent().setDefault(value); 193 } 194 195 198 public Form getForm() { 199 return getReferent().getForm(); 200 } 201 202 205 public void setForm(Form value) { 206 getReferent().setForm(value); 207 } 208 209 212 public boolean getNillable() { 213 return getReferent().getNillable(); 214 } 215 216 219 public void setNillable(boolean value) { 220 getReferent().setNillable(value); 221 } 222 223 227 public void addCompositor(Compositor compositor) { 228 getReferent().addCompositor(compositor); 229 } 230 231 234 public void removeCompositor(Compositor compositor) { 235 getReferent().removeCompositor(compositor); 236 } 237 238 243 public void addElement(AbstractElement child) { 244 getReferent().addElement(child); 245 } 246 247 250 public void removeElement(AbstractElement element) { 251 getReferent().removeElement(element); 252 } 253 254 257 public void addAttribute(AbstractAttribute attribute) { 258 getReferent().addAttribute(attribute); 259 } 260 261 264 public void removeAttribute(AbstractAttribute attribute) { 265 getReferent().removeAttribute(attribute); 266 } 267 268 public AXIType getType() { 269 return getReferent().getType(); 270 } 271 272 275 public void setType(AXIType type) { 276 if(type instanceof Element) { 277 setRef((Element)type); 278 return; 279 } 280 281 int index = this.getIndex(); 282 AXIComponent parent = getParent(); 283 Element e = getModel().getComponentFactory().createElement(); 284 e.setName(getReferent().getName()); 285 parent.removeChild(this); 286 parent.insertAtIndex(Element.PROP_ELEMENT, e, index); 287 e.setType(type); 288 } 289 290 293 public Compositor getCompositor() { 294 return getReferent().getCompositor(); 295 } 296 297 302 void forceFireEvent() { 303 firePropertyChangeEvent(Element.PROP_NAME, null, getReferent().getName()); 304 } 305 } 306 | Popular Tags |