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

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

Introduction

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

Prototype

@Override
    public int open() 

Source Link

Usage

From source file:net.sf.fjep.fatjar.popup.actions.BuildFatJar.java

License:Open Source License

public void runBuildConfiguredFatJar(IJavaProject jproject, Properties props, Set excludes,
        ArrayList includes) {//from   ww w  .j  a  v  a2 s  .  c o  m

    // Create a progress bar
    Shell shell = new Shell();
    ProgressMonitorDialog progressmonitordialog = new ProgressMonitorDialog(shell);
    progressmonitordialog.open();
    IProgressMonitor iprogressmonitor = progressmonitordialog.getProgressMonitor();
    iprogressmonitor.beginTask("Build Fat jar",
            PROGRESS_CLEAN + PROGRESS_COLLECT + PROGRESS_PACK + PROGRESS_CLEAN);

    // Make One-JAR?
    boolean onejar = new Boolean(props.getProperty(AguiPlugin.ONEJAR_CHECKBOX)).booleanValue();
    String expand = props.getProperty(AguiPlugin.ONEJAR_EXPAND);

    String jarfile = null;
    try {
        saveConfig(jproject, props);

        doCleanFatJar(jproject, iprogressmonitor);
        doCollectFatJar(jproject, iprogressmonitor, excludes, includes, onejar, expand);
        jarfile = doPackFatJar(jproject, iprogressmonitor);
        doCleanFatJar(jproject, iprogressmonitor);
        try {
            jproject.getProject().refreshLocal(IResource.DEPTH_ONE, null);
        } catch (CoreException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
        MessageDialog.openInformation(shell, "Fat Jar Plug-In ERROR", e.getMessage());
    }

    progressmonitordialog.close();
    MessageDialog.openInformation(shell, "Fat Jar Plug-In", "built " + jarfile);
}

From source file:net.sf.fjep.fatjar.popup.actions.BuildFatJar.java

License:Open Source License

public void doQuickBuildFatJar(IJavaProject jproject) {
    Properties props = getFatJarProperties(jproject);
    Set excludes = getExcludes(jproject, props.getProperty("excludes"));
    ArrayList includes = getIncludes(jproject, props.getProperty("includes"));

    // Create a progress bar
    Shell shell = new Shell();
    ProgressMonitorDialog progressmonitordialog = new ProgressMonitorDialog(shell);
    progressmonitordialog.open();
    IProgressMonitor iprogressmonitor = progressmonitordialog.getProgressMonitor();
    iprogressmonitor.beginTask("Quick Build Fat jar",
            PROGRESS_CLEAN + PROGRESS_COLLECT + PROGRESS_PACK + PROGRESS_CLEAN);

    // Make One-JAR?
    boolean onejar = new Boolean(props.getProperty(AguiPlugin.ONEJAR_CHECKBOX)).booleanValue();
    String expand = props.getProperty(AguiPlugin.ONEJAR_EXPAND);

    String jarfile = null;//  w  w  w .  jav  a2 s  .c o m
    try {
        // saveConfig(jproject, props);

        doCleanFatJar(jproject, iprogressmonitor);
        doCollectFatJar(jproject, iprogressmonitor, excludes, includes, onejar, expand);
        jarfile = doPackFatJar(jproject, iprogressmonitor);
        doCleanFatJar(jproject, iprogressmonitor);
        try {
            jproject.getProject().refreshLocal(IResource.DEPTH_ONE, null);
        } catch (CoreException e) {
            e.printStackTrace();
        }
    } catch (Exception e) {
        e.printStackTrace();
        MessageDialog.openInformation(shell, "Fat Jar Plug-In ERROR", e.getMessage());
    }

    progressmonitordialog.close();
    MessageDialog.openInformation(shell, "Fat Jar Plug-In", "built " + jarfile);
    // testExtensionPoints(jarfile);

}

From source file:net.sf.fjep.fatjar.wizards.export.BuildFJ.java

License:Open Source License

public static void buildConfiguredFatJar(JProjectConfiguration jproject, BuildProperties props,
        SourceInfo[] sourceInfo) {/*from w w w.  j  a v a2  s  . c o m*/

    // Create a progress bar
    Shell shell = new Shell();
    ProgressMonitorDialog progressmonitordialog = new ProgressMonitorDialog(shell);
    progressmonitordialog.open();
    IProgressMonitor iprogressmonitor = progressmonitordialog.getProgressMonitor();
    iprogressmonitor.beginTask("Build Fat jar",
            PROGRESS_CLEAN + PROGRESS_COLLECT + PROGRESS_PACK + PROGRESS_CLEAN);

    // Make One-JAR?
    boolean onejar = props.isUseOneJar();
    String expand = props.getOnejarExpand();

    String jarfile = null;
    try {
        props.save();

        jarfile = buildFatJar(jproject, props, sourceInfo);

        try {
            jproject.getProject().refreshLocal(IResource.DEPTH_ONE, null);
        } catch (CoreException e) {
            e.printStackTrace();
        }
        JProjectConfiguration.removeTempFatjarConfigs();
    } catch (Exception e) {
        e.printStackTrace();
        MessageDialog.openInformation(shell, "Fat Jar Plug-In ERROR", e.getMessage());
    }

    progressmonitordialog.close();
    MessageDialog.openInformation(shell, "Fat Jar Plug-In", "built " + jarfile);

}

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

License:Open Source License

/**
 * @see nexcore.tool.uml.ui.project.explorer.action.CommonActionDelegate#run(org.eclipse.jface.action.IAction)
 *//* w  w  w.  j av  a 2s  . c  om*/
@Override
public void run(IAction action) {

    if (!(selectedEObject instanceof Namespace)) {
        return;
    }

    Namespace selectedElement = (Namespace) selectedEObject;
    if (!MessageDialog.openConfirm(UiCorePlugin.getShell(),
            UMLMessage.getMessage(UMLMessage.LABEL_DELETE_UNUSED_ELEMENT), UMLMessage.getMessage(
                    UMLMessage.MESSAGE_DELETE_UNUSED_ELEMENT, selectedElement.getQualifiedName()))) {
        return;
    }

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(targetPart.getSite().getShell());
    dialog.create();
    dialog.getProgressMonitor().beginTask(UMLMessage.LABEL_DELETE_UNUSED_ELEMENT, IProgressMonitor.UNKNOWN);
    dialog.open();

    /*********   . *********/
    EList<Lifeline> lifelineList = null; // ????? .
    EList<Message> messageList = null; // ? .
    EList<AbstractConnection> connectionList = null; // ??   .
    EList<AbstractNode> nodeList = null; // ??   .

    // ??  ? ???? .
    List<Lifeline> lifelineNodeList = new ArrayList<Lifeline>();
    // ??  ?  .
    List<Message> messageConnectionList = new ArrayList<Message>();

    // EObject  ?  ..
    List<Element> deleteList = new ArrayList<Element>(); //  ? ?.

    //        List<Diagram> sequencediagramList = ModelManager.getAllDiagramList(selectedElement,
    //            DiagramType.SEQUENCE_DIAGRAM);
    //        for (Diagram diagram : sequencediagramList) {
    //            if (diagram.getParent() instanceof Interaction) {
    //                Interaction interaction = (Interaction) diagram.getParent();
    //
    //                /*********  MessageOccurenceSpecification, BehaviorExecutionSpecification ?. *********/
    //                // ???? ? ? MessageOccurenceSpecification BehaviorExecutionSpecification, Event.
    //                EList<InteractionFragment> fragments = interaction.getFragments();
    //                for (InteractionFragment interactionFragment : fragments) {
    //                    if (interactionFragment instanceof MessageOccurrenceSpecification) {
    //                        MessageOccurrenceSpecification mos = (MessageOccurrenceSpecification) interactionFragment;
    //                        if (null == mos.getMessage()) {
    //                            deleteList.add(interactionFragment);
    //                            if (null != mos.getEvent()) {
    //                                deleteList.add(mos.getEvent());
    //                            }
    //                        }
    //                    } else if (interactionFragment instanceof BehaviorExecutionSpecification) {
    //                        BehaviorExecutionSpecification bes = (BehaviorExecutionSpecification) interactionFragment;
    //                        if (null == bes.getStart() || null == bes.getFinish()) {
    //                            deleteList.add(interactionFragment);
    //                        }
    //                    }
    //                }
    //                
    //                /*********  ???? ?. *********/
    //                // ??  ????  ?.
    //                nodeList = diagram.getNodeList();
    //                lifelineNodeList = new ArrayList<Lifeline>();
    //                for (AbstractNode abstractNode : nodeList) {
    //                    Element element = abstractNode.getUmlModel();
    //                    if (element instanceof Lifeline) {
    //                        lifelineNodeList.add((Lifeline) element);
    //                    }
    //                }
    //
    //                // ????? ??    ?.
    //                lifelineList = interaction.getLifelines();
    //                for (Lifeline lifeline : lifelineList) {
    //                    if (!lifelineNodeList.contains(lifeline)) {
    //                        deleteList.add(lifeline);
    //                    }
    //                }
    //
    //                /*********   ?. *********/
    //                // ??    ?
    //                connectionList = diagram.getConnectionList();
    //                messageConnectionList = new ArrayList<Message>();
    //                for (AbstractConnection abstractConnection : connectionList) {
    //                    Element element = abstractConnection.getUmlModel();
    //                    if (element instanceof Message) {
    //                        messageConnectionList.add((Message) element);
    //                    }
    //                }
    //
    //                //  ??    ?.
    //                messageList = interaction.getMessages();
    //                for (Message message : messageList) {
    //                    if (!messageConnectionList.contains(message)) {
    //                        deleteList.add(message);
    //                    }
    //                }
    //            }
    //        }

    /*********   . *********/
    // TODO deleteList      .
    Command deleteCommand;
    CompoundCommand deleteCommandList = new CompoundCommand();
    List<IMarker> deleteMarkerList = new ArrayList<IMarker>();
    // deleteCommandList.add(diagramDelete);
    for (EObject eobject : deleteList) {
        // UMLManager.clearStereotype((Element) eobject);
        // EcoreUtil.remove(eobject);
        NamedElement obj = (NamedElement) eobject;

        deleteCommand = DeleteUMLElementCommandFactory.getCommand(obj);
        if (null == deleteCommand) {
            continue;
        } else {
            deleteCommandList.add(deleteCommand);
            ProjectRegistry.UMLTreeNodeRegistry.removeTreeNode(obj);

            //  
            IPath path = new Path(obj.eResource().getURI().toFileString());
            IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
            try {
                IMarker[] markers = file.findMarkers(UICoreConstant.VALIDATION_MARKER_TYPE, true,
                        IResource.DEPTH_INFINITE);
                for (IMarker marker : markers) {
                    String location = (String) marker.getAttribute(IMarker.LOCATION);
                    if (obj.getQualifiedName().equals(location) && !deleteMarkerList.contains(marker)) {
                        deleteMarkerList.add(marker);
                    }
                }

            } catch (CoreException e) {
            }

        }
    }
    if (0 != deleteCommandList.getCommands().size()) {
        for (int i = 0; i < deleteMarkerList.size(); i++) {
            try {
                if (deleteMarkerList.get(i).exists()) {
                    deleteMarkerList.get(i).delete();
                }
            } catch (CoreException e) {
                Log.error(e);
            }
        }
        ((UMLDiagramCommandStack) DomainRegistry.getUMLDomain().getCommandStackListener())
                .execute(deleteCommandList);
        // deleteResource();
    }
    dialog.getProgressMonitor().done();
    dialog.close();

    MessageDialog.openInformation(ProjectExplorerPlugin.getShell(),
            UMLMessage.LABEL_DELETE_UNUSED_ELEMENT_COMPLETED,
            UMLMessage.getMessage(UMLMessage.MESSAGE_DELETE_UNUSED_ELEMENT_COMPLETED,
                    String.valueOf(deleteCommandList.size())));
}

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

License:Open Source License

/**
 * @see nexcore.tool.uml.ui.project.explorer.action.CommonActionDelegate#run(org.eclipse.jface.action.IAction)
 *///w w  w  .ja  v a  2  s.  c  o  m
@Override
public void run(IAction action) {
    if (selectedEObject == null) {
        return;
    }
    if (!(AdapterFactoryEditingDomain.isControlled(selectedEObject))) {
        MessageDialog.openInformation(ProjectExplorerPlugin.getShell(), UMLMessage.LABEL_FILE_DEFRAGMENTATION,
                UMLMessage.MESSAGE_FRAGMENT_NOT_FRAGMENTED);
        return;
    }

    if (!MessageDialog.openConfirm(UiCorePlugin.getShell(),
            UMLMessage.getMessage(UMLMessage.LABEL_FILE_DEFRAGMENTATION),
            UMLMessage.getMessage(UMLMessage.MESSAGE_CONFIRM_MERGE))) {
        return;
    }

    final ChangeRecorder recorder = new ChangeRecorder(DomainRegistry.getUMLDomain().getResourceSet());

    // TODO : close the opened windows of the fragment file.
    // CommandUtil.closeEditor(eobject, false);
    DomainRegistry.getEditingDomain().getCommandStack()
            .execute(new RecordingCommand(DomainRegistry.getEditingDomain()) {
                /**
                 * @see org.eclipse.emf.transaction.RecordingCommand#doExecute()
                 */
                @Override
                public void doExecute() {
                    ProgressMonitorDialog dialog = new ProgressMonitorDialog(ProjectExplorerPlugin.getShell());
                    dialog.create();
                    EList<Resource> resources = DomainRegistry.getUMLDomain().getResourceSet().getResources();
                    dialog.getProgressMonitor().beginTask(UMLMessage.LABEL_FILE_DEFRAGMENTATION,
                            resources.size());
                    dialog.open();

                    IResourceSetListener rsListener = ContentProviderRegistry.getContentProvider();
                    try {
                        if (rsListener != null) {
                            rsListener.stopResourceListening();
                        }

                        Resource sourceResource = selectedEObject.eResource();
                        org.eclipse.uml2.uml.Package source = (org.eclipse.uml2.uml.Package) selectedEObject;

                        // ? ?? ?  Reference  .
                        EAnnotation sourceFragmentContainerAnnotation = ProjectUtil
                                .getFragmentContainerAnnotation(source);
                        if (sourceFragmentContainerAnnotation.getReferences() != null) {
                            sourceFragmentContainerAnnotation.getReferences()
                                    .remove(selectedEObject.eContainer());
                        }

                        // ? ?? FragmentContainer  
                        if (sourceFragmentContainerAnnotation != null) {
                            source.getEAnnotations().remove(sourceFragmentContainerAnnotation);
                        }
                        // ? ?? ProjectInfo  
                        EAnnotation sourceProjectInfoAnnotation = ProjectUtil.getProjectInfoAnnotation(source);
                        if (sourceProjectInfoAnnotation != null) {
                            source.getEAnnotations().remove(sourceProjectInfoAnnotation);
                        }

                        //  ?? Fragment Reference  
                        org.eclipse.uml2.uml.Package target = (org.eclipse.uml2.uml.Package) selectedEObject
                                .eContainer();
                        EAnnotation targetAnn = ProjectUtil.getFragmentAnnotation(target);
                        if (targetAnn.getReferences() != null) {
                            targetAnn.getReferences().remove(selectedEObject);
                        }

                        //  ?? ? ?    ?
                        URI srcUri = sourceResource.getURI();
                        URI parentUri = selectedEObject.eContainer().eResource().getURI();
                        List<Resource> saveResourceList = new ArrayList<Resource>();

                        for (Resource rs : resources) {
                            if (rs != null && ProjectUtil.isModelFile(rs)) {
                                final IFile file = WorkspaceSynchronizer.getFile(rs);
                                if (file != null && file.exists()) {
                                    if (!rs.isLoaded()) {
                                        rs.load(DomainModelHandlerUtil.getLoadOptions());
                                    }

                                    dialog.getProgressMonitor().worked(1);

                                    if (ResourceManager.getInstance().isRelated(rs, srcUri)) {
                                        dialog.getProgressMonitor().subTask(rs.getURI().toString());

                                        saveResourceList.add(rs);
                                        continue;
                                    }

                                    if (ResourceManager.getInstance().isRelated(rs, parentUri)) {
                                        dialog.getProgressMonitor().subTask(rs.getURI().toString());

                                        saveResourceList.add(rs);
                                        continue;
                                    }

                                    if (rs == selectedEObject.eResource()) {
                                        dialog.getProgressMonitor().subTask(rs.getURI().toString());

                                        saveResourceList.add(rs);
                                        continue;
                                    }

                                    if (rs == selectedEObject.eContainer().eResource()) {
                                        dialog.getProgressMonitor().subTask(rs.getURI().toString());

                                        saveResourceList.add(rs);
                                    }

                                    dialog.getProgressMonitor().subTask("");
                                }
                            }
                        }

                        //  ?? Fragment  
                        if (targetAnn != null) {
                            if (targetAnn.getReferences() != null && targetAnn.getReferences().size() == 0) {
                                target.getEAnnotations().remove(targetAnn);
                            }
                        }

                        ResourceManager.getInstance().removeContentsOfResource(sourceResource, selectedEObject);

                        selectedEObject.eResource().getContents().addAll(
                                ProjectUtil.getStereotypesForFragment(sourceResource, selectedEObject, true));

                        for (Resource saveResource : saveResourceList) {
                            DomainModelHandlerUtil.save(saveResource, true);
                        }
                        // have to remove source file.
                        final EObject parentObject = selectedEObject.eContainer();

                        final IFile file = WorkspaceSynchronizer.getFile(sourceResource);

                        TreeIterator<EObject> allContents = source.eAllContents();
                        while (allContents.hasNext()) {
                            EObject content = allContents.next();
                            UMLTreeNodeRegistry.removeTreeNode(content);
                        }

                        UMLTreeNodeRegistry.removeTreeNode(source);
                        //                        ResourceManager.getInstance().removeResource(sourceResource);
                        ResourceUnloader.getInstance().put(sourceResource);

                        ProjectExplorerPlugin.getDisplay().asyncExec(new Runnable() {
                            public void run() {
                                try { // 2011-08-11 ?
                                      // ?? ?? .fragment?  ?? 
                                    boolean isPackageStructuredFragment = true;
                                    IFolder folder = ((IFolder) ResourcesPlugin.getWorkspace().getRoot()
                                            .getFolder(file.getFullPath()).getParent());
                                    while (!folder.getName()
                                            .equals(UICoreConstant.PROJECT_CONSTANTS__FRAGMENT_FOLDER_NAME)) {
                                        Object parent = folder.getParent();
                                        if (!(parent instanceof IFolder)) {
                                            isPackageStructuredFragment = false;
                                            break;
                                        }
                                        folder = ((IFolder) parent);
                                    }

                                    if (isPackageStructuredFragment) {
                                        folder = ((IFolder) ResourcesPlugin.getWorkspace().getRoot()
                                                .getFolder(file.getFullPath()).getParent());
                                        List<IFolder> removeList = new ArrayList<IFolder>();
                                        while ((folder.members().length == 1) && (!folder.getName().equals(
                                                UICoreConstant.PROJECT_CONSTANTS__FRAGMENT_FOLDER_NAME))) {
                                            removeList.add(folder);
                                            folder = ((IFolder) folder.getParent());
                                        }
                                        file.delete(false, new NullProgressMonitor());
                                        for (Iterator<IFolder> it = removeList.iterator(); it.hasNext();) {
                                            folder = (IFolder) it.next();
                                            folder.delete(false, new NullProgressMonitor());
                                        }
                                    } else {
                                        file.delete(false, new NullProgressMonitor());
                                    }

                                } catch (Exception ex) {
                                    ex.printStackTrace();
                                    Log.error(ex);
                                } finally {
                                    try {
                                        if (parentObject != null) {
                                            ProjectUtil.refreshNodeInExplorer(parentObject);
                                        }
                                    } catch (Exception e) {
                                        e.printStackTrace();
                                        // ignore
                                    }
                                }
                            }
                        });

                    } catch (Exception e) {
                        e.printStackTrace();

                        // ResourceSet rollback 
                        ProjectUtil.rollbackResourceSet(recorder);

                        dialog.getProgressMonitor().done();
                        dialog.close();
                        MessageDialog.openError(ProjectExplorerPlugin.getShell(),
                                UMLMessage.LABEL_FILE_DEFRAGMENTATION, UMLMessage.MESSAGE_SAVE_FAIL);
                    } finally {
                        if (rsListener != null) {
                            rsListener.startResourceListening();
                        }
                        try {
                            dialog.getProgressMonitor().done();
                            dialog.close();
                        } catch (Exception e) {
                            //ignore
                        }
                    }
                }
            });
    System.gc();
}

From source file:org.atomictagging.ui.handlers.SaveHandler.java

License:Open Source License

@Execute
public void execute(IEclipseContext context, @Named(IServiceConstants.ACTIVE_SHELL) Shell shell,
        @Named(IServiceConstants.ACTIVE_PART) final MContribution contribution)
        throws InvocationTargetException, InterruptedException {
    final IEclipseContext pmContext = context.createChild();

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
    dialog.open();
    dialog.run(true, true, new IRunnableWithProgress() {
        @Override/* ww w  .j a v a  2 s  .co m*/
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
            pmContext.set(IProgressMonitor.class.getName(), monitor);
            if (contribution != null) {
                Object clientObject = contribution.getObject();
                //               ContextInjectionFactory.invoke(clientObject, Persist.class, //$NON-NLS-1$
                // pmContext, null);
            }
        }
    });

    if (pmContext instanceof IDisposable) {
        ((IDisposable) pmContext).dispose();
    }
}

From source file:org.eclipse.birt.chart.integration.wtp.ui.internal.actions.ImportChartRuntimeAction.java

License:Open Source License

/**
 * action to import birt runtime component
 * //from w ww . j  a  va  2s.  c  om
 * @param window
 * @param isClear
 * @throws Exception
 */
protected void doImport(IWorkbenchWindow window, boolean isClear) throws Exception {
    ProgressMonitorDialog monitor = null;
    try {
        // web content folder
        IPath webContentPath = BirtWizardUtil.getWebContentPath(project);

        // do import birt runtime
        monitor = new ProgressMonitorDialog(window.getShell());
        monitor.open();

        // check whether clears the old birt runtime files
        if (isClear)
            doClearAction(webContentPath, monitor.getProgressMonitor());

        // import birt runtime component
        BirtWizardUtil.doImports(project, null, webContentPath, monitor.getProgressMonitor(),
                new ImportOverwriteQuery(monitor.getShell()));

        // process defined folders
        BirtWizardUtil.processCheckFolder(properties, project, webContentPath.toFile().getName(),
                monitor.getProgressMonitor());

        // configurate web.xml
        processConfiguration(monitor.getProgressMonitor(), monitor.getShell());
    } finally {
        // closs dialog
        if (monitor != null) {
            monitor.close();
        }
    }
}

From source file:org.eclipse.e4.demo.contacts.handlers.SaveHandler.java

License:Open Source License

@Execute
public void execute(IEclipseContext context, @Optional IStylingEngine engine,
        @Named(IServiceConstants.ACTIVE_SHELL) Shell shell, final EPartService partService)
        throws InvocationTargetException, InterruptedException {
    final MPart details = partService.findPart("DetailsView");
    final IEclipseContext pmContext = context.createChild();

    ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
    dialog.open();

    ThemeUtil.applyDialogStyles(engine, dialog.getShell());

    dialog.run(true, true, new IRunnableWithProgress() {
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
            pmContext.set(IProgressMonitor.class.getName(), monitor);
            Object clientObject = details.getObject();
            ContextInjectionFactory.invoke(clientObject, Persist.class, pmContext, null);
        }//from  www  .j  ava 2 s  .c o  m
    });

    if (pmContext != null)
        pmContext.dispose();
}

From source file:org.eclipse.ecf.sync.ui.resources.ResourcesShareHandler.java

License:Open Source License

private void run(Shell shell, final ResourcesShare share, final String projectName) {
    final boolean[] ret = { false };

    try {/*  ww w.ja  v a2 s . c om*/
        ProgressMonitorDialog dialog = new ProgressMonitorDialog(shell);
        dialog.open();
        dialog.run(true, true, new IRunnableWithProgress() {
            public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                try {
                    monitor.beginTask("Sharing " + projectName, IProgressMonitor.UNKNOWN);
                    monitor.subTask("Sending request...");
                    share.startShare(getRosterEntry().getRoster().getUser().getID(),
                            getRosterEntry().getUser().getID(), projectName);
                    monitor.subTask("Waiting for acknowledgement...");
                    while (true) {
                        if (monitor.isCanceled()) {
                            throw new InterruptedException();
                        }

                        Thread.sleep(50);
                        Boolean response = share.getResponse();
                        if (response != null) {
                            ret[0] = response.booleanValue();
                            return;
                        }
                    }
                } catch (ECFException e) {
                    throw new InvocationTargetException(e);
                } finally {
                    monitor.done();
                }
            }
        });
    } catch (InvocationTargetException e) {
        IStatus status = new Status(IStatus.ERROR, SyncResourcesUI.PLUGIN_ID, "Could not send share request",
                e.getCause());
        StatusManager.getManager().handle(status);
        SyncResourcesUI.log(status);
    } catch (InterruptedException e) {
        // operation canceled, stop sharing this project
        share.stopSharing(projectName);
        return;
    }

    if (ret[0]) {
        IRosterManager manager = getRosterEntry().getRoster().getPresenceContainerAdapter().getRosterManager();
        manager.addRosterListener(new RosterListener(share, projectName, getRosterEntry()));
    } else {
        MessageDialog.openInformation(shell, null, "Sharing request denied.");
    }
}

From source file:org.eclipse.emf.ecp.common.commands.DeleteModelElementCommand.java

License:Open Source License

/**
 * {@inheritDoc}//from   w  w w  .  ja  va  2 s.c  o  m
 */
public void run() {
    // remove already contained model elements to prevent double deletes -> exception
    removeAnchestorDuplicates(toBeDeleted);

    // collect all association classes to be deleted
    Set<EObject> additionalMEs = new HashSet<EObject>();
    for (EObject eObject : toBeDeleted) {
        additionalMEs.addAll(AssociationClassHelper.getRelatedAssociationClassToDelete(eObject,
                context.getMetaModelElementContext()));
    }
    toBeDeleted.addAll(additionalMEs);
    // now delete
    if (askConfirmation()) {
        ProgressMonitorDialog progressDialog = new ProgressMonitorDialog(
                PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
        progressDialog.open();
        try {
            long start = System.currentTimeMillis();
            removeElementsWithoutRoot(toBeDeleted);

            if (toBeDeleted.size() > 0) {
                new ECPCommandWithParameter<Set<EObject>>(toBeDeleted.iterator().next()) {

                    @Override
                    protected void doRun(Set<EObject> parameter) {
                        for (EObject eObject : toBeDeleted) {
                            EcoreUtil.delete(eObject, true);
                        }
                    }

                }.run(toBeDeleted);
            }
            setStatusMessage(
                    "Element deletion lasted " + (System.currentTimeMillis() - start) / 1000.0 + "sec");
            // Command deleteCommand = DeleteCommand.create(context.getEditingDomain(), toBeDeleted);
            // context.getEditingDomain().getCommandStack().execute(deleteCommand);
        } finally {
            progressDialog.getProgressMonitor().done();
            progressDialog.close();
        }
    }
}