List of usage examples for org.eclipse.jface.dialogs ProgressMonitorDialog getReturnCode
public int getReturnCode()
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; }