Exemplo n.º 1
0
  protected static synchronized TransactionalEditingDomain createEditingDomain(
      CamelDesignEditor designEditor) {
    TransactionalEditingDomain editingDomain = designEditor.getEditingDomain();
    IDiagramTypeProvider diagramTypeProvider = designEditor.getDiagramTypeProvider();
    if (diagramTypeProvider == null) {
      return null;
    }
    Diagram diagram = diagramTypeProvider.getDiagram();
    if (diagram == null) {
      return null;
    }
    if (editingDomain == null) {
      IDiagramBehavior diagramBehavior = diagramTypeProvider.getDiagramBehavior();
      if (diagramBehavior != null) {
        editingDomain = diagramBehavior.getEditingDomain();
      }
    }
    if (editingDomain == null) {
      ResourceSet resourceSet = null;
      Resource eResource = diagram.eResource();
      if (eResource != null) {
        resourceSet = eResource.getResourceSet();
      }
      if (resourceSet == null) {
        resourceSet = new ResourceSetImpl();
      }

      editingDomain = TransactionUtil.getEditingDomain(resourceSet);
      if (editingDomain == null) {
        editingDomain = GraphitiUi.getEmfService().createResourceSetAndEditingDomain();
      }
    }

    // TODO: do we need to set transactionaldomain?
    //		if (designEditor.getEditingDomain() == null) {
    //			designEditor.setEditingDomain(editingDomain);
    //		}

    return editingDomain;
  }