List of usage examples for org.eclipse.jface.dialogs ProgressMonitorDialog run
@Override public void run(boolean fork, boolean cancelable, IRunnableWithProgress runnable) throws InvocationTargetException, InterruptedException
IRunnableWithProgress
using the progress monitor for this progress dialog and blocks until the runnable has been run, regardless of the value of fork
. 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); } }