Search in sources :

Example 1 with BasicCommandStack

use of org.eclipse.emf.common.command.BasicCommandStack in project iobserve-analysis by research-iobserve.

the class cloudprofileEditor method doSave.

/**
 * This is for implementing {@link IEditorPart} and simply saves the model file.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@Override
public void doSave(IProgressMonitor progressMonitor) {
    // Save only resources that have actually changed.
    // 
    final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
    saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
    saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
    // Do the work within an operation because this is a long running activity that modifies the workbench.
    // 
    WorkspaceModifyOperation operation = new WorkspaceModifyOperation() {

        // This is the method that gets invoked when the operation runs.
        // 
        @Override
        public void execute(IProgressMonitor monitor) {
            // Save the resources to the file system.
            // 
            boolean first = true;
            for (Resource resource : editingDomain.getResourceSet().getResources()) {
                if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
                    try {
                        long timeStamp = resource.getTimeStamp();
                        resource.save(saveOptions);
                        if (resource.getTimeStamp() != timeStamp) {
                            savedResources.add(resource);
                        }
                    } catch (Exception exception) {
                        resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
                    }
                    first = false;
                }
            }
        }
    };
    updateProblemIndication = false;
    try {
        // This runs the options, and shows progress.
        // 
        new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
        // Refresh the necessary state.
        // 
        ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
        firePropertyChange(IEditorPart.PROP_DIRTY);
    } catch (Exception exception) {
        // Something went wrong that shouldn't.
        // 
        CloudProfileEditorPlugin.INSTANCE.log(exception);
    }
    updateProblemIndication = true;
    updateProblemIndication();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) WorkspaceModifyOperation(org.eclipse.ui.actions.WorkspaceModifyOperation) ProgressMonitorDialog(org.eclipse.jface.dialogs.ProgressMonitorDialog) Resource(org.eclipse.emf.ecore.resource.Resource) IResource(org.eclipse.core.resources.IResource) EventObject(java.util.EventObject) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) IOException(java.io.IOException)

Example 2 with BasicCommandStack

use of org.eclipse.emf.common.command.BasicCommandStack in project iobserve-analysis by research-iobserve.

the class cloudprofileEditor method initializeEditingDomain.

/**
 * This sets up the editing domain for the model editor.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
protected void initializeEditingDomain() {
    // Create an adapter factory that yields item providers.
    // 
    adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
    adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new cloudprofileItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
    // Create the command stack that will notify this editor as commands are executed.
    // 
    BasicCommandStack commandStack = new BasicCommandStack();
    // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
    // 
    commandStack.addCommandStackListener(new CommandStackListener() {

        public void commandStackChanged(final EventObject event) {
            getContainer().getDisplay().asyncExec(new Runnable() {

                public void run() {
                    firePropertyChange(IEditorPart.PROP_DIRTY);
                    // Try to select the affected objects.
                    // 
                    Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
                    if (mostRecentCommand != null) {
                        setSelectionToViewer(mostRecentCommand.getAffectedObjects());
                    }
                    for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
                        PropertySheetPage propertySheetPage = i.next();
                        if (propertySheetPage.getControl().isDisposed()) {
                            i.remove();
                        } else {
                            propertySheetPage.refresh();
                        }
                    }
                }
            });
        }
    });
    // Create the editing domain with a special command stack.
    // 
    editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
}
Also used : AdapterFactoryEditingDomain(org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) CommandStack(org.eclipse.emf.common.command.CommandStack) PropertySheetPage(org.eclipse.ui.views.properties.PropertySheetPage) IPropertySheetPage(org.eclipse.ui.views.properties.IPropertySheetPage) ExtendedPropertySheetPage(org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage) CommandStackListener(org.eclipse.emf.common.command.CommandStackListener) ResourceItemProviderAdapterFactory(org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) ComposedAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) org.iobserve.planning.cloudprofile.provider.cloudprofileItemProviderAdapterFactory(org.iobserve.planning.cloudprofile.provider.cloudprofileItemProviderAdapterFactory) EventObject(java.util.EventObject) ReflectiveItemProviderAdapterFactory(org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory) Command(org.eclipse.emf.common.command.Command)

Example 3 with BasicCommandStack

use of org.eclipse.emf.common.command.BasicCommandStack in project iobserve-analysis by research-iobserve.

the class systemadaptationEditor method initializeEditingDomain.

/**
 * This sets up the editing domain for the model editor.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
protected void initializeEditingDomain() {
    // Create an adapter factory that yields item providers.
    // 
    adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
    adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new systemadaptationItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new IdentifierItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new PcmItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new CoreItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new EntityItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new CompositionItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new UsagemodelItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new RepositoryItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ResourcetypeItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ProtocolItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ParameterItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ReliabilityItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new SeffItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new SeffPerformanceItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new SeffReliabilityItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new QosannotationsItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new QosPerformanceItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new QosReliabilityItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new SystemItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ResourceenvironmentItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new AllocationItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new SubsystemItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ProbfunctionItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new StoexItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new UnitsItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
    // Create the command stack that will notify this editor as commands are executed.
    // 
    BasicCommandStack commandStack = new BasicCommandStack();
    // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
    // 
    commandStack.addCommandStackListener(new CommandStackListener() {

        public void commandStackChanged(final EventObject event) {
            getContainer().getDisplay().asyncExec(new Runnable() {

                public void run() {
                    firePropertyChange(IEditorPart.PROP_DIRTY);
                    // Try to select the affected objects.
                    // 
                    Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
                    if (mostRecentCommand != null) {
                        setSelectionToViewer(mostRecentCommand.getAffectedObjects());
                    }
                    for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
                        PropertySheetPage propertySheetPage = i.next();
                        if (propertySheetPage.getControl().isDisposed()) {
                            i.remove();
                        } else {
                            propertySheetPage.refresh();
                        }
                    }
                }
            });
        }
    });
    // Create the editing domain with a special command stack.
    // 
    editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
}
Also used : ResourcetypeItemProviderAdapterFactory(org.palladiosimulator.pcm.resourcetype.provider.ResourcetypeItemProviderAdapterFactory) AdapterFactoryEditingDomain(org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) org.iobserve.planning.systemadaptation.provider.systemadaptationItemProviderAdapterFactory(org.iobserve.planning.systemadaptation.provider.systemadaptationItemProviderAdapterFactory) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) CoreItemProviderAdapterFactory(org.palladiosimulator.pcm.core.provider.CoreItemProviderAdapterFactory) SeffReliabilityItemProviderAdapterFactory(org.palladiosimulator.pcm.seff.seff_reliability.provider.SeffReliabilityItemProviderAdapterFactory) SeffReliabilityItemProviderAdapterFactory(org.palladiosimulator.pcm.seff.seff_reliability.provider.SeffReliabilityItemProviderAdapterFactory) QosReliabilityItemProviderAdapterFactory(org.palladiosimulator.pcm.qosannotations.qos_reliability.provider.QosReliabilityItemProviderAdapterFactory) ReliabilityItemProviderAdapterFactory(org.palladiosimulator.pcm.reliability.provider.ReliabilityItemProviderAdapterFactory) CompositionItemProviderAdapterFactory(org.palladiosimulator.pcm.core.composition.provider.CompositionItemProviderAdapterFactory) QosReliabilityItemProviderAdapterFactory(org.palladiosimulator.pcm.qosannotations.qos_reliability.provider.QosReliabilityItemProviderAdapterFactory) SeffItemProviderAdapterFactory(org.palladiosimulator.pcm.seff.provider.SeffItemProviderAdapterFactory) PcmItemProviderAdapterFactory(org.palladiosimulator.pcm.provider.PcmItemProviderAdapterFactory) RepositoryItemProviderAdapterFactory(org.palladiosimulator.pcm.repository.provider.RepositoryItemProviderAdapterFactory) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) CommandStack(org.eclipse.emf.common.command.CommandStack) PropertySheetPage(org.eclipse.ui.views.properties.PropertySheetPage) IPropertySheetPage(org.eclipse.ui.views.properties.IPropertySheetPage) ExtendedPropertySheetPage(org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage) CommandStackListener(org.eclipse.emf.common.command.CommandStackListener) ResourceItemProviderAdapterFactory(org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory) ProtocolItemProviderAdapterFactory(org.palladiosimulator.pcm.protocol.provider.ProtocolItemProviderAdapterFactory) QosPerformanceItemProviderAdapterFactory(org.palladiosimulator.pcm.qosannotations.qos_performance.provider.QosPerformanceItemProviderAdapterFactory) AllocationItemProviderAdapterFactory(org.palladiosimulator.pcm.allocation.provider.AllocationItemProviderAdapterFactory) SubsystemItemProviderAdapterFactory(org.palladiosimulator.pcm.subsystem.provider.SubsystemItemProviderAdapterFactory) StoexItemProviderAdapterFactory(de.uka.ipd.sdq.stoex.provider.StoexItemProviderAdapterFactory) EntityItemProviderAdapterFactory(org.palladiosimulator.pcm.core.entity.provider.EntityItemProviderAdapterFactory) ComposedAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) UsagemodelItemProviderAdapterFactory(org.palladiosimulator.pcm.usagemodel.provider.UsagemodelItemProviderAdapterFactory) ResourceenvironmentItemProviderAdapterFactory(org.palladiosimulator.pcm.resourceenvironment.provider.ResourceenvironmentItemProviderAdapterFactory) EventObject(java.util.EventObject) SystemItemProviderAdapterFactory(org.palladiosimulator.pcm.system.provider.SystemItemProviderAdapterFactory) IdentifierItemProviderAdapterFactory(de.uka.ipd.sdq.identifier.provider.IdentifierItemProviderAdapterFactory) ReflectiveItemProviderAdapterFactory(org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory) ProbfunctionItemProviderAdapterFactory(de.uka.ipd.sdq.probfunction.provider.ProbfunctionItemProviderAdapterFactory) Command(org.eclipse.emf.common.command.Command) UnitsItemProviderAdapterFactory(de.uka.ipd.sdq.units.provider.UnitsItemProviderAdapterFactory) QosannotationsItemProviderAdapterFactory(org.palladiosimulator.pcm.qosannotations.provider.QosannotationsItemProviderAdapterFactory) SeffPerformanceItemProviderAdapterFactory(org.palladiosimulator.pcm.seff.seff_performance.provider.SeffPerformanceItemProviderAdapterFactory) ParameterItemProviderAdapterFactory(org.palladiosimulator.pcm.parameter.provider.ParameterItemProviderAdapterFactory)

Example 4 with BasicCommandStack

use of org.eclipse.emf.common.command.BasicCommandStack in project metalib by softlang.

the class FsmlEditor method doSave.

/**
 * This is for implementing {@link IEditorPart} and simply saves the model file.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
@Override
public void doSave(IProgressMonitor progressMonitor) {
    // Save only resources that have actually changed.
    // 
    final Map<Object, Object> saveOptions = new HashMap<Object, Object>();
    saveOptions.put(Resource.OPTION_SAVE_ONLY_IF_CHANGED, Resource.OPTION_SAVE_ONLY_IF_CHANGED_MEMORY_BUFFER);
    saveOptions.put(Resource.OPTION_LINE_DELIMITER, Resource.OPTION_LINE_DELIMITER_UNSPECIFIED);
    // Do the work within an operation because this is a long running activity that modifies the workbench.
    // 
    WorkspaceModifyOperation operation = new WorkspaceModifyOperation() {

        // This is the method that gets invoked when the operation runs.
        // 
        @Override
        public void execute(IProgressMonitor monitor) {
            // Save the resources to the file system.
            // 
            boolean first = true;
            for (Resource resource : editingDomain.getResourceSet().getResources()) {
                if ((first || !resource.getContents().isEmpty() || isPersisted(resource)) && !editingDomain.isReadOnly(resource)) {
                    try {
                        long timeStamp = resource.getTimeStamp();
                        resource.save(saveOptions);
                        if (resource.getTimeStamp() != timeStamp) {
                            savedResources.add(resource);
                        }
                    } catch (Exception exception) {
                        resourceToDiagnosticMap.put(resource, analyzeResourceProblems(resource, exception));
                    }
                    first = false;
                }
            }
        }
    };
    updateProblemIndication = false;
    try {
        // This runs the options, and shows progress.
        // 
        new ProgressMonitorDialog(getSite().getShell()).run(true, false, operation);
        // Refresh the necessary state.
        // 
        ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
        firePropertyChange(IEditorPart.PROP_DIRTY);
    } catch (Exception exception) {
        // Something went wrong that shouldn't.
        // 
        FsmlEditorPlugin.INSTANCE.log(exception);
    }
    updateProblemIndication = true;
    updateProblemIndication();
}
Also used : IProgressMonitor(org.eclipse.core.runtime.IProgressMonitor) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) WorkspaceModifyOperation(org.eclipse.ui.actions.WorkspaceModifyOperation) ProgressMonitorDialog(org.eclipse.jface.dialogs.ProgressMonitorDialog) Resource(org.eclipse.emf.ecore.resource.Resource) IResource(org.eclipse.core.resources.IResource) EventObject(java.util.EventObject) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) IOException(java.io.IOException)

Example 5 with BasicCommandStack

use of org.eclipse.emf.common.command.BasicCommandStack in project InformationSystem by ObeoNetwork.

the class EcorebindingEditor method initializeEditingDomain.

/**
 * This sets up the editing domain for the model editor.
 * <!-- begin-user-doc -->
 * <!-- end-user-doc -->
 * @generated
 */
protected void initializeEditingDomain() {
    // Create an adapter factory that yields item providers.
    // 
    adapterFactory = new ComposedAdapterFactory(ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
    adapterFactory.addAdapterFactory(new ResourceItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new EcorebindingItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new EcoreItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new EnvironmentItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new TechnicalIDItemProviderAdapterFactory());
    adapterFactory.addAdapterFactory(new ReflectiveItemProviderAdapterFactory());
    // Create the command stack that will notify this editor as commands are executed.
    // 
    BasicCommandStack commandStack = new BasicCommandStack();
    // Add a listener to set the most recent command's affected objects to be the selection of the viewer with focus.
    // 
    commandStack.addCommandStackListener(new CommandStackListener() {

        public void commandStackChanged(final EventObject event) {
            getContainer().getDisplay().asyncExec(new Runnable() {

                public void run() {
                    firePropertyChange(IEditorPart.PROP_DIRTY);
                    // Try to select the affected objects.
                    // 
                    Command mostRecentCommand = ((CommandStack) event.getSource()).getMostRecentCommand();
                    if (mostRecentCommand != null) {
                        setSelectionToViewer(mostRecentCommand.getAffectedObjects());
                    }
                    for (Iterator<PropertySheetPage> i = propertySheetPages.iterator(); i.hasNext(); ) {
                        PropertySheetPage propertySheetPage = i.next();
                        if (propertySheetPage.getControl().isDisposed()) {
                            i.remove();
                        } else {
                            propertySheetPage.refresh();
                        }
                    }
                }
            });
        }
    });
    // Create the editing domain with a special command stack.
    // 
    editingDomain = new AdapterFactoryEditingDomain(adapterFactory, commandStack, new HashMap<Resource, Boolean>());
}
Also used : TechnicalIDItemProviderAdapterFactory(org.obeonetwork.dsl.technicalid.provider.TechnicalIDItemProviderAdapterFactory) AdapterFactoryEditingDomain(org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) CommandStack(org.eclipse.emf.common.command.CommandStack) EcorebindingItemProviderAdapterFactory(org.obeonetwork.dsl.ecorebinding.provider.EcorebindingItemProviderAdapterFactory) PropertySheetPage(org.eclipse.ui.views.properties.PropertySheetPage) IPropertySheetPage(org.eclipse.ui.views.properties.IPropertySheetPage) ExtendedPropertySheetPage(org.eclipse.emf.edit.ui.view.ExtendedPropertySheetPage) CommandStackListener(org.eclipse.emf.common.command.CommandStackListener) ResourceItemProviderAdapterFactory(org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory) LinkedHashMap(java.util.LinkedHashMap) HashMap(java.util.HashMap) ComposedAdapterFactory(org.eclipse.emf.edit.provider.ComposedAdapterFactory) BasicCommandStack(org.eclipse.emf.common.command.BasicCommandStack) EventObject(java.util.EventObject) EcoreItemProviderAdapterFactory(org.eclipse.emf.ecore.provider.EcoreItemProviderAdapterFactory) ReflectiveItemProviderAdapterFactory(org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory) Command(org.eclipse.emf.common.command.Command) EnvironmentItemProviderAdapterFactory(org.obeonetwork.dsl.environment.provider.EnvironmentItemProviderAdapterFactory)

Aggregations

HashMap (java.util.HashMap)61 BasicCommandStack (org.eclipse.emf.common.command.BasicCommandStack)61 EventObject (java.util.EventObject)60 LinkedHashMap (java.util.LinkedHashMap)60 IOException (java.io.IOException)31 AdapterFactoryEditingDomain (org.eclipse.emf.edit.domain.AdapterFactoryEditingDomain)31 IResource (org.eclipse.core.resources.IResource)30 CoreException (org.eclipse.core.runtime.CoreException)30 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)30 Command (org.eclipse.emf.common.command.Command)30 CommandStack (org.eclipse.emf.common.command.CommandStack)30 CommandStackListener (org.eclipse.emf.common.command.CommandStackListener)30 Resource (org.eclipse.emf.ecore.resource.Resource)30 ComposedAdapterFactory (org.eclipse.emf.edit.provider.ComposedAdapterFactory)30 ResourceItemProviderAdapterFactory (org.eclipse.emf.edit.provider.resource.ResourceItemProviderAdapterFactory)30 ProgressMonitorDialog (org.eclipse.jface.dialogs.ProgressMonitorDialog)30 PartInitException (org.eclipse.ui.PartInitException)30 WorkspaceModifyOperation (org.eclipse.ui.actions.WorkspaceModifyOperation)30 ReflectiveItemProviderAdapterFactory (org.eclipse.emf.edit.provider.ReflectiveItemProviderAdapterFactory)29 EObject (org.eclipse.emf.ecore.EObject)21