示例#1
0
 /** @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);
 }