Example usage for org.eclipse.jface.dialogs ProgressMonitorDialog run

List of usage examples for org.eclipse.jface.dialogs ProgressMonitorDialog run

Introduction

In this page you can find the example usage for org.eclipse.jface.dialogs ProgressMonitorDialog run.

Prototype

@Override
public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable)
        throws InvocationTargetException, InterruptedException 

Source Link

Document

This implementation of IRunnableContext#run(boolean, boolean, IRunnableWithProgress) runs the given IRunnableWithProgress using the progress monitor for this progress dialog and blocks until the runnable has been run, regardless of the value of fork.

Usage

From source file:net.sourceforge.tagsea.resources.synchronize.ui.ProjectWaypointContentProvider.java

License:Open Source License

public Object[] getChildren(Object parentElement) {
    if (parentElement instanceof IProject) {
        final IProject project = (IProject) parentElement;
        ProgressMonitorDialog dialog = new ProgressMonitorDialog(Display.getDefault().getActiveShell());
        try {/*from   w  ww .j av a  2 s  . c  o m*/
            SynchronizeLoadRunnable synchronizer = new SynchronizeLoadRunnable(project);
            dialog.run(true, true, synchronizer);
            List<WaypointSynchronizeObject> unsorted = synchronizer.getSynchronizers();
            List<IPath> keysToRemove = new LinkedList<IPath>();
            HashSet<Object> result = new HashSet<Object>();
            for (IPath path : synchronizers.keySet()) {
                if (path.segment(0).equals(project.getName())) {
                    keysToRemove.add(path);
                }
            }
            synchronizers.keySet().removeAll(keysToRemove);
            for (WaypointSynchronizeObject synch : unsorted) {
                String resourceString = null;
                if (synch.getLocal() != null) {
                    resourceString = synch.getLocal().getResource();

                }
                if (resourceString == null && synch.getRemote() != null) {
                    resourceString = synch.getRemote().getResource();
                }
                IPath path = new Path(resourceString);
                List<WaypointSynchronizeObject> synchs = synchronizers.get(path);
                if (synchs == null) {
                    synchs = new LinkedList<WaypointSynchronizeObject>();
                    synchronizers.put(path, synchs);

                }
                if (path.equals(project.getFullPath())) {
                    if (synch.getKind() != WaypointSynchronizeObject.EQUAL)
                        result.add(synch);
                } else {
                    if (synch.getKind() != WaypointSynchronizeObject.EQUAL) {
                        result.add(path);
                        synchs.add(synch);
                    }
                }
            }
            return result.toArray();
        } catch (InvocationTargetException e) {
            ResourceWaypointPlugin.getDefault().log(e);
        } catch (InterruptedException e) {
        }
    } else if (parentElement instanceof IPath) {
        return (synchronizers.get(parentElement).toArray());
    }
    return new Object[0];
}

From source file:nexcore.tool.uml.ui.core.diagram.editor.AbstractDiagramEditor.java

License:Open Source License

/**
 * @see org.eclipse.ui.part.EditorPart#doSave(org.eclipse.core.runtime.IProgressMonitor)
 *///from   w w  w .  java  2  s.  co m
@Override
public void doSave(IProgressMonitor monitor) {

    DomainModelHandlerUtil.save(getDiagram());

    // 2012-07-11 pns
    //  ?  ? ...
    // crossreference ? ?  ? 

    Set<Resource> resourceList = new HashSet<Resource>();

    Map<EObject, Collection<Setting>> find = EcoreUtil.CrossReferencer.find(getDiagram().eContents());
    for (Iterator<?> iterator = find.keySet().iterator(); iterator.hasNext();) {
        EObject eObject = (EObject) iterator.next();
        Resource refResource = eObject.eResource();
        if (ProjectUtil.isModelFile(refResource) && getDiagram().eResource() != refResource) {
            if (refResource.isModified()) {
                resourceList.add(refResource);
            }
        }
    }

    final Set<Resource> modifiedResource = resourceList;

    Display.getDefault().syncExec(new Runnable() {

        @Override
        public void run() {
            ProgressMonitorDialog dialog = new ProgressMonitorDialog(getEditorSite().getShell());
            try {
                dialog.run(true, false, new IRunnableWithProgress() {

                    @Override
                    public void run(IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        monitor.beginTask("Save", modifiedResource.size());
                        for (Resource r : modifiedResource) {
                            monitor.worked(1);

                            try {
                                monitor.subTask(r.getURI().toString());
                                DomainModelHandlerUtil.save(r, false);
                            } catch (Exception e) {
                                ALMLogger.getLog(UiCorePlugin.PLUGIN_ID).error(e.getMessage(), e);
                            }
                        }

                        monitor.done();
                    }

                });
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
    ProjectUtil.beginRecording(recorder, getDiagram());
}

From source file:nexcore.tool.uml.ui.core.dialog.TypeSelectDialog.java

License:Open Source License

/**
 * initData// w  ww .ja va 2s.  c o  m
 *   void
 */
private void initData() {
    final ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
    Display.getDefault().syncExec(new Runnable() {

        @Override
        public void run() {
            try {
                dialog.run(true, false, new IRunnableWithProgress() {
                    @Override
                    public void run(final IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        List<Resource> resources = DomainRegistry.getUMLDomain().getResourceSet()
                                .getResources();
                        monitor.beginTask("", resources.size());
                        Set<Element> elementList = new HashSet<Element>();

                        Map<URI, Resource> uriResourceMap = ((ResourceSetImpl) DomainRegistry.getEditingDomain()
                                .getResourceSet()).getURIResourceMap();
                        Set<Resource> resourceHashSet = new HashSet<Resource>();

                        for (Iterator<URI> iterator = uriResourceMap.keySet().iterator(); iterator.hasNext();) {
                            URI uri = (URI) iterator.next();
                            Resource resource = uriResourceMap.get(uri);
                            resourceHashSet.add(resource);
                        }
                        for (Iterator<Resource> iterator = resourceHashSet.iterator(); iterator.hasNext();) {
                            monitor.worked(1);
                            Resource resource = iterator.next();

                            Model model = (Model) EcoreUtil.getObjectByType(resource.getContents(),
                                    UMLPackage.Literals.MODEL);
                            if (model != null) {
                                for (Element element : model.allOwnedElements()) {
                                    if (null == element.getOwner()) {
                                        continue;
                                    }
                                    if (type == TypeSelectDialogType.LIFELINE) {
                                        filteredLifelineListMaker(elementList, element);
                                    } else if (type == TypeSelectDialogType.PROPERTY) {
                                        filteredPropertyListMaker(elementList, element);
                                    } else if (type == TypeSelectDialogType.RETURN_TYPE) {
                                        filteredReturnTypeListMaker(elementList, element);
                                    } else if (type == TypeSelectDialogType.RAISED_EXCEPTION) {
                                        filteredRaisedExceptionListMaker(elementList, element);
                                    } else if (type == TypeSelectDialogType.DEFAULT_VALUE) {
                                        filteredDefaultValueListMaker(elementList, element);
                                    }
                                }
                            }
                        }
                        elements = elementList;
                        setElements(elementList.toArray());
                    }
                });
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }

        }
    });
}

From source file:nexcore.tool.uml.ui.core.registry.ResourceManager.java

License:Open Source License

/**
 *   //  w  w  w  .ja va 2 s .c  o m
 * 
 *   void
 */
public void closeResource() {
    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            ProjectUtil.closeAllEditor();
        }
    });

    UMLCacheManager.getInstance().shutdown();

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());

    try {
        dialog.run(true, false, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
                IProject[] projects = root.getProjects();
                cleanResource(monitor, projects, false);
            }
        });
    } catch (InvocationTargetException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } finally {
        dialog.close();
        allElementList.clear();
        ResourceSet resourceSet = DomainRegistry.getUMLDomain().getResourceSet();
        EList<Adapter> cacheAdapters = resourceSet.eAdapters();
        cacheAdapters.remove(cacheAdapter);

        Map<URI, Resource> uriResourceMap = ((ResourceSetImpl) resourceSet).getURIResourceMap();

        List<Resource> resourceList = new ArrayList<Resource>();

        for (Iterator iterator = uriResourceMap.values().iterator(); iterator.hasNext();) {
            Resource resource = (Resource) iterator.next();

            if (resource.getURI().toString().endsWith("uml")) {
                resourceList.add(resource);
            }
        }

        resourceSet.getResources().clear();

        uriResourceMap.clear();

        resourceSet.getResources().addAll(resourceList);

        cacheAdapter = null;
        System.gc();
    }

    final CommonViewer viewer = ViewerRegistry.getViewer();
    if (viewer != null && !viewer.getControl().isDisposed()) {
        Display.getDefault().asyncExec(new Runnable() {

            @Override
            public void run() {
                viewer.refresh();
            }
        });
    }

}

From source file:nexcore.tool.uml.ui.core.registry.ResourceManager.java

License:Open Source License

/**
 * initializeRunnable/*from  w w w.j  ava  2  s  .c  o  m*/
 *  
 * @param projects
 * @return RunnableWithResult<Object>
 */
private RunnableWithResult<Object> initializeRunnable(final IProject[] projects) {
    return /**
           * <ul>
           * <li>  : nexcore.tool.uml.ui.core</li>
           * <li>  : nexcore.tool.uml.ui.core.registry</li>
           * <li>   : 1</li>
           * <li>? : 2012. 7. 10.</li>
           * <li>? : nspark</li>
           * </ul>
           */
    new RunnableWithResult<Object>() {

        IStatus status = null;

        public Object getResult() {
            return status;
        }

        public IStatus getStatus() {
            return status;
        }

        public void setStatus(IStatus status) {

        }

        IProject[] projectArray;

        public IProject[] getProjects() {
            return projectArray;
        }

        public void setProjects(IProject[] projects) {
            this.projectArray = projects;
        }

        int count = 0;

        ModelUpdater modelUpdate = null;

        public void run() {
            referencedProject.clear();

            setProjects(projects);
            executeProgressDialog();

            // ?  ? ? ? clear
            RESOURCE_MEMENTO.clear();

            status = Status.OK_STATUS;
        }

        private void executeProgressDialog() {
            // prompt ? ?   ?    ? .
            boolean persistableResource = false;

            // RESOURCE_MEMENTO ? ?? ?  ??      .
            if (!RESOURCE_MEMENTO.isEmpty()) {
                persistableResource = promptToPersistableResource();
            }

            //  ?  RESOURCE_MEMENTO? clear     ? ? .
            if (!persistableResource) {
                RESOURCE_MEMENTO.clear();
            }

            ProgressMonitorDialog dialog = null;
            try {
                Shell shell = getShell();
                count = 0;
                modelCount(getProjects());

                dialog = new ProgressMonitorDialog(shell);
                dialog.setOpenOnRun(true);
                dialog.run(true, false, new IRunnableWithProgress() {

                    private List<String> uriList = new ArrayList<String>();

                    private void worked(IProgressMonitor monitor, String uri) {
                        try {
                            if (!uriList.contains(uri)) {
                                monitor.worked(1);
                                uriList.add(uri);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }

                    public void run(final IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        monitor.beginTask(UMLMessage.LABEL_LOAD_RESOURCE, count);

                        Display.getDefault().syncExec(new Runnable() {

                            @Override
                            public void run() {
                                for (IProject project : getProjects()) {
                                    if (!ProjectUtil.isActiveUMLProject(project)) {
                                        continue;
                                    }
                                    try {
                                        IMarker[] findMarkers = project.findMarkers(IMarker.PROBLEM, true,
                                                IResource.DEPTH_ONE);
                                        if (findMarkers != null) {
                                            for (IMarker marker : findMarkers) {
                                                marker.delete();
                                            }
                                        }
                                        //                                            project.deleteMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ONE);
                                    } catch (CoreException e) {
                                        e.printStackTrace();
                                    }
                                }
                            }
                        });
                        resourceManager.addResourceLoadedAdapter();

                        // ? 
                        PrecedingInitializerRegistry.getInstance().executeInitializer();
                        // ///////////////////////////////////////////////////////
                        // ??? 
                        // ///////////////////////////////////////////////////////
                        String UML_MODEL_UPDATE = "UML_MODEL_UPDATE_%s_%s";

                        for (IProject project : getProjects()) {
                            if (!ProjectUtil.isActiveUMLProject(project)) {
                                continue;
                            }

                            monitor.setTaskName(String.format("%s : %s", project.getName(),
                                    UMLMessage.LABEL_MODEL_VERSION_CHECK));

                            String key = String.format(UML_MODEL_UPDATE, project.getName(),
                                    DateUtil.getCurrentDate());

                            //  ??  ???   ?.
                            String model_update = System.getProperty("model.update");

                            if (model_update != null && Boolean.parseBoolean(model_update)) {
                                if (modelUpdate == null) {
                                    modelUpdate = new ModelUpdater();
                                }

                                try {
                                    UiCorePlugin.getDefault().getPreferenceStore().setValue(key, true);
                                    modelUpdate.modelUpdate(project, monitor);
                                    monitor.subTask("");
                                } catch (Exception e) {
                                    e.printStackTrace();
                                } finally {
                                    if (modelUpdate != null) {
                                        modelUpdate.dispose();
                                    }

                                    modelUpdate = null;
                                    UiCorePlugin.getDefault().getPreferenceStore().needsSaving();
                                }
                            }
                        }

                        initUMLPrimitiveTypes();
                        initJavaPrimitiveTypes();
                        initXMLPrimitiveTypes();

                        UMLCacheAdapter crossReferenceAdapter = new UMLCacheAdapter();

                        crossReferenceAdapter.setMonitor(monitor);
                        crossReferenceAdapter.setUriList(uriList);

                        EList<Adapter> cacheAdapter = DomainRegistry.getUMLDomain().getResourceSet()
                                .eAdapters();
                        if (!cacheAdapter.contains(crossReferenceAdapter)) {
                            cacheAdapter.add(crossReferenceAdapter);
                        }

                        long s = System.currentTimeMillis();
                        // ///////////////////////////////////////////////////////
                        for (IProject project : getProjects()) {
                            try {
                                if (!ProjectUtil.isActiveUMLProject(project)) {
                                    continue;
                                }

                                monitor.setTaskName(String.format("%s : %s", project.getName(),
                                        UMLMessage.LABEL_LOAD_RESOURCE));

                                for (IResource resource : project.members()) {
                                    loadUMXResource(resource, monitor, count);
                                }
                                monitor.subTask("");
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }

                        if (UMLDebug.DEBUG) {
                            System.err.println("---------------" + (System.currentTimeMillis() - s));
                        }
                        monitor.subTask("");

                        monitor.done();

                        cacheAdapter.remove(crossReferenceAdapter);
                    }

                    //                        private void loadUMFResource(IResource resource, IProgressMonitor monitor, int total) {
                    //                            try {
                    //                                if (resource instanceof IFolder) {
                    //                                    for (IResource member : ((IFolder) resource).members()) {
                    //                                        loadUMFResource(member, monitor, total);
                    //                                    }
                    //                                } else if (resource instanceof IFile) {
                    //                                    try {
                    //                                        if (ProjectUtil.isFragmentFile((IFile) resource)) {
                    //                                            monitor.worked(1);
                    //                                            String subTask = String.format(" %s", ((IFile) resource).getFullPath()
                    //                                                .toString());
                    //                                            monitor.subTask(subTask);
                    //
                    //                                            URI uri = URI.createURI(((IFile) resource).getFullPath().toString());
                    //                                            Resource res = DomainRegistry.getUMLDomain()
                    //                                                .getResourceSet()
                    //                                                .getResource(uri, true);
                    //                                            res.setTrackingModification(true);
                    //                                            
                    //                                            ((ResourceImpl)res).setIntrinsicIDToEObjectMap(new HashMap<String, EObject>());
                    //                                            //  ? ? ? ? UML ?
                    //                                            //  ?   ?
                    //                                            // ? ?? .
                    //                                            EObject eObject;
                    //                                            if (!res.getContents().isEmpty()) {
                    ////                                                EcoreUtil.UnresolvedProxyCrossReferencer.find(res);
                    //                                            }
                    //                                        }
                    //                                    } catch (Exception e) {
                    //                                        // ignore
                    //                                    }
                    //                                }
                    //                            } catch (CoreException e) {
                    //                                e.printStackTrace();
                    //                            }
                    //                        }

                    /**
                     * 
                     * @param resource
                     * @param monitor
                     * @param total
                     *            void
                     */
                    private synchronized void loadUMXResource(IResource resource, IProgressMonitor monitor,
                            int total) {
                        try {
                            if (resource instanceof IFolder) {
                                for (IResource member : ((IFolder) resource).members()) {
                                    loadUMXResource(member, monitor, total);
                                }
                            } else if (resource instanceof IFile) {
                                try {
                                    if (DomainUtil.isUMXFile((IFile) resource)) {
                                        if (monitor != null) {
                                            String path = ((IFile) resource).getFullPath().toString();
                                            worked(monitor, path);
                                            String subTask = String.format("Loading : %s", path);
                                            monitor.subTask(subTask);
                                        }
                                        URI uri = URI.createURI(((IFile) resource).getFullPath().toString());

                                        boolean active = isActive(uri);
                                        if (!active) {
                                            return;
                                        }

                                        Resource res = DomainRegistry.getUMLDomain().getResource(uri, true);

                                        // ? ?    does not exist. ?  .
                                        // ? ?? ?  ??  ?   ?  ? unload   load .
                                        // ? ?  ?  ??.
                                        if (res != null && (!res.getErrors().isEmpty()
                                                || !res.getWarnings().isEmpty())) {
                                            res.unload();
                                            res = DomainRegistry.getUMLDomain().getResourceSet()
                                                    .getResource(uri, true);
                                        }

                                        if (!res.getContents().isEmpty()) {
                                            if (!res.isTrackingModification()) {
                                                res.setTrackingModification(true);
                                            }
                                            final Resource umlResource = res;

                                            DomainUtil.run(new TransactionalAction() {
                                                /**
                                                 * @see nexcore.tool.uml.manager.transaction.TransactionalAction#doExecute()
                                                 */
                                                @Override
                                                public void doExecute() {
                                                    EcoreUtil.resolveAll(umlResource);
                                                }
                                            });
                                        }
                                    }
                                } catch (Exception e) {
                                    // ignore
                                    e.printStackTrace();
                                }
                            }
                        } catch (CoreException e) {
                            e.printStackTrace();
                        }
                    }

                    /**
                     * 
                     * void
                     */
                    private void initJavaPrimitiveTypes() {
                        URI uri = URI.createURI(UMLResource.JAVA_PRIMITIVE_TYPES_LIBRARY_URI);
                        Resource resource = DomainRegistry.getUMLDomain().getResource(uri, true);
                        if (resource != null) {
                            addElement(resource);
                        }
                    }

                    /**
                     * 
                     * void
                     */
                    private void initUMLPrimitiveTypes() {
                        URI uri = URI.createURI(UMLResource.UML_PRIMITIVE_TYPES_LIBRARY_URI);
                        Resource resource = DomainRegistry.getUMLDomain().getResource(uri, true);
                        if (resource != null) {
                            addElement(resource);
                        }
                    }

                    /**
                     * 
                     * void
                     */
                    private void initXMLPrimitiveTypes() {
                        URI uri = URI.createURI(UMLResource.XML_PRIMITIVE_TYPES_LIBRARY_URI);
                        Resource resource = DomainRegistry.getUMLDomain().getResource(uri, true);
                        if (resource != null) {
                            addElement(resource);
                        }
                    }
                });

            } catch (InvocationTargetException e1) {
                e1.printStackTrace();
            } catch (InterruptedException e1) {
                e1.printStackTrace();
            } finally {
                dialog.close();
                System.gc();

                if (referencedProject.size() > 0) {
                    boolean openQuestion = promptToOpenWithReferences();
                    if (!openQuestion) {
                        referencedProject.clear();
                        return;
                    }

                    setProjects(referencedProject.keySet().toArray(new IProject[] {}));

                    openProject(referencedProject.keySet().toArray(new IProject[] {}));

                    resourceManager.removeResourceLoadedAdapter();
                }
            }
        }

        private int modelCount(IProject[] projects) {
            for (IProject project : projects) {
                if (!ProjectUtil.isActiveUMLProject(project)) {
                    continue;
                }

                try {
                    for (IResource r : project.members()) {
                        count(r);
                    }
                } catch (CoreException e) {
                    e.printStackTrace();
                }
            }

            return count;
        }

        /**
         * promptToOpenWithReferences
         *  
         * @return boolean
         */
        private boolean promptToOpenWithReferences() {
            IPreferenceStore store = UiCorePlugin.getDefault().getPreferenceStore();
            String key = "OPEN_REQUIRED_PROJECTS";
            String value = store.getString(key);
            if (MessageDialogWithToggle.ALWAYS.equals(value)) {
                return true;
            }
            if (MessageDialogWithToggle.NEVER.equals(value)) {
                return false;
            }

            String message = UMLMessage.MESSAGE_REFERENCED_PROJECTS;//"? ? .";

            MessageDialogWithToggle dialog = MessageDialogWithToggle.openInformation(getShell(), "Information",
                    message, null, false, store, key);//MessageDialogWithToggle.openYesNoCancelQuestion(getShell(), "Question", message, null, false, store, key);
            int result = dialog.getReturnCode();
            // the result is equal to SWT.DEFAULT if the user uses the 'esc' key to close the dialog
            return dialog.getReturnCode() == IDialogConstants.OK_ID || result == SWT.DEFAULT;
        }

        /**
         * promptToPersistableResource
         *  
         * @return boolean
         */
        private boolean promptToPersistableResource() {

            return true;
        }

        private void count(IResource resource) {
            if (resource instanceof IFolder) {
                try {
                    for (IResource member : ((IFolder) resource).members()) {
                        count(member);
                    }
                } catch (CoreException e) {

                }
            } else if (resource instanceof IFile) {
                if (ProjectUtil.isModelFile((IFile) resource)) {
                    count++;

                    URI uri = URI.createURI(resource.getFullPath().toString());

                    IProject project = resource.getProject();
                    List<String> list = RESOURCE_MEMENTO.get(project.getName());
                    if (list != null && list.contains(uri.toString())) {
                        ResourceManager.getInstance().setActivation(uri, true);
                    } else {
                        ResourceManager.getInstance().setActivation(uri, false);
                    }
                }
            }
        }
    };
}

From source file:nexcore.tool.uml.ui.project.editor.ModelMultiPageEditor.java

License:Open Source License

/**
 * @see nexcore.tool.uml.ui.core.editor.AbstractMultiPageFormEditor#doSave(org.eclipse.core.runtime.IProgressMonitor)
 *///from   w ww . ja  va  2  s.  c  om
@SuppressWarnings("restriction")
@Override
public void doSave(IProgressMonitor monitor) {
    //        commitFormPages();
    final IDomainModelHandler umlDomain = DomainRegistry.getUMLDomain();
    if (umlDomain == null) {
        Log.error("IDomainModelHandler is null.");
        return;
    }

    if (model.eResource() == null) {
        URI uri = EcoreUtil.getURI(model);
        model = (Model) DomainRegistry.getUMLDomain().getResourceSet().getEObject(uri, true);
    }

    Set<Resource> resourceList = new HashSet<Resource>();
    resourceList.add(model.eResource());

    TreeMap<String, Package> fragmentedPackageList = ProjectUtil.getFragmentedPackageList(model);
    for (Iterator<Package> iterator = fragmentedPackageList.values().iterator(); iterator.hasNext();) {
        Package fragmentedPackage = (Package) iterator.next();
        if (fragmentedPackage.eResource().isModified()) {
            resourceList.add(fragmentedPackage.eResource());
        }
    }

    final Set<Resource> modifiedResource = resourceList;

    Display.getDefault().syncExec(new Runnable() {

        @Override
        public void run() {
            ProgressMonitorDialog dialog = new ProgressMonitorDialog(getEditorSite().getShell());
            try {
                dialog.run(true, false, new IRunnableWithProgress() {

                    @Override
                    public void run(IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        monitor.beginTask("Save", modifiedResource.size());
                        for (Resource r : modifiedResource) {
                            monitor.worked(1);

                            try {
                                monitor.subTask(r.getURI().toString());
                                DomainModelHandlerUtil.save(r, false);
                            } catch (Exception e) {
                                ALMLogger.getLog(UiCorePlugin.PLUGIN_ID).error(e.getMessage(), e);
                            }
                        }

                        monitor.done();
                    }

                });
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });

    editorDirtyStateChanged();

    ProjectUtil.beginRecording(recorder, model);

    SaveablesList modelManager = null;
    modelManager = (SaveablesList) getSite().getWorkbenchWindow().getService(ISaveablesLifecycleListener.class);

    Saveable[] openModels = modelManager.getOpenModels();

    for (Saveable saveable : openModels) {
        if (saveable instanceof ExplorerSaveable) {
            ExplorerSaveable explorerSaveable = (ExplorerSaveable) saveable;
            explorerSaveable.dirtyStateChanged();
        }
    }
}

From source file:nexcore.tool.uml.ui.project.explorer.action.AbstractUMLExplorerExtendedAction.java

License:Open Source License

/**
 * @see org.eclipse.jface.action.Action#run()
 *//*from  w  w w  .  j a v  a2 s. co m*/
@Override
public void run() {
    //   ? ?
    ProgressMonitorDialog dialog = new ProgressMonitorDialog(parentShell);

    //    ?
    workspaceModifyOperation = new UMLWorkspaceModifyOperation();

    try {
        //   ? 
        dialog.run(false, true, workspaceModifyOperation);
    } catch (InvocationTargetException ite) {
        ite.printStackTrace();
    } catch (InterruptedException ie) {
        ie.printStackTrace();
    }
}

From source file:nexcore.tool.uml.ui.project.explorer.action.CreateFragmentAllSubPackageAction.java

License:Open Source License

public synchronized void doSave(IProgressMonitor monitor) throws CoreException {
    ResourceSetImpl resourceSet = (ResourceSetImpl) DomainRegistry.getUMLDomain().getResourceSet();
    Map<URI, Resource> uriResourceMap = resourceSet.getURIResourceMap();

    Set<Resource> resourceList = new HashSet<Resource>();

    for (Iterator<?> iterator = uriResourceMap.values().iterator(); iterator.hasNext();) {
        Resource resource = (Resource) iterator.next();

        if (ProjectUtil.isModelFile(resource)) {
            if (resource.isModified()) {
                resourceList.add(resource);
            }/*from  w w  w . ja  v  a  2s  .  c  o m*/
        }
    }

    final Set<Resource> modifiedResource = resourceList;

    Display.getDefault().syncExec(new Runnable() {

        @Override
        public void run() {
            ProgressMonitorDialog dialog = new ProgressMonitorDialog(targetPart.getSite().getShell());
            try {
                dialog.run(true, false, new IRunnableWithProgress() {

                    @Override
                    public void run(IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        monitor.beginTask("Save", modifiedResource.size());
                        for (Resource r : modifiedResource) {
                            monitor.worked(1);

                            try {
                                monitor.subTask(r.getURI().toString());
                                DomainModelHandlerUtil.save(r, false);
                            } catch (Exception e) {
                                ALMLogger.getLog(ProjectExplorerPlugin.PLUGIN_ID).error(e.getMessage(), e);
                            }
                        }

                        monitor.done();
                    }

                });
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
}

From source file:org.amanzi.awe.statistics.ui.widgets.TemplateComboWidget.java

License:Open Source License

@Override
protected Collection<ITemplate> getItems() {
    if (statisticsManager != null) {
        final ProgressMonitorDialog monitor = new ProgressMonitorDialog(getControl().getShell());

        try {/*from   w  w  w  .j a  va  2  s .c om*/
            monitor.run(false, false, new IRunnableWithProgress() {

                @Override
                public void run(final IProgressMonitor monitor)
                        throws InvocationTargetException, InterruptedException {
                    statisticsManager.getAvailableTemplates(monitor);
                }
            });
        } catch (final InterruptedException e) {

        } catch (final InvocationTargetException e) {

        }
        return statisticsManager.getAvailableTemplates(null);
    }

    return null;
}

From source file:org.antlr.eclipse.ui.actions.CompileAction.java

License:Open Source License

/**
 * @see IActionDelegate#run(IAction)//from  ww  w .j  a  v a2  s  . c om
 */
@Override
public void run(final IAction anAction) {
    Assert.isNotNull(fGrammarFile);
    Shell shell = AntlrUIPlugin.getActiveWorkbenchShell();
    ProgressMonitorDialog pmd = new ProgressMonitorDialog(shell);
    try {
        pmd.run(true, false, new Operation(fGrammarFile)); // cancel button disabled
    } catch (InterruptedException e) {
        AntlrUIPlugin.log(e);
    } catch (InvocationTargetException e) {
        AntlrUIPlugin.log(e);
    }
}