/** Sets the shared component. */ protected void setSharedComponent(AXIComponent sharedComponent) { this.sharedComponent = sharedComponent; if (sharedComponent == null) { return; } AXIModelImpl thisModel = (AXIModelImpl) getModel(); if (thisModel == sharedComponent.getModel()) { sharedComponent.addListener(this); return; } // keep listening to the other model thisModel.listenToReferencedModel(sharedComponent.getModel()); }
/** Overwritten so that it can fire events to the proxies. */ public void insertAtIndex(String property, AXIComponent child, int index) { if (getModel() != child.getModel()) return; super.insertAtIndex(property, child, index); if (pcs != null) pcs.firePropertyChange(PROP_CHILD_ADDED, null, child); if (this instanceof AXIDocumentImpl) ((AXIDocumentImpl) this).addToCache(child); }
/** Overwritten so that it can fire events to the proxies. */ protected void appendChild(String property, AXIComponent child) { if (getModel() != child.getModel()) return; super.appendChild(property, child); if (pcs != null) pcs.firePropertyChange(PROP_CHILD_ADDED, null, child); if (this instanceof AXIDocumentImpl) ((AXIDocumentImpl) this).addToCache(child); }
/** Add a listener to the shared component. */ public void addListener(AXIComponent proxy) { if (getModel() != proxy.getModel()) return; if (pcs == null) pcs = new PropertyChangeSupport(this); PropertyChangeListener l = getWeakListener(proxy, false); if (l != null) pcs.addPropertyChangeListener(l); }
/** Overwritten so that it can fire events to the proxies. */ public void removeChild(String property, AXIComponent child) { if (getModel() != child.getModel()) return; super.removeChild(property, child); if (pcs != null) { // fire event so that proxy children get deleted from their parents pcs.firePropertyChange(PROP_CHILD_REMOVED, child, null); // finally, remove all listeners from the shared child child.removeAllListeners(); } if (this instanceof AXIDocumentImpl) ((AXIDocumentImpl) this).removeFromCache(child); }
public AXIComponent copy(AXIComponent parent) { AXIComponentFactory f = parent.getModel().getComponentFactory(); return f.copy(this); }