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);
      }
    }
  }