Example usage for org.eclipse.jface.viewers StructuredSelection iterator

List of usage examples for org.eclipse.jface.viewers StructuredSelection iterator

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers StructuredSelection iterator.

Prototype

@Override
    public Iterator iterator() 

Source Link

Usage

From source file:net.tourbook.ui.views.tourMarker.TourMarkerView.java

License:Open Source License

private void onSelect_TourMarker(final StructuredSelection selection) {

    if (_isInUpdate) {
        return;/*  w ww .  j  a va2s  .  co m*/
    }

    final ArrayList<TourMarker> selectedTourMarker = new ArrayList<TourMarker>();

    for (final Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
        selectedTourMarker.add((TourMarker) iterator.next());
    }

    TourManager.fireEventWithCustomData(//
            TourEventId.MARKER_SELECTION, new SelectionTourMarker(_tourData, selectedTourMarker),
            getSite().getPart());
}

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

License:Open Source License

@Override
public void run(IAction action) {
    final StructuredSelection ss = ((StructuredSelection) selection);
    if (ss.isEmpty()) {
        return;//from w  w w .j a v  a  2s .  c om
    }

    start();

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

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

                WorkspaceModifyOperation workspaceModifyOperation = new WorkspaceModifyOperation() {
                    /**
                     * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
                     */
                    @Override
                    protected void execute(final IProgressMonitor monitor)
                            throws CoreException, InvocationTargetException, InterruptedException {
                        monitor.beginTask("Create fragment", 150);

                        saveResource = new HashSet<Resource>();

                        ////////////////
                        ResourceSetImpl resourceSet = (ResourceSetImpl) DomainRegistry.getUMLDomain()
                                .getResourceSet();
                        Map<URI, Resource> uriResourceMap = resourceSet.getURIResourceMap();

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

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

                            if (ProjectUtil.isModelFile(resource)) {
                                if (resource.isModified()) {
                                    modifiedResource.add(resource);
                                }
                            }
                        }

                        SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 20);
                        subMonitor.beginTask("Save", modifiedResource.size());
                        for (Resource r : modifiedResource) {
                            subMonitor.worked(1);

                            try {
                                subMonitor.subTask(r.getURI().toString());
                                System.out.println("------------------------>" + r.getURI().toString());
                                DomainModelHandlerUtil.save(r, false);
                            } catch (Exception e) {
                                ALMLogger.getLog(ProjectExplorerPlugin.PLUGIN_ID).error(e.getMessage(), e);
                            }
                        }

                        subMonitor.done();

                        ///////////////
                        closeEditor();
                        ///////////////

                        TreeMap<String, Package> packageList = new TreeMap<String, Package>();
                        for (Iterator<?> iterator = ss.iterator(); iterator.hasNext();) {
                            Object obj = (Object) iterator.next();

                            if (obj instanceof ITreeNode) {
                                ITreeNode node = (ITreeNode) obj;
                                EObject eObject = node.getEObject();

                                Package selectedPackage = null;
                                if (eObject instanceof Model) {
                                    selectedPackage = (Model) eObject;
                                } else if (eObject instanceof Package) {
                                    selectedPackage = (Package) eObject;
                                }

                                if (packageList.containsKey(selectedPackage.getQualifiedName())) {
                                    continue;
                                }

                                SELECT statement = new SELECT(new FROM(selectedPackage), new WHERE(
                                        new EObjectTypeRelationCondition(UMLPackage.eINSTANCE.getPackage())));
                                IQueryResult result = statement.execute();

                                for (Iterator<?> ir = result.iterator(); ir.hasNext();) {
                                    Package pkg = (Package) ir.next();

                                    if (pkg == null || pkg.getQualifiedName() == null) {
                                        continue;
                                    }

                                    if (AdapterFactoryEditingDomain.isControlled(pkg)) {
                                        continue;
                                    }
                                    packageList.put(pkg.getQualifiedName(), pkg);
                                }

                                // model ? Model ?    Package ? 
                                // model ?  ?? ? 
                                if (!(selectedPackage instanceof Model)) {
                                    packageList.put(selectedPackage.getQualifiedName(), selectedPackage);
                                }
                            }
                        }

                        subMonitor = new SubProgressMonitor(monitor, 100);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                packageList.size());
                        for (Iterator<String> ir = packageList.descendingKeySet().iterator(); ir.hasNext();) {
                            subMonitor.worked(1);
                            String qualifiedName = (String) ir.next();

                            subMonitor.subTask(qualifiedName);
                            createFragment(packageList.get(qualifiedName), subMonitor);
                        }

                        subMonitor.done();

                        subMonitor = new SubProgressMonitor(monitor, 10);
                        subMonitor.beginTask("Resolve all resource", saveResource.size());
                        for (Iterator<Resource> ir = saveResource.iterator(); ir.hasNext();) {
                            subMonitor.worked(1);
                            Resource resource = ir.next();
                            subMonitor.subTask(String.format("save : %s", resource.getURI()));

                            EcoreUtil.resolveAll(resource);
                        }

                        subMonitor.done();

                        subMonitor = new SubProgressMonitor(monitor, 20);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                saveResource.size());
                        subMonitor.setTaskName(UMLMessage.TITLE_SAVE);
                        for (Resource resource : saveResource) {
                            subMonitor.worked(1);
                            subMonitor.subTask(String.format("%s", resource.getURI()));
                            try {
                                DomainModelHandlerUtil.save(resource, true);
                            } catch (Exception e) {
                                e.printStackTrace();
                            } finally {
                                System.out.println(String.format("saved : %s", resource.getURI()));
                            }
                        }

                        subMonitor.done();

                        monitor.done();
                    }

                };

                dialog.run(true, false, workspaceModifyOperation);
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                saveResource.clear();
                done();
            }
        }
    });
}

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

License:Open Source License

@Override
public void run(IAction action) {
    final StructuredSelection ss = ((StructuredSelection) selection);
    if (ss.isEmpty()) {
        return;// w ww.  ja va  2  s.c  om
    }

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

    parentObjectList = new ArrayList<EObject>();
    removeResourceList = new ArrayList<Resource>();
    deleteFileList = new ArrayList<Resource>();
    saveResource = new HashSet<Resource>();

    CommonViewer commonViewer = ViewerRegistry.getViewer();

    expanedTreePaths = TreeItemUtil.getExpandTreePaths(commonViewer.getTree()).clone();

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

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

                WorkspaceModifyOperation workspaceModifyOperation = new WorkspaceModifyOperation() {
                    /**
                     * @see org.eclipse.ui.actions.WorkspaceModifyOperation#execute(org.eclipse.core.runtime.IProgressMonitor)
                     */
                    @Override
                    protected void execute(final IProgressMonitor monitor)
                            throws CoreException, InvocationTargetException, InterruptedException {
                        monitor.beginTask("Merge fragment", 140);

                        TreeMap<String, Package> packageList = new TreeMap<String, Package>();
                        for (Iterator<?> iterator = ss.iterator(); iterator.hasNext();) {
                            Object obj = (Object) iterator.next();

                            if (obj instanceof ITreeNode) {
                                ITreeNode node = (ITreeNode) obj;
                                EObject eObject = node.getEObject();

                                Package selectedPackage = null;
                                if (eObject instanceof Model) {
                                    selectedPackage = (Model) eObject;
                                } else if (eObject instanceof Package) {
                                    selectedPackage = (Package) eObject;
                                }

                                if (packageList.containsKey(selectedPackage.getQualifiedName())) {
                                    continue;
                                }

                                SELECT statement = new SELECT(new FROM(selectedPackage), new WHERE(
                                        new EObjectTypeRelationCondition(UMLPackage.eINSTANCE.getPackage())));
                                IQueryResult result = statement.execute();

                                for (Iterator<?> ir = result.iterator(); ir.hasNext();) {
                                    Package pkg = (Package) ir.next();

                                    if (pkg == null || pkg.getQualifiedName() == null) {
                                        continue;
                                    }

                                    if (AdapterFactoryEditingDomain.isControlled(pkg)) {
                                        packageList.put(pkg.getQualifiedName(), pkg);
                                    }
                                }

                                // model ? Model ?    Package ? 
                                // model ?  ?? ? 
                                if (!(selectedPackage instanceof Model)) {
                                    packageList.put(selectedPackage.getQualifiedName(), selectedPackage);
                                }
                            }
                        }

                        SubProgressMonitor subMonitor = new SubProgressMonitor(monitor, 100);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                packageList.size());
                        for (Iterator<String> ir = packageList.descendingKeySet().iterator(); ir.hasNext();) {
                            subMonitor.worked(1);
                            String qualifiedName = (String) ir.next();

                            subMonitor.subTask(qualifiedName);

                            Package eobject = packageList.get(qualifiedName);
                            if (!(AdapterFactoryEditingDomain.isControlled(eobject))) {
                                subMonitor.worked(1);
                                continue;
                            }

                            mergeFragment(eobject, subMonitor);
                        }

                        subMonitor.done();

                        subMonitor = new SubProgressMonitor(monitor, 20);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                saveResource.size());
                        subMonitor.setTaskName(UMLMessage.TITLE_SAVE);
                        for (Resource resource : saveResource) {
                            subMonitor.worked(1);
                            subMonitor.subTask(String.format("%s", resource.getURI()));
                            try {
                                IFile file = WorkspaceSynchronizer.getFile(resource);
                                if (file == null || !file.exists()) {
                                    continue;
                                }
                                DomainModelHandlerUtil.save(resource, true);
                            } catch (Exception e) {
                                e.printStackTrace();
                            } finally {
                                System.out.println(String.format("saved : %s", resource.getURI()));
                            }
                        }

                        for (URI uri : removeTreeNode) {
                            UMLTreeNodeRegistry.removeTreeNode(uri);
                        }

                        for (Resource sourceResource : removeResourceList) {
                            ResourceUnloader.getInstance().put(sourceResource);
                        }

                        subMonitor = new SubProgressMonitor(monitor, 10);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                deleteFileList.size());
                        subMonitor.setTaskName(UMLMessage.TITLE_DELETE_FILE/* " ? " */);

                        try {
                            for (Resource resource : deleteFileList) {
                                IFile file = WorkspaceSynchronizer.getFile(resource);
                                if (file == null) {
                                    continue;
                                }
                                subMonitor.subTask(String.format("%s", file.getFullPath().toString()));

                                URI uri = URI.createURI(file.getFullPath().toString());
                                Map<URI, Resource> uriResourceMap = ((ResourceSetImpl) DomainRegistry
                                        .getUMLDomain().getResourceSet()).getURIResourceMap();
                                if (uriResourceMap.containsKey(uri)) {
                                    uriResourceMap.remove(uri);
                                }

                                //                                    file.delete(false, new NullProgressMonitor());
                                resource.delete(Collections.emptyMap());
                            }
                        } catch (Exception ex) {
                            ex.printStackTrace();
                        }

                        subMonitor = new SubProgressMonitor(monitor, 10);
                        subMonitor.beginTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING,
                                parentObjectList.size());
                        subMonitor.setTaskName(UMLMessage.TITLE_REFRESH);
                        subMonitor.subTask(UICoreConstant.PROJECT_CONSTANTS__EMPTY_STRING);
                        for (EObject parentObject : parentObjectList) {
                            subMonitor.worked(1);
                            try {
                                ProjectUtil.refreshNodeInExplorer(parentObject);
                            } catch (Exception e) {
                                // ignore
                            }
                        }

                        subMonitor.done();

                        monitor.done();
                    }

                };

                dialog.run(true, false, workspaceModifyOperation);
            } catch (InvocationTargetException e) {
                e.printStackTrace();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    });
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.DeleteProjectAction.java

License:Apache License

/**
 * {@inheritDoc}/*from w  w  w  .  j  av  a  2s  .c o  m*/
 */
public void run() {
    ProjectsHandler projectsHandler = Activator.getDefault().getProjectsHandler();
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();

    if (!selection.isEmpty()) {
        StringBuilder title = new StringBuilder();
        StringBuilder message = new StringBuilder();

        int count = selection.size();

        if (count <= 5) {
            if (count == 1) {
                // Only 1 project to delete
                title.append(Messages.getString("DeleteProjectAction.DeleteProjectTitle")); //$NON-NLS-1$
                message.append(Messages.getString("DeleteProjectAction.SureDeleteFollowingProject")); //$NON-NLS-1$
            } else {
                // Between 2 to 5 projects to delete
                title.append(Messages.getString("DeleteProjectAction.DeleteProjectsTitle")); //$NON-NLS-1$
                message.append(Messages.getString("DeleteProjectAction.SureDeleteFollowingProjects")); //$NON-NLS-1$
            }

            // Appending the projects names
            for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
                message.append(ConnectionCoreConstants.LINE_SEPARATOR);
                message.append("  - "); //$NON-NLS-1$
                message.append(((ProjectWrapper) iterator.next()).getProject().getName());
            }
        } else {
            // More than 5 projects to delete
            title.append(Messages.getString("DeleteProjectAction.DeleteProjectsTitle")); //$NON-NLS-1$
            message.append(Messages.getString("DeleteProjectAction.SureDeleteSelectedProjects")); //$NON-NLS-1$
        }

        // Showing the confirmation window
        if (MessageDialog.openConfirm(viewer.getControl().getShell(), title.toString(), message.toString())) {
            for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
                ProjectWrapper wrapper = (ProjectWrapper) iterator.next();
                Project project = wrapper.getProject();

                if (project.getState() == ProjectState.OPEN) {
                    // Closing the project before removing it. 
                    projectsHandler.closeProject(project);
                }

                projectsHandler.removeProject(project);
            }
        }
    }
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.DeleteSchemaElementAction.java

License:Apache License

/**
 * Creates a new instance of DeleteSchemaElementAction.
 *///  w w  w . j  a  v  a 2 s  . c om
public DeleteSchemaElementAction(TreeViewer viewer) {
    super(Messages.getString("DeleteSchemaElementAction.DeleteAction")); //$NON-NLS-1$
    setToolTipText(Messages.getString("DeleteSchemaElementAction.DeleteToolTip")); //$NON-NLS-1$
    setId(PluginConstants.CMD_DELETE_SCHEMA_ELEMENT);
    setActionDefinitionId(PluginConstants.CMD_DELETE_SCHEMA_ELEMENT);
    setImageDescriptor(Activator.getDefault().getImageDescriptor(PluginConstants.IMG_DELETE));
    setEnabled(true);
    this.viewer = viewer;
    this.viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            StructuredSelection selection = (StructuredSelection) event.getSelection();

            if (selection.size() > 0) {
                boolean enabled = true;

                for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
                    Object selectedItem = iterator.next();

                    if (!(selectedItem instanceof SchemaWrapper)
                            && !(selectedItem instanceof AttributeTypeWrapper)
                            && !(selectedItem instanceof ObjectClassWrapper)) {
                        enabled = false;
                        break;
                    }
                }

                setEnabled(enabled);
            } else {
                setEnabled(false);
            }
        }
    });
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.DeleteSchemaElementAction.java

License:Apache License

/**
 * {@inheritDoc}/*from   w w w .  j  av a  2 s .co  m*/
 */
public void run() {
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();

    if (!selection.isEmpty()) {
        StringBuilder message = new StringBuilder();

        int count = selection.size();

        if (count == 1) {
            Object firstElement = selection.getFirstElement();
            if (firstElement instanceof AttributeTypeWrapper) {
                message.append(Messages.getString("DeleteSchemaElementAction.SureDeleteAttributeType")); //$NON-NLS-1$
            } else if (firstElement instanceof ObjectClassWrapper) {
                message.append(Messages.getString("DeleteSchemaElementAction.SureDeleteObjectClass")); //$NON-NLS-1$
            } else if (firstElement instanceof SchemaWrapper) {
                message.append(Messages.getString("DeleteSchemaElementAction.SureDeleteSchema")); //$NON-NLS-1$
            } else {
                message.append(Messages.getString("DeleteSchemaElementAction.SureDeleteItem")); //$NON-NLS-1$
            }
        } else {
            message.append(NLS.bind(Messages.getString("DeleteSchemaElementAction.SureDeleteItems"), //$NON-NLS-1$
                    new Object[] { count }));
        }

        // Showing the confirmation window
        if (MessageDialog.openConfirm(viewer.getControl().getShell(),
                Messages.getString("DeleteSchemaElementAction.DeleteTitle"), message.toString())) //$NON-NLS-1$
        {
            Map<String, Schema> schemasMap = new HashMap<String, Schema>();
            List<SchemaObject> schemaObjectsList = new ArrayList<SchemaObject>();

            for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
                Object selectedItem = iterator.next();
                if (selectedItem instanceof SchemaWrapper) {
                    Schema schema = ((SchemaWrapper) selectedItem).getSchema();
                    schemasMap.put(Strings.toLowerCase(schema.getSchemaName()), schema);
                } else if (selectedItem instanceof AttributeTypeWrapper) {
                    AttributeType at = ((AttributeTypeWrapper) selectedItem).getAttributeType();
                    schemaObjectsList.add(at);
                } else if (selectedItem instanceof ObjectClassWrapper) {
                    ObjectClass oc = ((ObjectClassWrapper) selectedItem).getObjectClass();
                    schemaObjectsList.add(oc);
                }
            }

            SchemaHandler schemaHandler = Activator.getDefault().getSchemaHandler();
            // Removing schema objects
            for (SchemaObject schemaObject : schemaObjectsList) {
                if (!schemasMap.containsKey(Strings.toLowerCase(schemaObject.getSchemaName()))) {
                    // If the schema object is not part of deleted schema, we need to delete it.
                    // But, we don't delete schema objects that are part of a deleted schema, since
                    // deleting the schema will also delete this schema object.
                    if (schemaObject instanceof AttributeType) {
                        schemaHandler.removeAttributeType((AttributeType) schemaObject);
                    } else if (schemaObject instanceof ObjectClass) {
                        schemaHandler.removeObjectClass((ObjectClass) schemaObject);
                    }
                }
            }

            // Removing schemas
            for (Schema schema : schemasMap.values()) {
                schemaHandler.removeSchema(schema);
            }
        }
    }
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.ExportProjectsAction.java

License:Apache License

/**
 * {@inheritDoc}//  w  w w .  j  a va2 s . co m
 */
public void run() {
    List<Project> selectedProjects = new ArrayList<Project>();
    // Getting the selection
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();
    if ((!selection.isEmpty()) && (selection.size() > 0)) {
        for (Iterator<?> i = selection.iterator(); i.hasNext();) {
            selectedProjects.add(((ProjectWrapper) i.next()).getProject());
        }
    }

    // Instantiates and initializes the wizard
    ExportProjectsWizard wizard = new ExportProjectsWizard();
    wizard.setSelectedProjects(selectedProjects.toArray(new Project[0]));
    wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
    // Instantiates the wizard container with the wizard and opens it
    WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
            wizard);
    dialog.create();
    dialog.open();
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.ExportSchemasAsOpenLdapAction.java

License:Apache License

/**
 * {@inheritDoc}//from   w  ww  .  jav a2 s. c o m
 */
public void run() {
    List<Schema> selectedSchemas = new ArrayList<Schema>();
    // Getting the selection
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();
    if ((!selection.isEmpty()) && (selection.size() > 0)) {
        for (Iterator<?> i = selection.iterator(); i.hasNext();) {
            Object o = i.next();
            if (o instanceof SchemaWrapper) {
                selectedSchemas.add(((SchemaWrapper) o).getSchema());
            }
        }
    }

    // Instantiates and initializes the wizard
    ExportSchemasAsOpenLdapWizard wizard = new ExportSchemasAsOpenLdapWizard();
    wizard.setSelectedSchemas(selectedSchemas.toArray(new Schema[0]));
    wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
    // Instantiates the wizard container with the wizard and opens it
    WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
            wizard);
    dialog.create();
    dialog.open();
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.ExportSchemasAsXmlAction.java

License:Apache License

/**
 * {@inheritDoc}//ww  w  . j  a  v a  2s.  c  om
 */
public void run() {
    List<Schema> selectedSchemas = new ArrayList<Schema>();
    // Getting the selection
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();
    if ((!selection.isEmpty()) && (selection.size() > 0)) {
        for (Iterator<?> i = selection.iterator(); i.hasNext();) {
            Object o = i.next();
            if (o instanceof SchemaWrapper) {
                selectedSchemas.add(((SchemaWrapper) o).getSchema());
            }
        }
    }

    // Instantiates and initializes the wizard
    ExportSchemasAsXmlWizard wizard = new ExportSchemasAsXmlWizard();
    wizard.setSelectedSchemas(selectedSchemas.toArray(new Schema[0]));
    wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
    // Instantiates the wizard container with the wizard and opens it
    WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
            wizard);
    dialog.create();
    dialog.open();
}

From source file:org.apache.directory.studio.schemaeditor.controller.actions.ExportSchemasForADSAction.java

License:Apache License

/**
 * {@inheritDoc}/*from  ww w.j ava 2s  .  co m*/
 */
public void run() {
    List<Schema> selectedSchemas = new ArrayList<Schema>();
    // Getting the selection
    StructuredSelection selection = (StructuredSelection) viewer.getSelection();
    if ((!selection.isEmpty()) && (selection.size() > 0)) {
        for (Iterator<?> i = selection.iterator(); i.hasNext();) {
            Object o = i.next();
            if (o instanceof SchemaWrapper) {
                selectedSchemas.add(((SchemaWrapper) o).getSchema());
            }
        }
    }

    // Instantiates and initializes the wizard
    ExportSchemasForADSWizard wizard = new ExportSchemasForADSWizard();
    wizard.setSelectedSchemas(selectedSchemas.toArray(new Schema[0]));
    wizard.init(PlatformUI.getWorkbench(), StructuredSelection.EMPTY);
    // Instantiates the wizard container with the wizard and opens it
    WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
            wizard);
    dialog.create();
    dialog.open();
}