Example usage for org.eclipse.jface.viewers TreeViewerColumn getColumn

List of usage examples for org.eclipse.jface.viewers TreeViewerColumn getColumn

Introduction

In this page you can find the example usage for org.eclipse.jface.viewers TreeViewerColumn getColumn.

Prototype

public TreeColumn getColumn() 

Source Link

Usage

From source file:com.arm.cmsis.pack.installer.ui.views.ExamplesView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    fPacksExamplesViewFilter = PacksExamplesViewFilter.getInstance();
    PatternFilter patternFilter = new PatternFilter() {
        @Override//from ww w. j  a  va 2 s .c o m
        protected boolean isLeafMatch(final Viewer viewer, final Object element) {
            TreeViewer treeViewer = (TreeViewer) viewer;
            boolean isMatch = false;
            ColumnLabelProvider labelProvider = (ColumnLabelProvider) treeViewer.getLabelProvider(0);
            String labelText = labelProvider.getText(element);
            isMatch |= wordMatches(labelText);
            return isMatch;
        }
    };
    patternFilter.setIncludeLeadingWildcard(true);
    fExamplesViewFilters = new ViewerFilter[] { patternFilter, fPacksExamplesViewFilter };

    fTree = new FilteredTree(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL,
            patternFilter, true);
    fTree.setInitialText(Messages.ExamplesView_SearchExample);
    fViewer = fTree.getViewer();
    Tree tree = fViewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    // ------ Start Setting ALL Columns for the Examples View
    // ------ First Column
    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column0.getColumn().setText(CmsisConstants.EXAMPLE_TITLE);
    column0.getColumn().setWidth(300);
    column0.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object element) {
            ICpExample e = ((IRteExampleItem) element).getExample();

            return e.getId();
        }

        @Override
        public String getToolTipText(Object element) {
            ICpExample e = ((IRteExampleItem) element).getExample();

            return constructExampleTooltipText(e);
        }
    });

    // ------ Second Column
    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(CmsisConstants.ACTION_TITLE);
    column1.getColumn().setWidth(90);
    fColumnAdvisor = new ExamplesViewColumnAdvisor(fViewer);
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLBUTTON));

    // ------ Third Column
    TreeViewerColumn column2 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column2.getColumn().setText(CmsisConstants.DESCRIPTION_TITLE);
    column2.getColumn().setWidth(400);
    column2.setLabelProvider(new ColumnLabelProvider() {

        @Override
        public String getText(Object obj) {
            IRteExampleItem example = getRteExampleItem(obj);
            if (example != null) {
                return example.getExample().getDescription();
            }
            return null;
        }
    });
    // ------ End Setting ALL Columns for the Examples View

    fViewer.setContentProvider(new TreeObjectContentProvider());
    fViewer.setComparator(new ExampleTreeColumnComparator(fViewer, fColumnAdvisor));
    refresh();

    ColumnViewerToolTipSupport.enableFor(fViewer);

    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(fViewer.getControl(), IHelpContextIds.EXAMPLES_VIEW);

    getSite().setSelectionProvider(fViewer);

    hookViewSelection();

    makeActions();
    contributeToActionBars();

    CpInstallerPlugInUI.registerViewPart(this);

    fViewer.setFilters(fExamplesViewFilters);

    CpPlugIn.addRteListener(this);
}

From source file:com.arm.cmsis.pack.installer.ui.views.PacksView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    fPacksExamplesViewFilter = PacksExamplesViewFilter.getInstance();
    PatternFilter patternFilter = new PatternFilter() {
        @Override/*from ww  w  . j  av  a  2  s . c  om*/
        protected boolean isLeafMatch(final Viewer viewer, final Object element) {
            TreeViewer treeViewer = (TreeViewer) viewer;
            boolean isMatch = false;
            ColumnLabelProvider labelProvider = (ColumnLabelProvider) treeViewer.getLabelProvider(0);
            String labelText = labelProvider.getText(element);
            isMatch |= wordMatches(labelText);
            return isMatch;
        }
    };
    patternFilter.setIncludeLeadingWildcard(true);
    fPacksViewFilters = new ViewerFilter[] { patternFilter, fPacksExamplesViewFilter };

    fTree = new FilteredTree(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL,
            patternFilter, true);
    fTree.setInitialText(Messages.PacksView_SearchPack);
    fViewer = fTree.getViewer();
    Tree tree = fViewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    //------ Start Setting ALL Columns for the Packs View
    //------ First Column
    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column0.getColumn().setText(CmsisConstants.PACK_TITLE);
    column0.getColumn().setWidth(250);
    column0.setLabelProvider(fColumnLabelProviderWithImage);

    //------ Second Column
    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(CmsisConstants.ACTION_TITLE);
    column1.getColumn().setWidth(90);
    fColumnAdvisor = new PacksViewColumnAdvisor(fViewer);
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLBUTTON));

    //------ Third Column
    TreeViewerColumn column2 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column2.getColumn().setText(CmsisConstants.DESCRIPTION_TITLE);
    column2.getColumn().setWidth(400);
    column2.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object obj) {
            ICpItem item = getCpItem(obj);
            if (item == null) {
                return null;
            }
            // Add selection string on the first line
            if (item instanceof ICpPackCollection) {
                if (CmsisConstants.DEVICE_SPECIFIC.equals(item.getTag())) {
                    String filterString = fPacksExamplesViewFilter.getFilterString();
                    return filterString == null ? null : filterString + Messages.PacksView_Selected;
                } else if (CmsisConstants.GENERIC.equals(item.getTag())) {
                    return Messages.PacksView_GenericPacksDescription;
                }
            }

            if (item instanceof ICpPackFamily) {
                ICpPackFamily packFamily = (ICpPackFamily) item;
                if (CmsisConstants.ERRORS.equals(packFamily.getTag())) {
                    return Messages.PacksView_CannotLoadPdscFiles;
                }
                return formatDescription(item.getDescription());
            }

            if (CmsisConstants.RELEASE_TAG.equals(item.getTag())) {
                return formatDescription(item.getText());
            } else if (CmsisConstants.PREVIOUS.equals(item.getTag())) {
                return item.getPackFamilyId() + Messages.PacksView_PreviousPackVersions;
            }

            ICpPack pack = item.getPack();
            if (pack.getPackState() != PackState.ERROR) {
                for (ICpItem cpItem : pack.getGrandChildren(CmsisConstants.RELEASES_TAG)) {
                    if (cpItem.getAttribute(CmsisConstants.VERSION).equals(pack.getVersion())) {
                        return formatDescription(cpItem.getText());
                    }
                }
            } else {
                return Messages.PacksView_Location + pack.getFileName();
            }
            return null;
        }

        // Due to the multi-line table cell in Linux, we
        // only use the first line when OS is Linux
        private String formatDescription(String description) {
            boolean isWinOS = System.getProperty("os.name").startsWith("Windows"); //$NON-NLS-1$ //$NON-NLS-2$
            return isWinOS ? description : description.split("\\r?\\n")[0]; //$NON-NLS-1$
        }
    });
    //------ End Setting ALL Columns for the Packs View

    fViewer.setContentProvider(new PacksViewContentProvider());
    fViewer.setComparator(new PackTreeColumnComparator(fViewer, fColumnAdvisor));
    fViewer.setAutoExpandLevel(2);
    refresh();

    ColumnViewerToolTipSupport.enableFor(fViewer);

    // Create the help context id for the viewer's control
    PlatformUI.getWorkbench().getHelpSystem().setHelp(fViewer.getControl(), IHelpContextIds.PACKS_VIEW);

    getSite().setSelectionProvider(fViewer);

    makeActions();
    hookViewSelection();
    hookContextMenu();
    hookDoubleClickAction();
    contributeToActionBars();

    CpInstallerPlugInUI.registerViewPart(this);

    fViewer.setFilters(fPacksViewFilters);

    CpPlugIn.addRteListener(this);
}

From source file:com.arm.cmsis.pack.project.wizards.CmsisCodeTemplateNewWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NULL);
    GridLayout layout = new GridLayout();
    container.setLayout(layout);//from ww  w . jav a2s  . c  o m
    layout.numColumns = 3;
    //layout.verticalSpacing = 5;

    Label label = new Label(container, SWT.NULL);
    label.setText(Messages.CmsisCodeTemplateNewWizardPage_Project);
    projectText = new Text(container, SWT.BORDER | SWT.SINGLE);
    projectText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    projectText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            projectChanged();
        }
    });
    projectBrowse = new Button(container, SWT.PUSH);
    projectBrowse.setText(Messages.CmsisCodeTemplate_Browse);
    projectBrowse.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            handleProjectBrowse();
        }
    });

    fViewer = new TreeViewer(container,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL);
    Tree tree = fViewer.getTree();
    GridData gd_tree = new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1);
    gd_tree.heightHint = 300;
    tree.setLayoutData(gd_tree);
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);
    tree.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Object obj = e.item.getData();
            if (obj instanceof ICpCodeTemplate) {
                selectedCodeTemplate = (ICpCodeTemplate) obj;
                String[] codeTemplates = selectedCodeTemplate.getCodeTemplates();
                if (codeTemplates.length == 0) {
                    fileText.setEditable(false);
                    fileText.setText(CmsisConstants.EMPTY_STRING);
                    return;
                }
                fileText.setEditable(true);
                StringBuilder sb = new StringBuilder(Utils.extractFileName(codeTemplates[0]));
                for (int i = 1; i < codeTemplates.length; i++) {
                    fileText.setEditable(false);
                    sb.append(' ');
                    sb.append(Utils.extractFileName(codeTemplates[i]));
                }
                fileText.setText(sb.toString());
            }
        }
    });

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column0.getColumn().setText(Messages.CmsisCodeTemplate_Component);
    column0.getColumn().setWidth(200);
    column0.setLabelProvider(new ComponentColumnLabelProvider());

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(Messages.CmsisCodeTemplate_Name);
    column1.getColumn().setWidth(320);
    column1.setLabelProvider(new NameColumnLabelProvider());

    fViewer.setContentProvider(new CodeTemplateContentProvider());

    IRteProject rteProject = getRteProject();
    if (rteProject != null) {
        ICpCodeTemplate codeTemplate = rteProject.getRteConfiguration().getCmsisCodeTemplate();
        fViewer.setInput(codeTemplate);
        fViewer.getControl().setFocus();
    }

    label = new Label(container, SWT.NULL);
    label.setText(Messages.CmsisCodeTemplate_Location);
    containerText = new Text(container, SWT.BORDER | SWT.SINGLE);
    containerText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    containerText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            dialogChanged();
        }
    });
    containerBrowse = new Button(container, SWT.PUSH);
    containerBrowse.setText(Messages.CmsisCodeTemplate_Browse);
    containerBrowse.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            handleContainerBrowse();
        }
    });

    label = new Label(container, SWT.NULL);
    label.setText(Messages.CmsisCodeTemplate_FileName);
    fileText = new Text(container, SWT.BORDER | SWT.SINGLE);
    fileText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    fileText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            dialogChanged();
        }
    });

    initialize();
    projectChanged();
    setControl(container);
    new Label(container, SWT.NONE);
    PlatformUI.getWorkbench().getHelpSystem().setHelp(parent.getParent(), IHelpContextIds.CODE_TEMPLATE_WIZARD);
}

From source file:com.arm.cmsis.pack.ui.widgets.RteComponentSelectorWidget.java

License:Open Source License

@Override
public Composite createControl(Composite parent) {

    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);//w  w w  . ja  v a 2s . c o  m
    tree.setLinesVisible(true);
    viewer = new TreeViewer(tree);
    ColumnViewerToolTipSupport.enableFor(viewer);
    fColumnAdvisor = new RteComponentColumnAdvisor(viewer);

    // Tree item name
    TreeViewerColumn column0 = new TreeViewerColumn(viewer, SWT.LEFT);
    column0.getColumn().setAlignment(SWT.LEFT);
    column0.getColumn().setText(CpStringsUI.RteComponentTreeWidget_SoftwareComponents);
    column0.getColumn().setWidth(180);
    column0.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 0));
    AdvisedCellLabelProvider col0LabelProvider = new AdvisedCellLabelProvider(fColumnAdvisor, 0);
    // workaround jface bug: first owner-draw column is not correctly painted when column is resized
    col0LabelProvider.setOwnerDrawEnabled(false);
    column0.setLabelProvider(col0LabelProvider);

    // Check box for selection
    TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.CENTER);
    column1.getColumn().setAlignment(SWT.CENTER);
    column1.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Sel);
    column1.getColumn().setWidth(35);
    column1.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 1));
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 1));

    // Variant
    TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column2.getColumn().setAlignment(SWT.LEFT);
    column2.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Variant);
    column2.getColumn().setWidth(110);
    column2.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 2));
    column2.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 2));

    // Vendor
    TreeViewerColumn column3 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column3.getColumn().setAlignment(SWT.LEFT);
    column3.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Vendor);
    column3.getColumn().setWidth(110);
    column3.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 3));
    column3.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 3));

    // Version
    TreeViewerColumn column4 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column4.getColumn().setAlignment(SWT.LEFT);
    column4.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Version);
    column4.getColumn().setWidth(70);
    column4.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 4));
    column4.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 4));

    // Description/URL
    TreeViewerColumn column5 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column5.getColumn().setAlignment(SWT.LEFT);
    column5.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Description);
    column5.getColumn().setWidth(400);
    column5.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, 5));
    column5.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 5));

    RteComponentContentProvider rteContentProvider = new RteComponentContentProvider();
    viewer.setContentProvider(rteContentProvider);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalSpan = 2;
    tree.setLayoutData(gridData);

    if (getModelController() != null) {
        viewer.setInput(getModelController());
    }
    hookContextMenu();
    return tree;
}

From source file:com.arm.cmsis.pack.ui.widgets.RtePackSelectorWidget.java

License:Open Source License

@Override
public Composite createControl(Composite parent) {
    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);/*from w w w.  java2  s .c  o m*/
    viewer = new TreeViewer(tree);
    ColumnViewerToolTipSupport.enableFor(viewer);

    // Tree item name
    TreeViewerColumn column0 = new TreeViewerColumn(viewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column0.getColumn().setAlignment(SWT.LEFT);
    column0.getColumn().setText(CpStrings.Pack);
    column0.getColumn().setWidth(180);
    fColumnAdvisor = new RtePackSelectorColumnAdvisor(viewer);
    column0.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, COLPACK));
    AdvisedCellLabelProvider col0LabelProvider = new AdvisedCellLabelProvider(fColumnAdvisor, COLPACK);
    // workaround jface bug: first owner-draw column is not correctly painted when column is resized
    col0LabelProvider.setOwnerDrawEnabled(false);
    column0.setLabelProvider(col0LabelProvider);

    // Check/menu box for selection
    TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column1.getColumn().setAlignment(SWT.LEFT);
    column1.getColumn().setText(CpStrings.Selection);
    column1.getColumn().setWidth(100);
    column1.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, COLSEL));
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLSEL));

    // Version
    TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column2.getColumn().setAlignment(SWT.LEFT);
    column2.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Version);
    column2.getColumn().setWidth(70);
    column2.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, COLVERSION));
    column2.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLVERSION));

    // Description/URL
    TreeViewerColumn column3 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column3.getColumn().setAlignment(SWT.LEFT);
    column3.getColumn().setText(CpStringsUI.RteComponentTreeWidget_Description);
    column3.getColumn().setWidth(400);
    column3.setEditingSupport(new AdvisedEditingSupport(viewer, fColumnAdvisor, COLDESCR));
    column3.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLDESCR));

    viewer.setContentProvider(new RtePackProvider());

    GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalSpan = 2;
    tree.setLayoutData(gridData);

    //      hookContextMenu();
    return tree;
}

From source file:com.arm.cmsis.pack.ui.widgets.RteValidateWidget.java

License:Open Source License

@Override
public Composite createControl(Composite parent) {

    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);// www  . j  av a  2  s . c  o m
    fViewer = new TreeViewer(tree);
    ColumnViewerToolTipSupport.enableFor(fViewer);
    fColumnAdvisor = new RteValidateColumnAdvisor(fViewer);

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column0.getColumn().setAlignment(SWT.LEFT);
    column0.getColumn().setText(CpStringsUI.RteValidateWidget_ValidationOutput);
    column0.getColumn().setWidth(400);
    column0.setEditingSupport(new AdvisedEditingSupport(fViewer, fColumnAdvisor, 0));

    fViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleTreeSelectionChanged(event);
        }
    });

    AdvisedCellLabelProvider col0LabelProvider = new AdvisedCellLabelProvider(fColumnAdvisor, 0);
    // workaround jface bug: first owner-draw column is not correctly painted when column is resized
    col0LabelProvider.setOwnerDrawEnabled(false);
    column0.setLabelProvider(col0LabelProvider);

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.RIGHT);
    column1.getColumn().setAlignment(SWT.LEFT);
    column1.getColumn().setText(CpStringsUI.RteValidateWidget_Description);
    column1.getColumn().setWidth(500);
    column1.setEditingSupport(new AdvisedEditingSupport(fViewer, fColumnAdvisor, 1));
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, 1));

    RteValidateContentProvider validateProvider = new RteValidateContentProvider();
    fViewer.setContentProvider(validateProvider);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    tree.setLayoutData(gridData);

    if (getModelController() != null) {
        fViewer.setInput(getModelController());
    }
    return tree;
}

From source file:com.arm.cmsis.pack.widgets.RteComponentTreeWidget.java

License:Apache License

/**
 * Create a widget containing the RTE component
 * @param parent a parent composite containing this RTE component tree widget
 *///  w w  w. j  av a2s.  c o m
public void createControl(Composite parent) {

    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);
    viewer = new TreeViewer(tree);
    ColumnViewerToolTipSupport.enableFor(viewer);

    // Tree item name
    TreeViewerColumn column0 = new TreeViewerColumn(viewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column0.getColumn().setAlignment(SWT.LEFT);
    column0.getColumn().setText(SOFTWARECOMPONENT);
    column0.getColumn().setWidth(180);
    IColumnAdvisor columnAdvisor = new ColumnAdvisor();
    column0.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 0));
    AdvisedCellLabelProvider col0LabelProvider = new AdvisedCellLabelProvider(columnAdvisor, 0);
    // workaround jface bug: first owner-draw column is not correctly painted when column is resized
    col0LabelProvider.setOwnerDrawEnabled(false);
    column0.setLabelProvider(col0LabelProvider);

    // Check box for selection
    TreeViewerColumn column1 = new TreeViewerColumn(viewer, SWT.CENTER);
    tree.setLinesVisible(true);
    column1.getColumn().setAlignment(SWT.CENTER);
    column1.getColumn().setText("Sel.");
    column1.getColumn().setWidth(35);
    column1.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 1));
    column1.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 1));

    // Variant
    TreeViewerColumn column2 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column2.getColumn().setAlignment(SWT.LEFT);
    column2.getColumn().setText("Variant");
    column2.getColumn().setWidth(110);
    column2.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 2));
    column2.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 2));

    // Vendor
    TreeViewerColumn column3 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column3.getColumn().setAlignment(SWT.LEFT);
    column3.getColumn().setText("Vendor");
    column3.getColumn().setWidth(110);
    column3.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 3));
    column3.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 3));

    // Version
    TreeViewerColumn column4 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column4.getColumn().setAlignment(SWT.LEFT);
    column4.getColumn().setText("Version");
    column4.getColumn().setWidth(70);
    column4.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 4));
    column4.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 4));

    // Description/URL
    TreeViewerColumn column5 = new TreeViewerColumn(viewer, SWT.RIGHT);
    column5.getColumn().setAlignment(SWT.LEFT);
    column5.getColumn().setText("Description");
    column5.getColumn().setWidth(400);
    column5.setEditingSupport(new AdvisedEditingSupport(viewer, columnAdvisor, 5));
    column5.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 5));

    RteContentProvider rteContentProvider = new RteContentProvider();
    viewer.setContentProvider(rteContentProvider);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalSpan = 2;
    tree.setLayoutData(gridData);

    if (getConfiguration() != null) {
        viewer.setInput(getConfiguration().getComponents());
    }
}

From source file:com.arm.cmsis.pack.widgets.RteValidateWidget.java

License:Apache License

public void createControl(Composite parent) {

    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    tree.setHeaderVisible(true);//  w w w  .j  a  v a2 s.c o m
    fViewer = new TreeViewer(tree);
    ColumnViewerToolTipSupport.enableFor(fViewer);

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    tree.setLinesVisible(true);
    column0.getColumn().setAlignment(SWT.LEFT);
    column0.getColumn().setText("Validation Output");
    column0.getColumn().setWidth(500);
    IColumnAdvisor columnAdvisor = new ColumnAdvisor();
    column0.setEditingSupport(new AdvisedEditingSupport(fViewer, columnAdvisor, 0));

    fViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            handleTreeSelectionChanged(event);
        }
    });

    AdvisedCellLabelProvider col0LabelProvider = new AdvisedCellLabelProvider(columnAdvisor, 0);
    // workaround jface bug: first owner-draw column is not correctly painted when column is resized
    col0LabelProvider.setOwnerDrawEnabled(false);
    column0.setLabelProvider(col0LabelProvider);

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.RIGHT);
    column1.getColumn().setAlignment(SWT.LEFT);
    column1.getColumn().setText("Description");
    column1.getColumn().setWidth(500);
    column1.setEditingSupport(new AdvisedEditingSupport(fViewer, columnAdvisor, 1));
    column1.setLabelProvider(new AdvisedCellLabelProvider(columnAdvisor, 1));

    ValidateProvider validateProvider = new ValidateProvider();
    fViewer.setContentProvider(validateProvider);

    GridData gridData = new GridData();
    gridData.horizontalAlignment = SWT.FILL;
    gridData.verticalAlignment = SWT.FILL;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    tree.setLayoutData(gridData);

    if (getConfiguration() != null) {
        fViewer.setInput(getConfiguration());
    }

}

From source file:com.bdaum.zoom.peer.internal.preferences.PeerPreferencePage.java

License:Open Source License

@SuppressWarnings("unused")
private Control createSharedGroup(CTabFolder parent) {
    Composite comp = new Composite(parent, SWT.NONE);
    comp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    comp.setLayout(new GridLayout());
    Composite innerComp = new Composite(comp, SWT.NONE);
    GridLayout layout = new GridLayout(2, false);
    layout.marginWidth = 0;/*  w ww .ja v  a 2  s  .co m*/
    layout.marginHeight = 20;
    innerComp.setLayout(layout);
    innerComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    Label label = new Label(innerComp, SWT.WRAP);
    label.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false, 2, 1));
    label.setText(Messages.PeerPreferencePage_shared_cats_msg);

    catViewer = new TreeViewer(innerComp, SWT.FULL_SELECTION | SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL);
    catViewer.getTree().setLinesVisible(true);
    catViewer.getTree().setHeaderVisible(true);
    catViewer.getTree().setLayoutData(new GridData(SWT.BEGINNING, SWT.FILL, false, true));
    TreeViewerColumn col1 = new TreeViewerColumn(catViewer, SWT.NONE);
    col1.getColumn().setWidth(400);
    col1.getColumn().setText(Messages.PeerPreferencePage_path);
    col1.setLabelProvider(ZColumnLabelProvider.getDefaultInstance());
    TreeViewerColumn col2 = new TreeViewerColumn(catViewer, SWT.NONE);
    col2.getColumn().setWidth(200);
    col2.getColumn().setText(Messages.PeerPreferencePage_privacy);
    col2.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof SharedCatalog)
                return translatePrivacy(((SharedCatalog) element).getPrivacy());
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getRightsLabel();
            return ""; //$NON-NLS-1$
        }
    });
    col1.setEditingSupport(new EditingSupport(catViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setHost(((PeerDefinition) value).getHost());
                ((PeerDefinition) element).setPort(((PeerDefinition) value).getPort());
                catViewer.update(element, null);
                validate();
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(catViewer.getTree()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, true, true, true);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return (element instanceof PeerDefinition);
        }
    });
    col2.setEditingSupport(new EditingSupport(catViewer) {
        @Override
        protected void setValue(Object element, Object value) {
            if (element instanceof SharedCatalog && value instanceof Integer) {
                ((SharedCatalog) element).setPrivacy((Integer) value);
                catViewer.update(element, null);
            } else if (element instanceof PeerDefinition && value instanceof PeerDefinition) {
                ((PeerDefinition) element).setRights(((PeerDefinition) value).getRights());
                catViewer.update(element, null);
            }
        }

        @Override
        protected Object getValue(Object element) {
            if (element instanceof SharedCatalog)
                return ((SharedCatalog) element).getPrivacy();
            if (element instanceof PeerDefinition)
                return element;
            return null;
        }

        @Override
        protected CellEditor getCellEditor(final Object element) {
            if (element instanceof SharedCatalog) {
                ComboBoxViewerCellEditor editor = new ComboBoxViewerCellEditor(catViewer.getTree());
                editor.setLabelProvider(new LabelProvider() {
                    @Override
                    public String getText(Object element) {
                        return translatePrivacy(((Integer) element));
                    }
                });
                editor.setContentProvider(ArrayContentProvider.getInstance());
                editor.setInput(((SharedCatalog) element).getRestrictions().isEmpty()
                        ? new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE,
                                QueryField.SAFETY_SAFE, QueryField.SAFETY_LOCAL }
                        : new Integer[] { QueryField.SAFETY_RESTRICTED, QueryField.SAFETY_MODERATE,
                                QueryField.SAFETY_SAFE });
                return editor;
            }
            if (element instanceof PeerDefinition) {
                return new DialogCellEditor(catViewer.getTree()) {
                    @Override
                    protected Object openDialogBox(Control cellEditorWindow) {
                        PeerDefinitionDialog dialog = new PeerDefinitionDialog(cellEditorWindow.getShell(),
                                (PeerDefinition) element, false, true, false);
                        if (dialog.open() == Window.OK)
                            return dialog.getResult();
                        return null;
                    }

                    @Override
                    protected void updateContents(Object value) {
                        if (value instanceof PeerDefinition)
                            super.updateContents(((PeerDefinition) value).getRightsLabel());
                    }
                };
            }
            return null;
        }

        @Override
        protected boolean canEdit(Object element) {
            return true;
        }
    });
    catViewer.setContentProvider(new ITreeContentProvider() {

        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public void dispose() {
            // do nothing
        }

        public boolean hasChildren(Object element) {
            if (element instanceof SharedCatalog)
                return !((SharedCatalog) element).getRestrictions().isEmpty();
            return false;
        }

        public Object getParent(Object element) {
            if (element instanceof PeerDefinition)
                return ((PeerDefinition) element).getParent();
            return null;
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof Collection<?>)
                return ((Collection<?>) inputElement).toArray();
            return EMPTY;
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof SharedCatalog)
                return ((SharedCatalog) parentElement).getRestrictions().toArray();
            return EMPTY;
        }
    });
    new SortColumnManager(catViewer, new int[] { SWT.UP, SWT.NONE }, 0);
    catViewer.setComparator(ZViewerComparator.INSTANCE);
    UiUtilities.installDoubleClickExpansion(catViewer);
    Composite buttonGroup = new Composite(innerComp, SWT.NONE);
    buttonGroup.setLayoutData(new GridData(SWT.END, SWT.BEGINNING, false, true));
    buttonGroup.setLayout(new GridLayout());
    addCurrentButton = new Button(buttonGroup, SWT.PUSH);
    addCurrentButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addCurrentButton.setText(Messages.PeerPreferencePage_add_current);
    addCurrentButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            String catFile = Core.getCore().getDbManager().getFileName();
            SharedCatalog cat = new SharedCatalog(catFile, QueryField.SAFETY_RESTRICTED);
            @SuppressWarnings("unchecked")
            List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
            catalogs.add(cat);
            catViewer.setInput(catalogs);
            catViewer.setSelection(new StructuredSelection(cat));
            updateButtons();
        }
    });

    final Button addButton = new Button(buttonGroup, SWT.PUSH);
    addButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addButton.setText(Messages.PeerPreferencePage_add);
    addButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            FileDialog dialog = new FileDialog(getShell(), SWT.OPEN);
            dialog.setFileName(Core.getCore().getDbManager().getFileName());
            String filename = dialog.open();
            if (filename != null) {
                SharedCatalog cat = new SharedCatalog(filename, QueryField.SAFETY_RESTRICTED);
                @SuppressWarnings("unchecked")
                List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
                catalogs.add(cat);
                catViewer.setInput(catalogs);
                catViewer.setSelection(new StructuredSelection(cat));
            }
        }
    });
    addRestrictionButton = new Button(buttonGroup, SWT.PUSH);
    addRestrictionButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    addRestrictionButton.setText(Messages.PeerPreferencePage_add_restriction);
    addRestrictionButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection selection = (IStructuredSelection) catViewer.getSelection();
            Object firstElement = selection.getFirstElement();
            if (firstElement instanceof SharedCatalog) {
                PeerDefinitionDialog dialog = new PeerDefinitionDialog(getControl().getShell(), null, true,
                        true, true);
                if (dialog.open() == PeerDefinitionDialog.OK) {
                    PeerDefinition result = dialog.getResult();
                    result.setParent((SharedCatalog) firstElement);
                    catViewer.setInput(catViewer.getInput());
                    catViewer.expandToLevel(firstElement, 1);
                    catViewer.setSelection(new StructuredSelection(result));
                    validate();
                }
            }
        }
    });
    removeCatButton = new Button(buttonGroup, SWT.PUSH);
    removeCatButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
    removeCatButton.setText(Messages.PeerPreferencePage_remove);
    removeCatButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            IStructuredSelection sel = (IStructuredSelection) catViewer.getSelection();
            Object firstElement = sel.getFirstElement();
            if (firstElement instanceof SharedCatalog) {
                @SuppressWarnings("unchecked")
                List<SharedCatalog> catalogs = (List<SharedCatalog>) catViewer.getInput();
                catalogs.remove(firstElement);
                catViewer.setInput(catalogs);
                validate();
                updateButtons();
            }
        }
    });
    catViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            updateButtons();
        }
    });
    return comp;
}

From source file:com.bdaum.zoom.ui.internal.dialogs.AlbumSelectionDialog.java

License:Open Source License

@SuppressWarnings("unused")
@Override//from ww  w. ja  v  a 2s. co  m
protected Control createDialogArea(final Composite parent) {
    Composite area = (Composite) super.createDialogArea(parent);
    Composite composite = new Composite(area, SWT.NONE);
    composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
    composite.setLayout(new GridLayout());
    composite.setLayout(new GridLayout(2, false));
    viewer = new CheckboxTreeViewer(composite, SWT.BORDER | SWT.V_SCROLL | SWT.FULL_SELECTION);
    TreeViewerColumn col1 = new TreeViewerColumn(viewer, SWT.NONE);
    col1.getColumn().setWidth(200);
    col1.getColumn().setText(Messages.AlbumSelectionDialog_name);
    col1.setLabelProvider(new ZColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof SmartCollectionImpl)
                return ((SmartCollectionImpl) element).getName();
            return element.toString();
        }
    });
    if (!small) {
        TreeViewerColumn col2 = new TreeViewerColumn(viewer, SWT.NONE);
        col2.getColumn().setWidth(250);
        col2.getColumn().setText(Messages.AlbumSelectionDialog_description);
        col2.setLabelProvider(new ZColumnLabelProvider() {
            @Override
            public String getText(Object element) {
                if (element instanceof SmartCollectionImpl)
                    return ((SmartCollectionImpl) element).getDescription();
                return element.toString();
            }
        });
        viewer.getTree().setHeaderVisible(true);
    }
    viewer.setContentProvider(new ITreeContentProvider() {
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // do nothing
        }

        public void dispose() {
            // do nothing
        }

        public boolean hasChildren(Object element) {
            if (element instanceof SmartCollection)
                return !((SmartCollection) element).getSubSelection().isEmpty();
            return false;
        }

        public Object getParent(Object element) {
            if (element instanceof SmartCollection)
                return ((SmartCollection) element).getSmartCollection_subSelection_parent();
            return null;
        }

        public Object[] getElements(Object inputElement) {
            if (inputElement instanceof List) {
                List<SmartCollection> rootalbums = new ArrayList<SmartCollection>();
                for (Object obj : (List<?>) inputElement)
                    if (obj instanceof SmartCollection) {
                        SmartCollection album = (SmartCollection) obj;
                        if (album.getSmartCollection_subSelection_parent() == null)
                            rootalbums.add(album);
                    }
                return rootalbums.toArray();
            }
            return null;
        }

        public Object[] getChildren(Object parentElement) {
            if (parentElement instanceof SmartCollection)
                return ((SmartCollection) parentElement).getSubSelection().toArray();
            return EMPTY;
        }
    });
    UiUtilities.installDoubleClickExpansion(viewer);
    viewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            validate();
        }
    });
    GridData layoutData = new GridData(SWT.FILL, SWT.FILL, true, true);
    layoutData.heightHint = small ? 150 : 400;
    viewer.getControl().setLayoutData(layoutData);
    viewer.setComparator(ZViewerComparator.INSTANCE);
    if (assignedAlbums != null && !assignedAlbums.isEmpty())
        viewer.setFilters(new ViewerFilter[] { new ViewerFilter() {
            @Override
            public boolean select(Viewer v, Object parentElement, Object element) {
                return !assignedAlbums.contains(((SmartCollectionImpl) element).getName());
            }
        } });
    viewer.addSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {
            if (cntrlDwn) {
                SmartCollectionImpl sm = (SmartCollectionImpl) ((IStructuredSelection) viewer.getSelection())
                        .getFirstElement();
                if (sm != null) {
                    CollectionEditDialog dialog = new CollectionEditDialog(getShell(), sm,
                            Messages.AlbumSelectionDialog_edit_person,
                            Messages.AlbumSelectionDialog_person_album_msg, false, true, false, false);
                    if (dialog.open() == Window.OK) {
                        final SmartCollectionImpl album = dialog.getResult();
                        if (album != null) {
                            Set<Object> toBeDeleted = new HashSet<Object>();
                            List<Object> toBeStored = new ArrayList<Object>();
                            Utilities.updateCollection(dbManager, sm, album, toBeDeleted, toBeStored);
                            dbManager.safeTransaction(toBeDeleted, toBeStored);
                        }
                        viewer.update(sm, null);
                    }
                }
                cntrlDwn = false;
            }
            validate();
        }
    });
    viewer.getControl().addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = true;
        }

        @Override
        public void keyReleased(KeyEvent e) {
            if (e.keyCode == SWT.CTRL)
                cntrlDwn = false;
        }
    });
    if (!small)
        new AllNoneGroup(composite, new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                if (e.widget.getData() == AllNoneGroup.ALL) {
                    viewer.expandAll();
                    viewer.setCheckedElements(albums.toArray());
                } else
                    viewer.setCheckedElements(EMPTY);
                validate();
            }
        });
    return area;
}