org.eclipse.ui.views.properties.IPropertySourceProvider#org.eclipse.emf.transaction.TransactionalEditingDomain源码实例Demo

下面列出了org.eclipse.ui.views.properties.IPropertySourceProvider#org.eclipse.emf.transaction.TransactionalEditingDomain 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: bonita-studio   文件: ProcessValidationProvider.java
/**
* @generated
*/
public static void runWithConstraints(TransactionalEditingDomain editingDomain, Runnable operation) {
	if (!DISABLE_VALIDATION) {
		final Runnable op = operation;
		Runnable task = new Runnable() {
			public void run() {
				try {
					constraintsActive = true;
					op.run();
				} finally {
					constraintsActive = false;
				}
			}
		};
		if (editingDomain != null) {
			try {
				editingDomain.runExclusive(task);
			} catch (Exception e) {
				ProcessDiagramEditorPlugin.getInstance().logError("Validation failed", e); //$NON-NLS-1$
			}
		} else {
			task.run();
		}
	}
}
 
源代码2 项目: bonita-studio   文件: BatchValidationOperation.java
@Override
protected void execute(final IProgressMonitor monitor)
        throws CoreException, InvocationTargetException, InterruptedException {
    Assert.isLegal(!diagramsToDiagramEditPart.isEmpty());
    buildEditPart();
    validationMarkerProvider.clearMarkers(diagramsToDiagramEditPart);
    for (final Entry<Diagram, DiagramEditPart> entry : diagramsToDiagramEditPart.entrySet()) {
        final DiagramEditPart diagramEp = entry.getValue();
        final Diagram diagram = entry.getKey();
        if (diagramEp != null && !monitor.isCanceled()) {
            monitor.setTaskName(Messages.bind(
                    Messages.validatingProcess, ((MainProcess) diagramEp.resolveSemanticElement()).getName(),
                    ((MainProcess) diagramEp.resolveSemanticElement()).getVersion()));
            final TransactionalEditingDomain txDomain = TransactionUtil.getEditingDomain(diagram);
            runWithConstraints(txDomain, () -> validate(diagramEp, diagram, monitor));
            monitor.worked(1);
        }
    }
    offscreenEditPartFactory.dispose();
}
 
源代码3 项目: bonita-studio   文件: DiagramFileStore.java
@Override
protected void doSave(final Object content) {
    final Resource resource = getEMFResource();
    final TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(resource);
    try {
        OperationHistoryFactory.getOperationHistory().execute(
                new SaveDiagramResourceCommand(content, editingDomain, resource),
                Repository.NULL_PROGRESS_MONITOR,
                null);
    } catch (final ExecutionException e1) {
        BonitaStudioLog.error(e1);
    }
    if (content instanceof DiagramDocumentEditor) {
        ((DiagramDocumentEditor) content).doSave(Repository.NULL_PROGRESS_MONITOR);
    }

    try {
        resource.save(ProcessDiagramEditorUtil.getSaveOptions());
    } catch (final IOException e) {
        BonitaStudioLog.error(e);
    }
}
 
源代码4 项目: M2Doc   文件: VariableAndOptionPage.java
/**
 * Edits the given {@link Option}.
 * 
 * @param genEditingDomain
 *            the {@link TransactionalEditingDomain}
 * @param gen
 *            the {@link Generation}
 * @param option
 *            the {@link Option} to edit
 */
private void editOption(final TransactionalEditingDomain genEditingDomain, final Generation gen,
        final Option option) {
    final M2DocOptionDialog dialog = new M2DocOptionDialog(getShell(), gen, option);
    final int dialogResult = dialog.open();
    if (dialogResult == IDialogConstants.OK_ID) {
        genEditingDomain.getCommandStack().execute(new RecordingCommand(genEditingDomain) {

            @Override
            protected void doExecute() {
                option.setName(dialog.getOptionName());
                option.setValue(dialog.getOptionValue());
            }
        });
    }
}
 
源代码5 项目: M2Doc   文件: VariableAndOptionPage.java
/**
 * Initializes {@link Generation#getDefinitions() variable definition} for the given {@link Generation}.
 * 
 * @param gen
 *            the {@link Generation}
 */
private void initializeGenerationVariableDefinition(final Generation gen) {
    final TemplateCustomProperties properties = templateCustomPropertiesProvider.getTemplateCustomProperties();
    ((IQueryEnvironment) queryEnvironment).registerEPackage(EcorePackage.eINSTANCE);
    ((IQueryEnvironment) queryEnvironment).registerCustomClassMapping(
            EcorePackage.eINSTANCE.getEStringToStringMapEntry(), EStringToStringMapEntryImpl.class);
    if (properties != null) {
        properties.configureQueryEnvironmentWithResult((IQueryEnvironment) queryEnvironment);
    }

    final TransactionalEditingDomain generationDomain = TransactionUtil.getEditingDomain(gen);
    generationDomain.getCommandStack().execute(new RecordingCommand(generationDomain) {

        @Override
        protected void doExecute() {
            GenconfUtils.initializeVariableDefinition(gen, queryEnvironment, properties,
                    getEditingDomain(gen).getResourceSet());
        }
    });
}
 
public Object execute(ExecutionEvent event) throws ExecutionException {
	view = unwrap(HandlerUtil.getCurrentSelection(event));

	TransactionalEditingDomain editingDomain = TransactionUtil
			.getEditingDomain(view);
	ToggleCommand toggleCommand = new ToggleCommand(editingDomain, view);

	try {
		OperationHistoryFactory.getOperationHistory().execute(
				toggleCommand, new NullProgressMonitor(), null);
	} catch (ExecutionException e) {
		e.printStackTrace();
	}

	return null;
}
 
@Override
protected void doSetValue(final Object value) {
    final Object oldValue = eObject.eGet(eStructuralFeature);
    if (needRefactor(oldValue, value)) {
        final AbstractRefactorOperation<? extends EObject, ? extends EObject, ? extends RefactorPair<? extends EObject, ? extends EObject>> refactorOperation = refactorOperationFactory
                .createRefactorOperation((TransactionalEditingDomain) domain, eObject, value);
        refactorOperation.getCompoundCommand().append(SetCommand.create(domain, eObject, eStructuralFeature, value));
        try {
            progressService.busyCursorWhile(refactorOperation);
        } catch (InvocationTargetException | InterruptedException e) {
            BonitaStudioLog.error(String.format("Failed to refactor %s into %s", oldValue, value), e);
            openErrorDialog(oldValue, value, e);
        }
    } else {
        super.doSetValue(value);
    }

}
 
源代码8 项目: bonita-studio   文件: CustomCutCommand.java
@Override
protected CommandResult doExecuteWithResult(
		IProgressMonitor progressMonitor, IAdaptable info)
		throws ExecutionException {
	
	Clipboard.setToCopyEditParts(toCopyElement);
	TransactionalEditingDomain domain = (TransactionalEditingDomain) AdapterFactoryEditingDomain.getEditingDomainFor(toCopyElement);
	domain.getCommandStack().execute(new RecordingCommand(domain) {
		protected void doExecute() {
			for (IGraphicalEditPart part : toCopyElement) {
				EcoreUtil.delete(part.resolveSemanticElement());
			}
		}
	});		
	
	return CommandResult.newOKCommandResult();
}
 
源代码9 项目: statecharts   文件: FixedBendpointEditPolicy.java
@SuppressWarnings("restriction")
protected Command getBendpointsChangedCommand(ConnectionEditPart part) {
	Connection connection = part.getConnectionFigure();
	Point ptRef1 = connection.getSourceAnchor().getReferencePoint();
	connection.translateToRelative(ptRef1);

	Point ptRef2 = connection.getTargetAnchor().getReferencePoint();
	connection.translateToRelative(ptRef2);

	TransactionalEditingDomain editingDomain = getHost().getEditingDomain();

	SetConnectionBendpointsAndLabelCommmand sbbCommand = new SetConnectionBendpointsAndLabelCommmand(editingDomain);
	sbbCommand.setEdgeAdapter(new EObjectAdapter((EObject) part.getModel()));
	sbbCommand.setNewPointList(connection.getPoints(), ptRef1, ptRef2);
	sbbCommand.setLabelsToUpdate(part, getInitialPoints(connection));

	return new ICommandProxy(sbbCommand);
}
 
源代码10 项目: bonita-studio   文件: BatchValidationHandler.java
protected void addDiagramsToValidate(final BatchValidationOperation validateOperation, final String[] files) throws IOException {
    final DiagramRepositoryStore store = RepositoryManager.getInstance().getRepositoryStore(DiagramRepositoryStore.class);
    for (final String fName : files) {
        final String fileName = fName.trim();
        final DiagramFileStore fileStore = store.getChild(fileName, true);
        if (fileStore == null) {
            throw new IOException(fileName + " does not exists in " + store.getResource().getLocation());
        }
        currentDiagramStore = fileStore;
        fileStore.getContent();//force resource to be loaded
        final Resource eResource = fileStore.getEMFResource();
        final TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(eResource);
        final FindDiagramRunnable runnable = new FindDiagramRunnable(eResource, validateOperation);
        if (editingDomain != null) {
            try {
                editingDomain.runExclusive(runnable);
            } catch (final InterruptedException e) {
                BonitaStudioLog.error(e);
            }
        } else {
            runnable.run();
        }
    }
}
 
源代码11 项目: bonita-studio   文件: MoveConnectorWizard.java
public MoveConnectorWizard(final IOperationHistory operationHistory,
        final TransactionalEditingDomain editingDomain,
        final Collection<Connector> connectorsToMove) {
    checkArgument(connectorsToMove != null && !connectorsToMove.isEmpty(), "connectorsToMove cannot be null or empty");
    this.connectorsToMove = connectorsToMove;
    sourceProcess = sourceProcess();
    this.editingDomain = editingDomain;
    this.operationHistory = operationHistory;
    targetLocation = new WritableValue(sourceConnectableElement(), ConnectableElement.class);
    connectorEventObservable = new WritableValue(connectorEvent(), String.class);
}
 
源代码12 项目: bonita-studio   文件: MoveDataCommand.java
public MoveDataCommand(TransactionalEditingDomain editingDomain, DataAware container, List<Data> datas, DataAware target) {
	super(editingDomain, MoveDataCommand.class.getName(), getWorkspaceFiles(datas));
	this.container = container;
	this.target = target;
	this.datas = datas;
	this.dataNotMoved = new ArrayList<Data>();
}
 
@Override
public RefactorDataOperation createRefactorOperation(
        final TransactionalEditingDomain domain, final EObject item, final Object newValue) {
    checkArgument(item instanceof Expression);
    checkArgument(newValue instanceof String);
    final MultiInstantiable parentFlowElement = ModelHelper.getFirstContainerOfType(item, MultiInstantiable.class);
    final Data oldData = ExpressionHelper.dataFromIteratorExpression(
            parentFlowElement, (Expression) item, mainProcess(parentFlowElement));
    final RefactorDataOperation refactorOperation = new RefactorDataOperation(RefactoringOperationType.UPDATE);
    refactorOperation.setEditingDomain(domain);
    refactorOperation.setAskConfirmation(true);
    refactorOperation.setDataContainer(ModelHelper.getFirstContainerOfType(item, DataAware.class));
    refactorOperation.addItemToRefactor(dataWithNewName(oldData, (String) newValue), oldData);
    return refactorOperation;
}
 
源代码14 项目: bonita-studio   文件: EMFModelUpdater.java
/**
 * Applies the changes to the source object limiting UUID changes
 */
public T update() {
    TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(source);
    if (editingDomain != null) {
        editingDomain.getCommandStack().execute(createUpdateCommand(editingDomain));
    } else {
        synched.clear();
        manyFeaturesSynched.clear();
        deepEObjectUpdate(source, workingCopy);
    }
    return source;
}
 
@Override
public void deactivate() {
	super.deactivate();
	zoomManager.removeZoomListener(this) ;
	TransactionalEditingDomain editingDomain = ((IGraphicalEditPart)getHost()).getEditingDomain() ;
	View view = ((IGraphicalEditPart)getHost()).getNotationView() ; 
	DiagramEventBroker.getInstance(editingDomain).removeNotificationListener(view,NotationPackage.eINSTANCE.getLineStyle_LineColor(), styleListener ) ;
	feedbackFigures.clear();
	sourceFigure =null;
	layer = null;
	feedBackFigure = null;
}
 
源代码16 项目: M2Doc   文件: GenerationFileNamesPage.java
/**
 * Updates the generation URI.
 * 
 * @param gen
 *            the {@link Generation}
 * @param newGenconfURI
 *            the new generation URI
 */
private void updateGenconfURI(final Generation gen, final URI newGenconfURI) {
    final URI templateAbsolutURI;
    if (gen.getTemplateFileName() != null) {
        templateAbsolutURI = GenconfUtils.getResolvedURI(gen, URI.createURI(gen.getTemplateFileName(), false));
    } else {
        templateAbsolutURI = null;
    }
    final URI validationAbsolutURI;
    if (gen.getValidationFileName() != null) {
        validationAbsolutURI = GenconfUtils.getResolvedURI(gen, URI.createURI(gen.getValidationFileName(), false));
    } else {
        validationAbsolutURI = null;
    }
    final URI resultAbsolutURI;
    if (gen.getResultFileName() != null) {
        resultAbsolutURI = GenconfUtils.getResolvedURI(gen, URI.createURI(gen.getResultFileName()));
    } else {
        resultAbsolutURI = null;
    }

    gen.eResource().setURI(newGenconfURI);

    final TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(gen);
    editingDomain.getCommandStack().execute(new RecordingCommand(editingDomain) {

        @Override
        protected void doExecute() {
            if (templateAbsolutURI != null) {
                gen.setTemplateFileName(URI.decode(templateAbsolutURI.deresolve(newGenconfURI).toString()));
            }
            if (validationAbsolutURI != null) {
                gen.setValidationFileName(URI.decode(validationAbsolutURI.deresolve(newGenconfURI).toString()));
            }
            if (resultAbsolutURI != null) {
                gen.setResultFileName(URI.decode(resultAbsolutURI.deresolve(newGenconfURI).toString()));
            }
        }
    });
}
 
源代码17 项目: bonita-studio   文件: ScriptRefactoringAction.java
public ScriptRefactoringAction(final List<T> pairsToRefactor,
        final List<ScriptContainer<?>> scriptExpressions,
        final CompoundCommand compoundCommand,
        final TransactionalEditingDomain domain,
        final RefactoringOperationType operationType) {
    this.scriptExpressions = scriptExpressions;
    this.compoundCommand = compoundCommand;
    this.operationType = operationType;
    this.pairsToRefactor = pairsToRefactor;
    this.domain = domain;
}
 
源代码18 项目: bonita-studio   文件: DataWizard.java
public DataWizard(final TransactionalEditingDomain editingDomain, final EObject container, final EStructuralFeature dataContainmentFeature,
        final Set<EStructuralFeature> featureToCheckForUniqueID,
        final boolean showAutogenerateForm, final String fixedReturnType) {
    initDataWizard(dataContainmentFeature, showAutogenerateForm);
    this.editingDomain = editingDomain;
    this.container = container;
    dataWorkingCopy = createWorkingCopy(container);
    editMode = false;
    this.featureToCheckForUniqueID = new HashSet<EStructuralFeature>();
    this.featureToCheckForUniqueID.add(dataContainmentFeature);
    this.fixedReturnType = fixedReturnType;
    setWindowTitle(Messages.newVariable);
}
 
源代码19 项目: bonita-studio   文件: ProcBuilderTests.java
@Test
public void testAddGenericAttribute() throws ProcBuilderException, IOException {
    final String diagamFileName = "testDiagram.proc";
    final String diagramName = "testDiagram";
    final String poolName = "Pooli";
    final String description = "Simple description";
    final List<String> categories = new ArrayList<String>(2);
    categories.add("R&D");
    categories.add("Service");
    final File diagramFile = new File(ProjectUtil.getBonitaStudioWorkFolder(), diagamFileName);
    diagramFile.deleteOnExit();
    final URI targetURI = URI.createFileURI(diagramFile.getAbsolutePath());

    initProcBuilderWithDefaultContent(diagramName, poolName, description, categories, diagramFile);

    procBuilder.done();

    final TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
    final Resource diagramResource = editingDomain.getResourceSet().createResource(targetURI);
    diagramResource.load(new HashMap<String, String>());
    assertTrue("Import as failed", diagramResource.getContents().size() > 0);
    final MainProcess proc = (MainProcess) diagramResource.getContents().get(0);
    assertEquals(diagramName, proc.getName());
    final Pool p = (Pool) proc.getElements().get(0);
    assertEquals(poolName, p.getName());
    assertEquals("Missing pool categories", categories.size(), p.getCategories().size());
    final StartEvent event = (StartEvent) p.getElements().get(0);
    assertEquals("Start", event.getName());
    assertEquals(description, event.getDocumentation());

    diagramResource.delete(new HashMap<String, String>());
}
 
源代码20 项目: M2Doc   文件: NewGenerationWizard.java
/**
 * Constructor.
 */
public NewGenerationWizard() {
    generation = GenconfPackage.eINSTANCE.getGenconfFactory().createGeneration();
    final Resource resource = new XMIResourceImpl();
    final ResourceSet rs = new ResourceSetImpl();
    rs.getResources().add(resource);
    resource.getContents().add(generation);
    TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(rs);
}
 
源代码21 项目: bonita-studio   文件: MigrationStatusView.java
private void clearMigrationReport(final boolean save) throws IOException {
    final IEditorPart editorPart = (IEditorPart) tableViewer.getInput();
    if (editorPart != null && editorPart instanceof DiagramEditor) {
        final Resource emfResource = ((DiagramEditor) editorPart).getDiagramEditPart().getNotationView().eResource();
        final Report report = getMigrationReport(emfResource);
        if (report != null) {
            final TransactionalEditingDomain domain = TransactionUtil.getEditingDomain(emfResource);
            if (domain != null) {
                domain.getCommandStack().execute(new RecordingCommand(domain) {

                    @Override
                    protected void doExecute() {
                        emfResource.getContents().remove(report);
                    }
                });
                if (save) {
                    final ICommandService service = (ICommandService) getSite().getService(ICommandService.class);
                    final Command cmd = service.getCommand("org.eclipse.ui.file.save");
                    try {
                        cmd.executeWithChecks(new ExecutionEvent());
                    } catch (final Exception e) {
                        BonitaStudioLog.error(e, MigrationPlugin.PLUGIN_ID);
                    }
                }
            }
        }
    }
}
 
源代码22 项目: bonita-studio   文件: UpdateDataTypeCommand.java
public UpdateDataTypeCommand(TransactionalEditingDomain editingDomain,DataType dataType, String name, String description, List<String> literals) {
	super(editingDomain,UpdateDataTypeCommand.class.getName(),getWorkspaceFiles(dataType));
	this.name = name;
	this.description = description;
	this.dataType = dataType;
	this.process = ModelHelper.getMainProcess(dataType);
	this.literals = literals ;
}
 
/**
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    final BusinessObjectModelRepositoryStore store = mock(BusinessObjectModelRepositoryStore.class);
    final MainProcess diagram = ProcessFactory.eINSTANCE.createMainProcess();
    container = ProcessFactory.eINSTANCE.createPool();
    container.setName("Test Process");
    diagram.getElements().add(container);
    final DataType bType = ProcessFactory.eINSTANCE.createBusinessObjectType();
    bType.setName(DataTypeLabels.businessObjectType);
    diagram.getDatatypes().add(bType);
    final BusinessObjectData data = ProcessFactory.eINSTANCE.createBusinessObjectData();
    data.setName("testData");
    data.setDataType(bType);
    data.setBusinessDataRepositoryId("fake");
    data.setEClassName("Entity");
    data.setClassName("org.bonitasoft.test.Entity");
    container.getData().add(data);
    final BusinessObjectData data2 = ProcessFactory.eINSTANCE.createBusinessObjectData();
    data2.setName("testData2");
    data2.setDataType(bType);
    data2.setBusinessDataRepositoryId("fake");
    data2.setEClassName("Entity2");
    data2.setClassName("org.bonitasoft.test.Entity2");
    container.getData().add(data2);
    final Resource r = new ResourceImpl(URI.createFileURI("test.proc"));
    r.getContents().clear();
    r.getContents().add(diagram);
    final ResourceSet rSet = new ResourceSetImpl();
    rSet.getResources().add(r);
    editingDomain = TransactionalEditingDomain.Factory.INSTANCE.createEditingDomain(rSet);
    wizardUnderTest = new EditBusinessObjectDataWizard(data, store, editingDomain);
    wizardUnderTest.setContainer(wizardContainer);
}
 
源代码24 项目: bonita-studio   文件: DataWizard.java
public DataWizard(final TransactionalEditingDomain editingDomain, final Data data, final EStructuralFeature dataContainmentFeature,
        final Set<EStructuralFeature> featureToCheckForUniqueID, final boolean showAutogenerateForm) {
    initDataWizard(dataContainmentFeature, showAutogenerateForm);
    Assert.isNotNull(data);
    this.editingDomain = editingDomain;
    setNeedsProgressMonitor(true);
    container = data.eContainer();
    originalData = data;
    this.dataUpdater = new EMFModelUpdater<Data>().from(data);
    dataWorkingCopy = dataUpdater.getWorkingCopy();
    editMode = true;
    this.featureToCheckForUniqueID = featureToCheckForUniqueID;
    setWindowTitle(Messages.editVariable);
}
 
public static IObservableFactory valueWithRefactorFactory(final Realm realm, final EStructuralFeature eStructuralFeature, IRefactorOperationFactory refactorOperationFactory,
        IProgressService progressService) {
    return new IObservableFactory()
    {

        @Override
        public IObservable createObservable(final Object target)
        {
            final TransactionalEditingDomain editingDomain = TransactionUtil.getEditingDomain(target);
            return new ObservableValueWithRefactor(editingDomain, (EObject) target, eStructuralFeature, refactorOperationFactory, progressService);
        }
    };
}
 
源代码26 项目: bonita-studio   文件: ValidateAction.java
/**
* @generated
*/
public static void runValidation(DiagramEditPart diagramEditPart, View view) {
	final DiagramEditPart fpart = diagramEditPart;
	final View fview = view;
	TransactionalEditingDomain txDomain = TransactionUtil.getEditingDomain(view);
	ProcessValidationProvider.runWithConstraints(txDomain, new Runnable() {

		public void run() {
			validate(fpart, fview);
		}
	});
}
 
@Override
protected ElementInfo createElementInfo(Object element) throws CoreException {
	ElementInfo info = super.createElementInfo(element);
	if (element instanceof IDiagramEditorInput) {
		Resource eResource = ((IDiagramEditorInput) element).getDiagram().eResource();
		TransactionalEditingDomain sharedDomain = DiagramPartitioningUtil.getSharedDomain();
		if (eResource.isLoaded() && !sharedDomain.isReadOnly(eResource) && eResource.isModified()) {
			info.fCanBeSaved = true;
		}
	}
	return info;
}
 
/**
 * Override in order to change the location if a figure overrides another
 */
@Override
protected Command createChangeConstraintCommand(final EditPart child,
        final Object constraint) {
    final Rectangle newBounds = (Rectangle) constraint;
    final View shapeView = (View) child.getModel();
    final TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
    return new ICommandProxy(new OverlapSetBoundsCommand(editingDomain,
            (GraphicalEditPart) child,
            getHost(),
            new EObjectAdapter(shapeView),
            newBounds));
}
 
源代码29 项目: bonita-studio   文件: EMFModelUpdater.java
public RecordingCommand createUpdateCommand(TransactionalEditingDomain editingDomain) {
    return new RecordingCommand(editingDomain) {

        @Override
        protected void doExecute() {
            synched.clear();
            manyFeaturesSynched.clear();
            deepEObjectUpdate(source, workingCopy);
        }
    };
}
 
public CompartmentRepositionEObjectCommand(EditPart childToMove,
		TransactionalEditingDomain editingDomain, String label,
		EList elements, EObject element, int displacement, int newIndex) {
	super(editingDomain, label, elements, element, displacement);

	this.childToMove = childToMove;
	this.newIndex = newIndex;
}