Example usage for org.eclipse.jface.viewers CheckboxTreeViewer getCheckedElements

List of usage examples for org.eclipse.jface.viewers CheckboxTreeViewer getCheckedElements

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers CheckboxTreeViewer getCheckedElements.

Prototype

public Object[] getCheckedElements() 

Source Link

Document

Returns a list of checked elements in this viewer's tree, including currently hidden ones that are marked as checked but are under a collapsed ancestor.

Usage

From source file:com.crispico.flower.mp.metamodelset.flowerfile.wizard.FlowerModelFileWizard.java

License:Open Source License

private void organizeJavaSrcDirs(EObject[] initialModels) {
    // get the root package
    Package rootPackage = (Package) initialModels[FlowerMPUtils.ROOT_PACKAGE_POSITION];

    // control from where we will extract the selected srcDirs
    CheckboxTreeViewer treeViewer = (CheckboxTreeViewer) ((SelectDirectoriesWizardPageForFlowerModel) selectSrcDirsPage)
            .getJavaTreeViewer();/*  www  . j a  v a 2 s .c  o m*/

    // add things only if there is something checked in the tree
    if (treeViewer.getCheckedElements().length > 0) {

        boolean unknownTypesPackageExists = false;
        for (Package pack : rootPackage.getNestedPackages()) {
            if (pack instanceof JavaUnknownTypesPackage) {
                unknownTypesPackageExists = true;
                break;
            }
        }
        if (!unknownTypesPackageExists) {
            rootPackage.getNestedPackages().add(CodeSyncJavaFactory.eINSTANCE.createJavaUnknownTypesPackage());
        }

        IFile newFile = newFileWizardPage.getModelFile();

        // for every checked folders from selectSrcDirs, create a JavaSrcDirPackage
        for (Object obj : treeViewer.getCheckedElements()) {
            String name = null;
            IProject proj;
            String path = "";

            //get the project where it resides
            proj = ((IContainer) obj).getProject();
            // get the path to this folder
            path = ((IContainer) obj).getProjectRelativePath().toString();
            if (proj != newFile.getProject()) {
                // absolute if in another project (with ..//)
                name = "../" + proj.getName() + "/" + path;
            } else if (obj instanceof IProject) {
                name = "../" + proj.getName();
            } else {
                // relative if in the same project
                name = path;
            }

            JavaSrcDirPackage srcDir = CodeSyncJavaFactory.eINSTANCE.createJavaSrcDirPackage();
            srcDir.setName(name);
            rootPackage.getNestedPackages().add(srcDir);
        }
    }
}

From source file:com.crispico.flower.mp.metamodelset.uml4asfile.wizard.UML4ASModelWizard.java

License:Open Source License

/**
 * The method gets the user options regarding model contents and creates the corresponding model.
 *
 * @author Cristina//from w  w  w. j a  va2 s .  co m
 * @flowerModelElementId _MeEEkIxEEeCzNMVLxoYGLw
 */
private void organizeSrcDirs(EObject[] initialModels) {
    // get the root package
    Package rootPackage = (Package) initialModels[FlowerMPUtils.ROOT_PACKAGE_POSITION];

    // control from where we will extract the selected srcDirs
    CheckboxTreeViewer treeViewer = (CheckboxTreeViewer) selectSrcDirsPage.getTreeViewer();

    // add things only if there is something checked in the tree
    if (treeViewer.getCheckedElements().length > 0) {

        boolean unknownTypesPackageExists = false;
        for (Package pack : rootPackage.getNestedPackages()) {
            if (pack instanceof ActionScriptUnknownTypesPackage) {
                unknownTypesPackageExists = true;
                break;
            }
        }
        if (!unknownTypesPackageExists) {
            rootPackage.getNestedPackages()
                    .add(CodeSyncASFactory.eINSTANCE.createActionScriptUnknownTypesPackage());
        }

        IFile newFile = newFileWizardPage.getModelFile();

        // for every checked folders from selectSrcDirs, create an ActionScriptSrcDirPackage
        for (Object obj : treeViewer.getCheckedElements()) {
            String name = null;
            IProject proj;
            String path = "";

            //get the project where it resides
            proj = ((IContainer) obj).getProject();
            // get the path to this folder
            path = ((IContainer) obj).getProjectRelativePath().toString();
            if (proj != newFile.getProject()) {
                // absolute if in another project (with ..//)
                name = "../" + proj.getName() + "/" + path;
            } else if (obj instanceof IProject) {
                name = "../" + proj.getName();
            } else {
                // relative if in the same project
                name = path;
            }

            ActionScriptSrcDirPackage srcDir = CodeSyncASFactory.eINSTANCE.createActionScriptSrcDirPackage();
            srcDir.setName(name);
            rootPackage.getNestedPackages().add(srcDir);
        }
    }
}

From source file:com.github.caofangkun.bazelipse.wizard.DirectoryTreeContentProvider.java

License:Open Source License

/**
 * Returns the list of path selected in <code>tv</code>. It returns the list of checked path
 * without the children of the checked path. Each path is returned as a string giving the relative
 * path from the root of the tree.//  w  ww  .jav a 2  s.  c  o  m
 */
static ImmutableList<String> getSelectPathsRelativeToRoot(CheckboxTreeViewer tv) {
    DirectoryTreeContentProvider provider = (DirectoryTreeContentProvider) tv.getContentProvider();
    String root = provider.root.getAbsolutePath();
    ImmutableList.Builder<String> builder = ImmutableList.builder();
    for (Object element : tv.getCheckedElements()) {
        if (!tv.getGrayed(element)) {
            Object parent = provider.getParent(element);
            if (parent == null || tv.getGrayed(parent)) {
                // Only add this element if its parent is not selected (so it's the root).
                String path = ((File) element).getAbsolutePath();
                // Strip root from path
                if (path.startsWith(root)) {
                    path = path.substring(root.length());
                    if (path.startsWith("/")) {
                        path = path.substring(1);
                    }
                    builder.add(path);
                }
            }
        }
    }
    return builder.build();
}

From source file:com.nomagic.magicdraw.classpath.MDClasspathContainerPage.java

License:Open Source License

protected void handleSelectButtonPressed() {
    final IPath fRootPath = MDVariableInitializer.getMDInstallRootPath().addTrailingSeparator();
    final File fRoot = fRootPath.toFile();
    final List<File> initialSelection = new ArrayList<File>();
    final List<String> checkedPrefixes = new ArrayList<String>();
    final List<File> checkedSummary = new ArrayList<File>();
    for (IPath mdLibPath : fMDClasspathEntries) {
        File mdLib = mdLibPath.toFile();
        initialSelection.add(mdLib);//from  w  ww . j  a v a2s . com
    }
    CheckedTreeSelectionDialog dialog = new CheckedTreeSelectionDialog(getContainer().getShell(),
            new FileLabelProvider(), new FileContentProvider()) {

        @Override
        public void create() {
            super.create();
            CheckboxTreeViewer treeViewer = getTreeViewer();
            for (File f : initialSelection) {
                IPath fp = fRootPath.append(f.getPath());
                File af = fp.toFile();
                treeViewer.reveal(af);
                treeViewer.setChecked(af, true);
            }
            treeViewer.collapseAll();
        }

        @Override
        protected void computeResult() {
            checkedSummary.clear();
            CheckboxTreeViewer treeViewer = getTreeViewer();
            for (Object checkedElement : treeViewer.getCheckedElements()) {
                if (treeViewer.getGrayed(checkedElement))
                    continue;

                if (checkedElement instanceof File) {
                    File checkedFile = (File) checkedElement;

                    String checkedFilepath = checkedFile.getAbsolutePath();
                    boolean isCheckedDirectory = checkedFile.isDirectory();
                    if (isCheckedDirectory && !checkedFilepath.endsWith(File.separator))
                        checkedFilepath += File.separator;

                    boolean addToSummary = true;
                    for (String checkedPrefix : checkedPrefixes) {
                        if (checkedPrefix.equals(checkedFilepath)
                                || (!isCheckedDirectory && checkedFilepath.startsWith(checkedPrefix)))
                            addToSummary = false;
                    }

                    if (addToSummary) {
                        checkedSummary.add(checkedFile);
                        if (checkedFile.isDirectory())
                            checkedPrefixes.add(checkedFilepath);
                    }
                }
            }
        }
    };
    dialog.setTitle("MagicDraw Library Classpath Selection");
    dialog.setMessage("Select the libraries from the MagicDraw installation root:");
    dialog.setInput(fRoot);
    dialog.setContainerMode(true);

    dialog.open();
    int code = dialog.getReturnCode();
    if (Dialog.OK == code) {
        String root = MDVariableInitializer.getMDInstallRootPath().toString();
        int rootPrefix = root.length() + 1;
        fMDClasspathEntries.clear();
        for (File file : checkedSummary) {
            String path = file.getAbsolutePath();
            String lib = path.substring(rootPrefix);
            IPath mdLibpath = new Path(lib);
            fMDClasspathEntries.add(mdLibpath);
        }
        fMDClasspathEntryViewer.setInput(fMDClasspathEntries);
    }

}

From source file:dynamicrefactoring.interfaz.wizard.classificationscombo.ClassificationsCheckBoxTreeListener.java

License:Open Source License

/**
 * Oscurece el padre si alguno de sus hijos esta marcado. Es decir
 * oscurece la clasificacion si alguna de sus categorias esta marcada.
 * /* ww  w . j  a v a2 s .  com*/
 * @param classification
 *            elemento padre
 * @param viewer visor
 */

protected static void grayParentIfNeeded(Classification classification, CheckboxTreeViewer viewer) {
    // Si alguno de los hijos de la clasificacion tiene algun hijo marcado
    if (!Sets.intersection(classification.getCategories(),
            Sets.newHashSet(Arrays.asList(viewer.getCheckedElements()))).isEmpty()) {
        // El padre se oscurecera
        viewer.setGrayChecked(classification, true);
    } else {
        viewer.setGrayChecked(classification, false);
    }
}

From source file:net.refractions.udig.project.ui.internal.LegendViewCheckboxUtils.java

License:Open Source License

/**
 * Returns what the status of the folder's checkbox should be with respect to its child layers.
 * //from   w ww. jav  a  2s  .  c om
 * @param viewer
 * @param folder
 * @return CHECKED - the folder should be checked, BLOCKED - folder should be blocked, UNCHECKED
 *         - folder should be unchecked
 */
private static FolderState getFolderCheckboxDisplay(CheckboxTreeViewer viewer, Folder folder) {

    final List<ILegendItem> items = folder.getItems();
    if (items.size() == 0) {

        final boolean isGrayed = viewer.getGrayed(folder);
        if (isGrayed) {
            return FolderState.BLOCKED;
        }
        final boolean isChecked = viewer.getChecked(folder);
        if (isChecked) {
            return FolderState.CHECKED;
        }

    } else {

        int checkedCnt = 0;
        int grayedCnt = 0;
        final List<Object> grayedElements = Arrays.asList(viewer.getGrayedElements());
        final List<Object> checkedElements = Arrays.asList(viewer.getCheckedElements());

        for (ILegendItem item : items) {
            if (grayedElements.contains(item)) {
                grayedCnt++;
            } else if (checkedElements.contains(item)) {
                checkedCnt++;
            }
        }
        if (checkedCnt > 0) {
            if (checkedCnt == items.size()) {
                return FolderState.CHECKED;
            } else {
                return FolderState.BLOCKED;
            }
        }
        if (grayedCnt > 0) {
            return FolderState.BLOCKED;
        }

    }

    return FolderState.UNCHECKED;

}

From source file:org.eclipse.edt.ide.rui.visualeditor.internal.wizards.insertwidget.InsertWidgetWizard.java

License:Open Source License

@Override
public boolean performFinish() {
    //get the selected InsertDataNodes
    CheckboxTreeViewer configureWidgetsTableViewer = insertWidgetWizardPage.getConfigureWidgetsTableViewer();
    Object[] checkedElements = configureWidgetsTableViewer.getCheckedElements();
    for (int i = 0; i < checkedElements.length; i++) {
        Object checkedElement = checkedElements[i];
        if (checkedElement instanceof InsertDataNode) {
            InsertDataNode insertDataNode = (InsertDataNode) checkedElement;
            Activator.getDefault().getPreferenceStore().putValue(
                    insertDataNode.getBindingName() + insertDataNode.getPurpose(),
                    insertDataNode.getWidgetType().getName());
            if (!InsertWidgetWizardUtil.isAnEmbedRecord(insertDataNode)
                    && !InsertWidgetWizardUtil.isAPrimitiveArrayInRecord(insertDataNode)) {
                insertDataNode.setGen(true);
                if (insertDataNode.getWidgetName() == null) {
                    insertDataNode.setWidgetName(insertDataNode.getDefaultWidgetName());
                }/*from   w  w  w . j a v  a 2  s  . co m*/
            }
        }
    }

    //generate
    TreeItem[] treeItems = configureWidgetsTableViewer.getTree().getItems();
    if (treeItems != null && treeItems.length > 0) {
        TreeItem firstTreeItem = treeItems[0];
        if (firstTreeItem.getData() instanceof InsertDataNode) {
            InsertDataNode rootInsertDataNode = (InsertDataNode) firstTreeItem.getData();
            if (rootInsertDataNode.isGen()) {
                IProgressService progressService = PlatformUI.getWorkbench().getProgressService();
                try {
                    progressService.runInUI(PlatformUI.getWorkbench().getProgressService(),
                            new GenerationProgress(rootInsertDataNode, evDesignOverlay, dropLocation),
                            ResourcesPlugin.getWorkspace().getRoot());
                } catch (InvocationTargetException e) {
                    Activator.getDefault().getLog().log(new Status(Status.ERROR, Activator.PLUGIN_ID,
                            "InvocationTargetException while insert widget.", e));
                } catch (InterruptedException e) {
                    Activator.getDefault().getLog().log(new Status(Status.ERROR, Activator.PLUGIN_ID,
                            "InterruptedException while insert widget.", e));
                }
            }
        }
    }

    return true;
}

From source file:org.eclipse.emf.converter.ui.contribution.base.ModelConverterPackagePage.java

License:Open Source License

protected void referencedGenModelsAddSelected(CheckboxTreeViewer treeViewer) {
    IPath path = null;/*from  ww  w . ja v  a  2s. c  om*/
    Resource resource = getModelConverter().getGenModel().eResource();
    if (resource != null) {
        if (resource.getURI().isPlatformResource()) {
            path = new Path(resource.getURI().toPlatformString(true)).makeAbsolute();
        }
    }
    final IPath genModelPath = path;

    ResourceSet resourceSet = null;
    List<GenModel> genModels = new UniqueEList.FastCompare<GenModel>();
    final Set<URI> genModelURIs = new HashSet<URI>();
    Object input = treeViewer.getInput();
    if (input instanceof ItemProvider) {
        Collection<?> elements = ((ItemProvider) input).getChildren();
        for (Object element : elements) {
            if (element instanceof GenModel) {
                GenModel genModel = (GenModel) element;
                URI genModelURI = genModel.eResource().getURI();
                genModels.add(genModel);
                genModelURIs.add(genModelURI);
                if (resourceSet == null && genModelURI.isPlatformResource()) {
                    resourceSet = genModel.eResource().getResourceSet();
                }
            }
        }
    }

    ViewerFilter genModelFilter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof IFile) {
                IFile file = (IFile) element;
                URI uri = URI.createPlatformResourceURI(file.getFullPath().toString(), true);
                String fileExtension = file.getFileExtension();
                return ("genmodel".equals(fileExtension) || "xcore".equals(fileExtension))
                        && !file.getFullPath().equals(genModelPath) && !genModelURIs.contains(uri);
            }
            return true;
        }
    };

    IFile[] files = WorkspaceResourceDialog.openFileSelection(getShell(), null,
            ConverterPlugin.INSTANCE.getString("_UI_SelectGenModel_message"), true, null,
            Collections.singletonList(genModelFilter));

    if (files.length > 0) {
        ResourceSet referencedGenModels = resourceSet != null ? resourceSet
                : getModelConverter().createResourceSet();

        for (int i = 0; i < files.length; ++i) {
            URI genModelURI = URI.createPlatformResourceURI(files[i].getFullPath().toString(), true);
            Resource genModelResource = referencedGenModels.getResource(genModelURI, true);
            GenModel genModel = (GenModel) EcoreUtil.getObjectByType(genModelResource.getContents(),
                    GenModelPackage.Literals.GEN_MODEL);
            genModels.add(genModel);
        }

        addExternalGenModels(genModels);
        addReferencedGenModels(genModels);

        List<GenPackage> genPackagesToCheck = new ArrayList<GenPackage>();
        Object[] checkedElements = treeViewer.getCheckedElements();
        LOOP: for (int i = 0; i < checkedElements.length; i++) {
            if (checkedElements[i] instanceof GenPackage) {
                GenPackage checkedGenPackage = (GenPackage) checkedElements[i];
                String nsURI = checkedGenPackage.getNSURI();
                for (GenModel genModel : genModels) {
                    for (GenPackage genPackage : genModel.getGenPackages()) {
                        if (nsURI.equals(genPackage.getNSURI())) {
                            genPackagesToCheck.add(genPackage);
                            continue LOOP;
                        }
                    }
                }
            }
        }
        treeViewer.getTree().deselectAll();
        treeViewer.cancelEditing();
        treeViewer.setInput(new ItemProvider(genModels));
        for (Iterator<?> i = genModels.iterator(); i.hasNext();) {
            treeViewer.expandToLevel(i.next(), AbstractTreeViewer.ALL_LEVELS);
        }
        treeViewer.setCheckedElements(genPackagesToCheck.toArray());
        referencedGenModelsCheckboxTreeViewerCheckStateChanged(null);
    }
}

From source file:org.eclipse.tcf.internal.cdt.ui.breakpoints.TCFThreadFilterEditor.java

License:Open Source License

protected void doStore() {
    IDialogSettings settings = getDialogSettings(true);
    String scopedExpression = getScopeExpression();
    if (scopedExpression.length() != 0)
        updateExpressionsDialogSettings(settings, scopedExpression);
    TCFBreakpointScopeExtension filterExtension = fPage.getFilterExtension();
    if (filterExtension == null)
        return;/*from  ww  w  .j ava2s  .co  m*/
    filterExtension.setPropertiesFilter(scopedExpression);

    CheckboxTreeViewer viewer = getThreadViewer();
    Object[] elements = viewer.getCheckedElements();
    String[] threadIds = null;
    List<String> checkedIds = new ArrayList<String>();
    for (int i = 0; i < elements.length; ++i) {
        if (elements[i] instanceof Context) {
            Context ctx = (Context) elements[i];
            if (!viewer.getGrayed(ctx)) {
                checkedIds.add(ctx.fScopeId);
            }
        }
    }
    if (checkedIds.size() != fFilteredContexts.size()) {
        threadIds = checkedIds.toArray(new String[checkedIds.size()]);
    }
    filterExtension.setThreadFilter(threadIds);
}

From source file:org.eclipse.tm.internal.tcf.cdt.ui.breakpoints.TCFThreadFilterEditor.java

License:Open Source License

protected void doStore() {
    CheckboxTreeViewer viewer = getThreadViewer();
    Object[] elements = viewer.getCheckedElements();
    String[] threadIds;/*from ww w  . j av a2 s . co  m*/
    List<String> checkedIds = new ArrayList<String>();
    for (int i = 0; i < elements.length; ++i) {
        if (elements[i] instanceof Context) {
            Context ctx = (Context) elements[i];
            if (!viewer.getGrayed(ctx)) {
                checkedIds.add(ctx.fScopeId);
            }
        }
    }
    if (checkedIds.size() == fContexts.size()) {
        threadIds = null;
    } else {
        threadIds = checkedIds.toArray(new String[checkedIds.size()]);
    }
    TCFBreakpointScopeExtension filterExtension = fPage.getFilterExtension();
    if (filterExtension == null) {
        return;
    }
    filterExtension.setThreadFilter(threadIds);
    DebugPlugin.getDefault().getBreakpointManager().fireBreakpointChanged(fPage.getBreakpoint());
}