/** @see org.argouml.uml.diagram.ui.FigNodeModelElement#updateListeners(java.lang.Object) */ protected void updateListeners(Object newOwner) { Object oldOwner = getOwner(); if (oldOwner != null && oldOwner != newOwner) { // remove the listeners if the owner is changed Iterator it = Model.getFacade().getFeatures(oldOwner).iterator(); while (it.hasNext()) { Object feat = it.next(); Model.getPump().removeModelEventListener(this, feat); Collection c = new ArrayList(Model.getFacade().getStereotypes(feat)); if (Model.getFacade().isAOperation(feat)) { c.addAll(Model.getFacade().getParameters(feat)); } Iterator it2 = c.iterator(); while (it2.hasNext()) { Object obj = it2.next(); Model.getPump().removeModelEventListener(this, obj); } } } if (newOwner != null) { // add the listeners to the newOwner Iterator it = Model.getFacade().getFeatures(newOwner).iterator(); while (it.hasNext()) { Object feat = it.next(); Collection c = new ArrayList(Model.getFacade().getStereotypes(feat)); if (Model.getFacade().isAOperation(feat)) { c.addAll(Model.getFacade().getParameters(feat)); } Iterator it2 = c.iterator(); while (it2.hasNext()) { Object obj = it2.next(); Model.getPump().addModelEventListener(this, obj); } } } super.updateListeners(newOwner); }