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

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

Introduction

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

Prototype

public int getReturnCode() 

Source Link

Document

Returns this window's return code.

Usage

From source file:au.gov.ga.earthsci.layer.FileLoader.java

License:Apache License

protected static Document importDataFromFile(Shell parent, final File file, final FileStore fileStore)
        throws Exception {
    // Create a DataStoreProducer which is capable of processing the file.
    final DataStoreProducer producer = createDataStoreProducerFromFile(file);
    if (producer == null) {
        throw new IllegalArgumentException("Unrecognized file type");
    }// w ww  . j a va 2s. c o m

    final AtomicInteger progress = new AtomicInteger(0);
    PropertyChangeListener progressListener = new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getPropertyName().equals(AVKey.PROGRESS)) {
                progress.set((int) (100 * (Double) evt.getNewValue()));
            }
        }
    };
    producer.addPropertyChangeListener(progressListener);

    final AtomicBoolean close = new AtomicBoolean(false);
    final ProgressMonitorDialog dialog = new ProgressMonitorDialog(parent);
    Display.getDefault().asyncExec(new Runnable() {
        @Override
        public void run() {
            try {
                dialog.run(true, true, new IRunnableWithProgress() {
                    @Override
                    public void run(IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        monitor.beginTask("Importing " + file.getName(), 100);
                        while (true) {
                            if (close.get()) {
                                break;
                            }
                            if (monitor.isCanceled()) {
                                producer.stopProduction();
                                break;
                            }

                            int monitorProgress = 0;
                            int currentProgress = progress.get();
                            int diff = currentProgress - monitorProgress;
                            if (diff > 0) {
                                monitor.worked(diff);
                            }
                            Thread.sleep(100);
                        }
                    }
                });
            } catch (InvocationTargetException e) {
            } catch (InterruptedException e) {
                producer.stopProduction();
            }
        }
    });

    Document doc = null;
    try {
        // Import the file into the specified FileStore.
        doc = createDataStoreFromFile(file, fileStore, producer);

        // The user clicked the ProgressMonitor's "Cancel" button. Revert any change made during production, and
        // discard the returned DataConfiguration reference.
        if (dialog.getReturnCode() == Dialog.CANCEL) {
            doc = null;
            producer.removeProductionState();
        }
    } finally {
        // Remove the progress event listener from the DataStoreProducer. stop the progress timer, and signify to the
        // ProgressMonitor that we're done.
        close.set(true);
        producer.removePropertyChangeListener(progressListener);
    }

    return doc;
}

From source file:com.jasperassistant.designer.viewer.actions.AbstractExportAction.java

License:Open Source License

/**
 * Subclasses can override this method to implement an export method.
 * Default implementation opens a progress monitor dialog and then calls the
 * {@link #exportWithProgress(File, JRExportProgressMonitor)}method.
 * /*from   w w  w.  j  a va2s  . c  o  m*/
 * @param file
 *            the destination file
 * @throws Throwable
 *             if an error occurs during the export
 * @see #exportWithProgress(File, JRExportProgressMonitor)
 */
protected void export(final File file) throws Throwable {
    ProgressMonitorDialog pm = new ProgressMonitorDialog(Display.getCurrent().getActiveShell());

    try {
        pm.run(true, true, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                try {
                    int totalPages = getReportViewer().getDocument().getPages().size();
                    monitor.beginTask(Messages.getString("AbstractExportAction.taskLabel"), totalPages); //$NON-NLS-1$
                    exportWithProgress(file, new ProgressMonitorAdapter(monitor, totalPages));
                } catch (Throwable e) {
                    throw new InvocationTargetException(e);
                } finally {
                    monitor.done();
                }
            }
        });
    } catch (InvocationTargetException e) {
        if (pm.getReturnCode() != ProgressMonitorDialog.CANCEL) {
            throw e;
        }
    } catch (InterruptedException e) {
        if (pm.getReturnCode() != ProgressMonitorDialog.CANCEL) {
            throw e;
        }
    } finally {
        if (pm.getReturnCode() == ProgressMonitorDialog.CANCEL) {
            file.delete();
        }
    }
}

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

License:Open Source License

/**
 * initializeRunnable// ww w  . j  a  v  a2  s  . c om
 *  
 * @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:org.fusesource.ide.sap.ui.dialog.TestServerDialog.java

License:Open Source License

private boolean createJCoServer() {
    IRunnableWithProgress runnableWithProgress = new IRunnableWithProgress() {

        private int worked;

        @Override//from  ww w.java  2s  . co m
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
            monitor.beginTask(Messages.TestServerDialog_CreatingJCoServer, 100);
            try {
                CreateJCoServerJob job = new CreateJCoServerJob();
                job.schedule();
                while (!monitor.isCanceled()) {
                    try {
                        if (job.join(1000, monitor)) {
                            return;
                        }
                        worked += 10;
                        if (worked > 100) {
                            monitor.beginTask(Messages.TestServerDialog_CreatingJCoServer, 100);
                            worked = 0;
                        } else {
                            monitor.worked(10);
                        }
                    } catch (OperationCanceledException e) {
                        job.cancel();
                        return;
                    }
                }
            } finally {
                monitor.done();
            }
        }

    };
    ProgressMonitorDialog dialog = new ProgressMonitorDialog(getShell());
    try {
        dialog.run(true, true, runnableWithProgress);
        if (dialog.getReturnCode() == Window.CANCEL) {
            return false;
        }
    } catch (Exception e) {
        append2Console(NLS.bind(Messages.TestServerDialog_FailedToCreateServer, e.getMessage()));
        e.printStackTrace();
        return false;
    }
    return true;
}

From source file:org.wso2.developerstudio.eclipse.carbonserver.base.manager.CarbonServerManager.java

License:Open Source License

public static boolean waitForServerToChangeState(IServer server, Shell shell, int changeStateFrom,
        int changeStateTo, String msg) {
    ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog(shell);
    CarbonServerStateChange serverStateChange = new CarbonServerStateChange(server, changeStateFrom,
            changeStateTo, 180000, msg);
    progressMonitorDialog.setBlockOnOpen(false);
    try {//from w  w w.  ja  v  a 2 s .  co m
        progressMonitorDialog.run(true, true, serverStateChange);
        return progressMonitorDialog.getReturnCode() != ProgressMonitorDialog.CANCEL;
    } catch (InvocationTargetException e) {
        log.error(e);
    } catch (InterruptedException e) {
        log.error(e);
    }
    return false;
}