public void run() {
    ArrayList<DiagramElement> list = new ArrayList<DiagramElement>();

    if (element != null) {
      addToModel(element);
      ProjectBrowser.frame.getDiagramManager().updateOLEDFromInclusion(element);
    }

    if (addToDiagram && diagramElement != null) {
      addToDiagram(diagramElement, redo);
      ModelHelper.addMapping(element, ((ClassElement) diagramElement));
      list.add(diagramElement);
    }

    DiagramEditor d = ((DiagramEditor) notification);
    // notify
    if (d != null) {
      d.notifyChange(
          (List<DiagramElement>) list,
          ChangeType.ELEMENTS_ADDED,
          redo ? NotificationType.REDO : NotificationType.DO);
      UndoableEditEvent event = new UndoableEditEvent(((DiagramEditor) d), this);
      for (UndoableEditListener l : ((DiagramEditor) d).editListeners)
        l.undoableEditHappened(event);
    }
  }