public void setOwner(Object own) { Object oldOwner = getOwner(); super.setOwner(own); if (own instanceof MDependency) { MDependency newDep = (MDependency) own; for (int i = 0; i < newDep.getSuppliers().size(); i++) { ((MModelElement) ((Object[]) newDep.getSuppliers().toArray())[i]) .removeMElementListener(this); ((MModelElement) ((Object[]) newDep.getSuppliers().toArray())[i]).addMElementListener(this); } for (int i = 0; i < newDep.getClients().size(); i++) { ((MModelElement) ((Object[]) newDep.getClients().toArray())[i]) .removeMElementListener(this); ((MModelElement) ((Object[]) newDep.getClients().toArray())[i]).addMElementListener(this); } newDep.removeMElementListener(this); newDep.addMElementListener(this); MModelElement supplier = (MModelElement) ((newDep.getSuppliers().toArray())[0]); MModelElement client = (MModelElement) ((newDep.getClients().toArray())[0]); FigNode supFN = (FigNode) getLayer().presentationFor(supplier); FigNode cliFN = (FigNode) getLayer().presentationFor(client); if (cliFN != null) { setSourcePortFig(cliFN); setSourceFigNode(cliFN); } if (supFN != null) { setDestPortFig(supFN); setDestFigNode(supFN); } } }