use of org.eclipse.emf.transaction.TransactionalEditingDomain in project tdi-studio-se by Talend.
the class BusinessReferenceConnectionEditPolicy method createDeleteSemanticCommand.
/**
* @generated
*/
protected Command createDeleteSemanticCommand(GroupRequest deleteRequest) {
TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
EditCommandRequestWrapper semReq = new EditCommandRequestWrapper(new DestroyElementRequest(editingDomain, false), deleteRequest.getExtendedData());
Command semanticCmd = getHost().getCommand(semReq);
if (semanticCmd != null && semanticCmd.canExecute()) {
CompoundCommand cc = new CompoundCommand();
cc.add(semanticCmd);
return cc;
}
return null;
}
use of org.eclipse.emf.transaction.TransactionalEditingDomain in project tdi-studio-se by Talend.
the class BusinessInitDiagramFileAction method run.
/**
* @generated NOT
*/
public void run(IAction action) {
TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
ResourceSet resourceSet = new ResourceSetImpl();
EObject diagramRoot = null;
try {
Resource resource = resourceSet.getResource(URI.createPlatformResourceURI(mySelectedModelFile.getFullPath().toString()), true);
diagramRoot = (EObject) resource.getContents().get(0);
} catch (WrappedException ex) {
BusinessDiagramEditorPlugin.getInstance().logError(Messages.getString("BusinessInitDiagramFileAction.UnableToLoadResource") + mySelectedModelFile.getFullPath().toString(), //$NON-NLS-1$
ex);
}
if (diagramRoot == null) {
MessageDialog.openError(myPart.getSite().getShell(), Messages.getString("BusinessInitDiagramFileAction.Error"), //$NON-NLS-1$ //$NON-NLS-2$
Messages.getString("BusinessInitDiagramFileAction.LoadFaild"));
return;
}
Wizard wizard = new BusinessNewDiagramFileWizard(mySelectedModelFile, myPart.getSite().getPage(), mySelection, diagramRoot, editingDomain);
IDialogSettings pluginDialogSettings = BusinessDiagramEditorPlugin.getInstance().getDialogSettings();
//$NON-NLS-1$
IDialogSettings initDiagramFileSettings = pluginDialogSettings.getSection("InisDiagramFile");
if (initDiagramFileSettings == null) {
//$NON-NLS-1$
initDiagramFileSettings = pluginDialogSettings.addNewSection("InisDiagramFile");
}
wizard.setDialogSettings(initDiagramFileSettings);
wizard.setForcePreviousAndNextButtons(false);
wizard.setWindowTitle(//$NON-NLS-1$ //$NON-NLS-2$
Messages.getString("BusinessInitDiagramFileAction.IntialNew") + BusinessProcessEditPart.MODEL_ID + Messages.getString("BusinessInitDiagramFileAction.DiagramFile"));
WizardDialog dialog = new WizardDialog(myPart.getSite().getShell(), wizard);
dialog.create();
dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x), 500);
dialog.open();
}
use of org.eclipse.emf.transaction.TransactionalEditingDomain in project tdi-studio-se by Talend.
the class BusinessDiagramEditor method createEditingDomain.
/**
* @generated
*/
@Override
protected TransactionalEditingDomain createEditingDomain() {
TransactionalEditingDomain domain = super.createEditingDomain();
domain.setID(getEditingDomainID());
return domain;
}
use of org.eclipse.emf.transaction.TransactionalEditingDomain in project tdi-studio-se by Talend.
the class BusinessDiagramEditorUtil method createNewDiagramFile.
/**
* <p>
* This method should be called within a workspace modify operation since it creates resources.
* </p>
*
* @generated
* @return the created file resource, or <code>null</code> if the file was not created
*/
public static final IFile createNewDiagramFile(DiagramFileCreator diagramFileCreator, IPath containerFullPath, String fileName, InputStream initialContents, String kind, Shell shell, IProgressMonitor progressMonitor) {
TransactionalEditingDomain editingDomain = GMFEditingDomainFactory.INSTANCE.createEditingDomain();
ResourceSet resourceSet = editingDomain.getResourceSet();
//$NON-NLS-1$
progressMonitor.beginTask("Creating diagram and model files", 4);
final IProgressMonitor subProgressMonitor = new SubProgressMonitor(progressMonitor, 1);
final IFile diagramFile = diagramFileCreator.createNewFile(containerFullPath, fileName, initialContents, shell, new IRunnableContext() {
public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException {
runnable.run(subProgressMonitor);
}
});
final Resource diagramResource = resourceSet.createResource(URI.createPlatformResourceURI(diagramFile.getFullPath().toString()));
List affectedFiles = new ArrayList();
affectedFiles.add(diagramFile);
final String kindParam = kind;
AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, //$NON-NLS-1$
"Creating diagram and model", //$NON-NLS-1$
affectedFiles) {
protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
BusinessProcess model = createInitialModel();
diagramResource.getContents().add(model);
Diagram diagram = ViewService.createDiagram(model, kindParam, BusinessDiagramEditorPlugin.DIAGRAM_PREFERENCES_HINT);
if (diagram != null) {
diagramResource.getContents().add(diagram);
diagram.setName(diagramFile.getName());
diagram.setElement(model);
}
try {
diagramResource.save(Collections.EMPTY_MAP);
} catch (IOException e) {
BusinessDiagramEditorPlugin.getInstance().logError("Unable to store model and diagram resources", //$NON-NLS-1$
e);
}
return CommandResult.newOKCommandResult();
}
};
try {
OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null);
} catch (ExecutionException e) {
//$NON-NLS-1$
BusinessDiagramEditorPlugin.getInstance().logError("Unable to create model and diagram", e);
}
try {
//$NON-NLS-1$
diagramFile.setCharset("UTF-8", new SubProgressMonitor(progressMonitor, 1));
} catch (CoreException e) {
//$NON-NLS-1$
BusinessDiagramEditorPlugin.getInstance().logError("Unable to set charset for diagram file", e);
}
return diagramFile;
}
use of org.eclipse.emf.transaction.TransactionalEditingDomain in project tdi-studio-se by Talend.
the class BusinessBaseItemSemanticEditPolicy method getSemanticCommand.
/**
* @generated
*/
protected Command getSemanticCommand(IEditCommandRequest request) {
IEditCommandRequest completedRequest = completeRequest(request);
Object editHelperContext = completedRequest.getEditHelperContext();
if (editHelperContext instanceof View || (editHelperContext instanceof IEditHelperContext && ((IEditHelperContext) editHelperContext).getEObject() instanceof View)) {
// no semantic commands are provided for pure design elements
return null;
}
if (editHelperContext == null) {
editHelperContext = ViewUtil.resolveSemanticElement((View) getHost().getModel());
}
IElementType elementType = ElementTypeRegistry.getInstance().getElementType(editHelperContext);
if (elementType == ElementTypeRegistry.getInstance().getType("org.eclipse.gmf.runtime.emf.type.core.default")) {
//$NON-NLS-1$
elementType = null;
}
Command epCommand = getSemanticCommandSwitch(completedRequest);
if (epCommand != null) {
ICommand command = epCommand instanceof ICommandProxy ? ((ICommandProxy) epCommand).getICommand() : new CommandProxy(epCommand);
completedRequest.setParameter(BusinessBaseEditHelper.EDIT_POLICY_COMMAND, command);
}
Command ehCommand = null;
if (elementType != null) {
ICommand command = elementType.getEditCommand(completedRequest);
if (command != null) {
if (!(command instanceof CompositeTransactionalCommand)) {
TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
command = new CompositeTransactionalCommand(editingDomain, null).compose(command);
}
ehCommand = new ICommandProxy(command);
}
}
boolean shouldProceed = true;
if (completedRequest instanceof DestroyRequest) {
shouldProceed = shouldProceed((DestroyRequest) completedRequest);
}
if (shouldProceed) {
if (completedRequest instanceof DestroyRequest) {
TransactionalEditingDomain editingDomain = ((IGraphicalEditPart) getHost()).getEditingDomain();
Command deleteViewCommand = new ICommandProxy(new DeleteCommand(editingDomain, (View) getHost().getModel()));
ehCommand = ehCommand == null ? deleteViewCommand : ehCommand.chain(deleteViewCommand);
}
return ehCommand;
}
return null;
}
Aggregations