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

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

Introduction

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

Prototype

public TreeViewerColumn(TreeViewer viewer, TreeColumn column) 

Source Link

Document

Creates a new viewer column for the given TreeViewer on the given TreeColumn .

Usage

From source file:com.android.ide.eclipse.gltrace.editors.GLFunctionTraceViewer.java

License:Apache License

private void createFrameTraceView(Composite parent) {
    Composite c = new Composite(parent, SWT.NONE);
    c.setLayout(new GridLayout(2, false));
    GridData gd = new GridData(GridData.FILL_BOTH);
    c.setLayoutData(gd);//from  ww  w. j  av a  2 s  . c  o  m

    final Tree tree = new Tree(c, SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
    gd = new GridData(GridData.FILL_BOTH);
    tree.setLayoutData(gd);
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);

    mFrameTreeViewer = new TreeViewer(tree);
    CellLabelProvider labelProvider = new GLFrameLabelProvider();

    // column showing the GL context id
    TreeViewerColumn tvc = new TreeViewerColumn(mFrameTreeViewer, SWT.NONE);
    tvc.setLabelProvider(labelProvider);
    TreeColumn column = tvc.getColumn();
    column.setText("Function");
    column.setWidth(500);

    // column showing the GL function duration (wall clock time)
    tvc = new TreeViewerColumn(mFrameTreeViewer, SWT.NONE);
    tvc.setLabelProvider(labelProvider);
    column = tvc.getColumn();
    column.setText("Wall Time (ns)");
    column.setWidth(150);
    column.setAlignment(SWT.RIGHT);

    // column showing the GL function duration (thread time)
    tvc = new TreeViewerColumn(mFrameTreeViewer, SWT.NONE);
    tvc.setLabelProvider(labelProvider);
    column = tvc.getColumn();
    column.setText("Thread Time (ns)");
    column.setWidth(150);
    column.setAlignment(SWT.RIGHT);

    mFrameTreeViewer.setContentProvider(new GLFrameContentProvider());

    mGLCallFilter = new GLCallFilter();
    mFrameTreeViewer.addFilter(mGLCallFilter);

    // when the control is resized, give all the additional space
    // to the function name column.
    tree.addControlListener(new ControlAdapter() {
        @Override
        public void controlResized(ControlEvent e) {
            int w = mFrameTreeViewer.getTree().getClientArea().width;
            if (w > 200) {
                mFrameTreeViewer.getTree().getColumn(2).setWidth(100);
                mFrameTreeViewer.getTree().getColumn(1).setWidth(100);
                mFrameTreeViewer.getTree().getColumn(0).setWidth(w - 200);
            }
        }
    });

    mDurationMinimap = new DurationMinimap(c, mTrace);
    gd = new GridData(GridData.FILL_VERTICAL);
    gd.widthHint = gd.minimumWidth = mDurationMinimap.getMinimumWidth();
    mDurationMinimap.setLayoutData(gd);
    mDurationMinimap.addCallSelectionListener(new ICallSelectionListener() {
        @Override
        public void callSelected(int selectedCallIndex) {
            if (selectedCallIndex > 0 && selectedCallIndex < mTreeViewerNodes.size()) {
                TreeItem item = tree.getItem(selectedCallIndex);
                tree.select(item);
                tree.setTopItem(item);
            }
        }
    });

    mVerticalScrollBar = tree.getVerticalBar();
    mVerticalScrollBar.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            updateVisibleRange();
        }
    });
}

From source file:com.android.sdkuilib.internal.repository.sdkman2.PackagesPage.java

License:Apache License

@SuppressWarnings("unused")
private void createContents(Composite parent) {
    GridLayoutBuilder.create(parent).noMargins().columns(2);

    mGroupSdk = new Composite(parent, SWT.NONE);
    GridDataBuilder.create(mGroupSdk).hFill().vCenter().hGrab().hSpan(2);
    GridLayoutBuilder.create(mGroupSdk).columns(2);

    Label label1 = new Label(mGroupSdk, SWT.NONE);
    label1.setText("SDK Path:");

    mTextSdkOsPath = new Text(mGroupSdk, SWT.NONE);
    GridDataBuilder.create(mTextSdkOsPath).hFill().vCenter().hGrab();
    mTextSdkOsPath.setEnabled(false);/*  w  ww. j  a v  a 2  s. com*/

    mGroupPackages = new Group(parent, SWT.NONE);
    GridDataBuilder.create(mGroupPackages).fill().grab().hSpan(2);
    mGroupPackages.setText("Packages");
    GridLayoutBuilder.create(mGroupPackages).columns(1);

    mTreeViewer = new CheckboxTreeViewer(mGroupPackages, SWT.BORDER);
    mTreeViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return filterViewerItem(element);
        }
    });

    mTreeViewer.addCheckStateListener(new ICheckStateListener() {
        public void checkStateChanged(CheckStateChangedEvent event) {
            onTreeCheckStateChanged(event); //$hide$
        }
    });

    mTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            onTreeDoubleClick(event); //$hide$
        }
    });

    mTree = mTreeViewer.getTree();
    mTree.setLinesVisible(true);
    mTree.setHeaderVisible(true);
    GridDataBuilder.create(mTree).fill().grab();

    // column name icon is set when loading depending on the current filter type
    // (e.g. API level or source)
    mColumnName = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    mTreeColumnName = mColumnName.getColumn();
    mTreeColumnName.setText("Name");
    mTreeColumnName.setWidth(340);

    mColumnApi = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn2 = mColumnApi.getColumn();
    treeColumn2.setText("API");
    treeColumn2.setAlignment(SWT.CENTER);
    treeColumn2.setWidth(50);

    mColumnRevision = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn3 = mColumnRevision.getColumn();
    treeColumn3.setText("Rev.");
    treeColumn3.setToolTipText("Revision currently installed");
    treeColumn3.setAlignment(SWT.CENTER);
    treeColumn3.setWidth(50);

    mColumnStatus = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn4 = mColumnStatus.getColumn();
    treeColumn4.setText("Status");
    treeColumn4.setAlignment(SWT.LEAD);
    treeColumn4.setWidth(190);

    mGroupOptions = new Composite(mGroupPackages, SWT.NONE);
    GridDataBuilder.create(mGroupOptions).hFill().vCenter().hGrab();
    GridLayoutBuilder.create(mGroupOptions).columns(6).noMargins();

    // Options line 1, 6 columns

    Label label3 = new Label(mGroupOptions, SWT.NONE);
    label3.setText("Show:");

    mCheckFilterNew = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterNew.setText("Updates/New");
    mCheckFilterNew.setToolTipText("Show Updates and New");
    mCheckFilterNew.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterNew.setSelection(true);

    mCheckFilterInstalled = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterInstalled.setToolTipText("Show Installed");
    mCheckFilterInstalled.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterInstalled.setSelection(true);
    mCheckFilterInstalled.setText("Installed");

    mCheckFilterObsolete = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterObsolete.setText("Obsolete");
    mCheckFilterObsolete.setToolTipText("Also show obsolete packages");
    mCheckFilterObsolete.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterObsolete.setSelection(false);

    Link linkSelectNew = new Link(mGroupOptions, SWT.NONE);
    // Note for i18n: we need to identify which link is used, and this is done by using the
    // text itself so for translation purposes we want to keep the <a> link strings separate.
    final String strLinkNew = "New";
    final String strLinkUpdates = "Updates";
    linkSelectNew.setText(String.format("Select <a>%1$s</a> or <a>%2$s</a>", strLinkNew, strLinkUpdates));
    linkSelectNew.setToolTipText("Selects all items that are either new or updates.");
    GridDataBuilder.create(linkSelectNew).hFill().hGrab();
    linkSelectNew.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            boolean selectNew = e.text == null || e.text.equals(strLinkNew);
            onSelectNewUpdates(selectNew, !selectNew, false/*selectTop*/);
        }
    });

    mButtonInstall = new Button(mGroupOptions, SWT.NONE);
    mButtonInstall.setText(""); //$NON-NLS-1$  placeholder, filled in updateButtonsState()
    mButtonInstall.setToolTipText("Install one or more packages");
    GridDataBuilder.create(mButtonInstall).hFill().vCenter().hGrab();
    mButtonInstall.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            onButtonInstall(); //$hide$
        }
    });

    // Options line 2, 6 columns

    Label label2 = new Label(mGroupOptions, SWT.NONE);
    label2.setText("Sort by:");

    mCheckSortApi = new Button(mGroupOptions, SWT.RADIO);
    mCheckSortApi.setToolTipText("Sort by API level");
    mCheckSortApi.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (mCheckSortApi.getSelection()) {
                refreshViewerInput();
                copySelection(true /*toApi*/);
                syncViewerSelection();
            }
        }
    });
    mCheckSortApi.setText("API level");
    mCheckSortApi.setSelection(true);

    mCheckSortSource = new Button(mGroupOptions, SWT.RADIO);
    mCheckSortSource.setText("Repository");
    mCheckSortSource.setToolTipText("Sort by Repository");
    mCheckSortSource.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            if (mCheckSortSource.getSelection()) {
                refreshViewerInput();
                copySelection(false /*toApi*/);
                syncViewerSelection();
            }
        }
    });

    new Label(mGroupOptions, SWT.NONE);

    Link linkDeselect = new Link(mGroupOptions, SWT.NONE);
    linkDeselect.setText("<a>Deselect All</a>");
    linkDeselect.setToolTipText("Deselects all the currently selected items");
    GridDataBuilder.create(linkDeselect).hFill().hGrab();
    linkDeselect.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            onDeselectAll();
        }
    });

    mButtonDelete = new Button(mGroupOptions, SWT.NONE);
    mButtonDelete.setText(""); //$NON-NLS-1$  placeholder, filled in updateButtonsState()
    mButtonDelete.setToolTipText("Delete one ore more installed packages");
    GridDataBuilder.create(mButtonDelete).hFill().vCenter().hGrab();
    mButtonDelete.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            onButtonDelete(); //$hide$
        }
    });
}

From source file:com.android.sdkuilib.internal.repository.ui.PackagesPage.java

License:Apache License

@SuppressWarnings("unused")
private void createContents(Composite parent) {
    GridLayoutBuilder.create(parent).noMargins().columns(2);

    mGroupSdk = new Composite(parent, SWT.NONE);
    GridDataBuilder.create(mGroupSdk).hFill().vCenter().hGrab().hSpan(2);
    GridLayoutBuilder.create(mGroupSdk).columns(2);

    Label label1 = new Label(mGroupSdk, SWT.NONE);
    label1.setText("SDK Path:");

    mTextSdkOsPath = new Text(mGroupSdk, SWT.NONE);
    GridDataBuilder.create(mTextSdkOsPath).hFill().vCenter().hGrab();
    mTextSdkOsPath.setEnabled(false);//from   w w  w  .  j a v  a  2  s .  c  om

    Group groupPackages = new Group(parent, SWT.NONE);
    mGroupPackages = groupPackages;
    GridDataBuilder.create(mGroupPackages).fill().grab().hSpan(2);
    groupPackages.setText("Packages");
    GridLayoutBuilder.create(groupPackages).columns(1);

    mTreeViewer = new CheckboxTreeViewer(groupPackages, SWT.BORDER);
    mImpl.setITreeViewer(new PackagesPageImpl.ICheckboxTreeViewer() {
        @Override
        public Object getInput() {
            return mTreeViewer.getInput();
        }

        @Override
        public void setInput(List<PkgCategory> cats) {
            mTreeViewer.setInput(cats);
        }

        @Override
        public void setContentProvider(PkgContentProvider pkgContentProvider) {
            mTreeViewer.setContentProvider(pkgContentProvider);
        }

        @Override
        public void refresh() {
            mTreeViewer.refresh();
        }

        @Override
        public Object[] getCheckedElements() {
            return mTreeViewer.getCheckedElements();
        }
    });
    mTreeViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            return filterViewerItem(element);
        }
    });

    mTreeViewer.addCheckStateListener(new ICheckStateListener() {
        @Override
        public void checkStateChanged(CheckStateChangedEvent event) {
            onTreeCheckStateChanged(event); //$hide$
        }
    });

    mTreeViewer.addDoubleClickListener(new IDoubleClickListener() {
        @Override
        public void doubleClick(DoubleClickEvent event) {
            onTreeDoubleClick(event); //$hide$
        }
    });

    Tree tree = mTreeViewer.getTree();
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    GridDataBuilder.create(tree).fill().grab();

    // column name icon is set when loading depending on the current filter type
    // (e.g. API level or source)
    TreeViewerColumn columnName = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    mTreeColumnName = columnName.getColumn();
    mTreeColumnName.setText("Name");
    mTreeColumnName.setWidth(340);

    TreeViewerColumn columnApi = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn2 = columnApi.getColumn();
    treeColumn2.setText("API");
    treeColumn2.setAlignment(SWT.CENTER);
    treeColumn2.setWidth(50);

    TreeViewerColumn columnRevision = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn3 = columnRevision.getColumn();
    treeColumn3.setText("Rev.");
    treeColumn3.setToolTipText("Revision currently installed");
    treeColumn3.setAlignment(SWT.CENTER);
    treeColumn3.setWidth(50);

    TreeViewerColumn columnStatus = new TreeViewerColumn(mTreeViewer, SWT.NONE);
    TreeColumn treeColumn4 = columnStatus.getColumn();
    treeColumn4.setText("Status");
    treeColumn4.setAlignment(SWT.LEAD);
    treeColumn4.setWidth(190);

    mImpl.setIColumns(wrapColumn(columnName), wrapColumn(columnApi), wrapColumn(columnRevision),
            wrapColumn(columnStatus));

    mGroupOptions = new Composite(groupPackages, SWT.NONE);
    GridDataBuilder.create(mGroupOptions).hFill().vCenter().hGrab();
    GridLayoutBuilder.create(mGroupOptions).columns(7).noMargins();

    // Options line 1, 7 columns

    Label label3 = new Label(mGroupOptions, SWT.NONE);
    label3.setText("Show:");

    mCheckFilterNew = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterNew.setText("Updates/New");
    mCheckFilterNew.setToolTipText("Show Updates and New");
    mCheckFilterNew.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterNew.setSelection(true);

    mCheckFilterInstalled = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterInstalled.setToolTipText("Show Installed");
    mCheckFilterInstalled.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterInstalled.setSelection(true);
    mCheckFilterInstalled.setText("Installed");

    new Label(mGroupOptions, SWT.NONE);

    Link linkSelectNew = new Link(mGroupOptions, SWT.NONE);
    // Note for i18n: we need to identify which link is used, and this is done by using the
    // text itself so for translation purposes we want to keep the <a> link strings separate.
    final String strLinkNew = "New";
    final String strLinkUpdates = "Updates";
    linkSelectNew.setText(String.format("Select <a>%1$s</a> or <a>%2$s</a>", strLinkNew, strLinkUpdates));
    linkSelectNew.setToolTipText("Selects all items that are either new or updates.");
    GridDataBuilder.create(linkSelectNew).hFill();
    linkSelectNew.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            boolean selectNew = e.text == null || e.text.equals(strLinkNew);
            onSelectNewUpdates(selectNew, !selectNew, false/*selectTop*/);
        }
    });

    // placeholder between "select all" and "install"
    Label placeholder = new Label(mGroupOptions, SWT.NONE);
    GridDataBuilder.create(placeholder).hFill().hGrab();

    mButtonInstall = new Button(mGroupOptions, SWT.NONE);
    mButtonInstall.setText(""); //$NON-NLS-1$  placeholder, filled in updateButtonsState()
    mButtonInstall.setToolTipText("Install one or more packages");
    GridDataBuilder.create(mButtonInstall).vCenter().wHint(150);
    mButtonInstall.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            onButtonInstall(); //$hide$
        }
    });

    // Options line 2, 7 columns

    new Label(mGroupOptions, SWT.NONE);

    mCheckFilterObsolete = new Button(mGroupOptions, SWT.CHECK);
    mCheckFilterObsolete.setText("Obsolete");
    mCheckFilterObsolete.setToolTipText("Also show obsolete packages");
    mCheckFilterObsolete.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            refreshViewerInput();
        }
    });
    mCheckFilterObsolete.setSelection(false);

    // placeholder before "deselect"
    new Label(mGroupOptions, SWT.NONE);
    new Label(mGroupOptions, SWT.NONE);

    Link linkDeselect = new Link(mGroupOptions, SWT.NONE);
    linkDeselect.setText("<a>Deselect All</a>");
    linkDeselect.setToolTipText("Deselects all the currently selected items");
    GridDataBuilder.create(linkDeselect).hFill();
    linkDeselect.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            super.widgetSelected(e);
            onDeselectAll();
        }
    });

    // placeholder between "deselect" and "delete"
    placeholder = new Label(mGroupOptions, SWT.NONE);
    GridDataBuilder.create(placeholder).hFill().hGrab();

    mButtonDelete = new Button(mGroupOptions, SWT.NONE);
    mButtonDelete.setText(""); //$NON-NLS-1$  placeholder, filled in updateButtonsState()
    mButtonDelete.setToolTipText("Delete one ore more installed packages");
    GridDataBuilder.create(mButtonDelete).vCenter().wHint(150);
    mButtonDelete.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            onButtonDelete(); //$hide$
        }
    });
}

From source file:com.apicloud.navigator.ui.editors.ConfigEditor.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    parent.setLayout(new GridLayout(1, false));

    ScrolledComposite scrolledComposite = new ScrolledComposite(parent,
            SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    scrolledComposite.setExpandVertical(true);
    scrolledComposite.setExpandHorizontal(true);
    scrolledComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    formToolkit.adapt(scrolledComposite);
    formToolkit.paintBordersFor(scrolledComposite);
    scrolledComposite.setMinWidth(600);//w ww.j  a va  2s . c  o  m
    scrolledComposite.setMinHeight(1400);
    scrolledComposite.getVerticalBar().setIncrement(10);

    Composite composite_3 = new Composite(scrolledComposite, SWT.NONE);
    formToolkit.adapt(composite_3);
    formToolkit.paintBordersFor(composite_3);
    composite_3.setLayout(new GridLayout(1, false));

    generalSection = new GeneralSectionBuilder(formToolkit, composite_3, this);
    generalSection.buildUI();
    generalSection.bindData(config);

    Section preferenceSection = formToolkit.createSection(composite_3, Section.TWISTIE | Section.TITLE_BAR);
    preferenceSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.paintBordersFor(preferenceSection);
    preferenceSection.setText("\u504F\u597D\u8BBE\u7F6E");
    preferenceSection.setExpanded(true);

    Composite preferenceComposite = formToolkit.createComposite(preferenceSection, SWT.NONE);
    preferenceComposite.setToolTipText("");
    formToolkit.paintBordersFor(preferenceComposite);
    preferenceSection.setClient(preferenceComposite);
    preferenceComposite.setLayout(new GridLayout(2, false));

    Label appBackground = new Label(preferenceComposite, SWT.NONE);
    appBackground.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1));
    formToolkit.adapt(appBackground, true, true);
    appBackground.setText("appBackground:");

    Composite appBackgroundComposite = new Composite(preferenceComposite, SWT.NONE);
    appBackgroundComposite.setLayout(new GridLayout(1, false));
    appBackgroundComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(appBackgroundComposite);
    formToolkit.paintBordersFor(appBackgroundComposite);

    appBackgroundText = new Text(appBackgroundComposite, SWT.BORDER);
    GridData gd_appBackgroundText = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
    gd_appBackgroundText.widthHint = 200;
    appBackgroundText.setLayoutData(gd_appBackgroundText);
    appBackgroundText.setText(getPreferenceValue("appBackground", config) == null ? ""
            : getPreferenceValue("appBackground", config));
    appBackgroundText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            String value = appBackgroundText.getText() == null ? "" : appBackgroundText.getText();
            changePreferenceValue("appBackground", value);
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    formToolkit.adapt(appBackgroundText, true, true);

    Label windowBackground = new Label(preferenceComposite, SWT.NONE);
    windowBackground.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(windowBackground, true, true);
    windowBackground.setText("windowBackground:");

    Composite windowBackgroundComposite = new Composite(preferenceComposite, SWT.NONE);
    windowBackgroundComposite.setLayout(new GridLayout(1, false));
    windowBackgroundComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(windowBackgroundComposite);
    formToolkit.paintBordersFor(windowBackgroundComposite);

    windowBackgroundText = new Text(windowBackgroundComposite, SWT.BORDER);
    GridData gd_windowBackgroundText = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
    gd_windowBackgroundText.widthHint = 200;
    windowBackgroundText.setLayoutData(gd_windowBackgroundText);
    windowBackgroundText.setText(getPreferenceValue("windowBackground", config) == null ? ""
            : getPreferenceValue("windowBackground", config));
    windowBackgroundText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            String value = windowBackgroundText.getText() == null ? "" : windowBackgroundText.getText();
            changePreferenceValue("windowBackground", value);
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    formToolkit.adapt(windowBackgroundText, true, true);

    Label frameBackground = new Label(preferenceComposite, SWT.NONE);
    frameBackground.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(frameBackground, true, true);
    frameBackground.setText("frameBackgroundColor:");

    Composite frameBackgroundComposite = new Composite(preferenceComposite, SWT.NONE);
    frameBackgroundComposite.setLayout(new GridLayout(6, false));
    frameBackgroundComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(frameBackgroundComposite);
    formToolkit.paintBordersFor(frameBackgroundComposite);

    frameBackgroundText = new Text(frameBackgroundComposite, SWT.BORDER);
    GridData gd_frameBackgroundText = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1);
    gd_frameBackgroundText.widthHint = 200;
    frameBackgroundText.setLayoutData(gd_frameBackgroundText);
    frameBackgroundText.setText(getPreferenceValue("frameBackgroundColor", config) == null ? ""
            : getPreferenceValue("frameBackgroundColor", config));
    frameBackgroundText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            String value = frameBackgroundText.getText() == null ? "" : frameBackgroundText.getText();
            changePreferenceValue("frameBackgroundColor", value);
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    formToolkit.adapt(frameBackgroundText, true, true);

    Label lblNewLabel_4 = new Label(frameBackgroundComposite, SWT.NONE);
    formToolkit.adapt(lblNewLabel_4, true, true);
    new Label(frameBackgroundComposite, SWT.NONE);
    new Label(frameBackgroundComposite, SWT.NONE);
    new Label(frameBackgroundComposite, SWT.NONE);
    new Label(frameBackgroundComposite, SWT.NONE);

    Label pageBounce = new Label(preferenceComposite, SWT.NONE);
    pageBounce.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(pageBounce, true, true);
    pageBounce.setText("pageBounce:");

    Composite pageBounceComposite = new Composite(preferenceComposite, SWT.NONE);
    pageBounceComposite.setLayout(new GridLayout(2, false));
    pageBounceComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(pageBounceComposite);
    formToolkit.paintBordersFor(pageBounceComposite);

    pageBounceButton_ok = new Button(pageBounceComposite, SWT.RADIO | SWT.RIGHT);
    pageBounceButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("pageBounce", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    pageBounceButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(pageBounceButton_ok, true, true);
    pageBounceButton_ok.setText("true");

    pageBounceButton_cancel = new Button(pageBounceComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("pageBounce", config) == null ? "false"
            : getPreferenceValue("pageBounce", config))) {
        pageBounceButton_ok.setSelection(true);
        changePreferenceValue("pageBounce", "true");
    } else {
        pageBounceButton_cancel.setSelection(true);
        changePreferenceValue("pageBounce", "false");
    }
    pageBounceButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("pageBounce", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(pageBounceButton_cancel, true, true);
    pageBounceButton_cancel.setText("false");

    Label hScrollBarEnabled = new Label(preferenceComposite, SWT.NONE);
    hScrollBarEnabled.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(hScrollBarEnabled, true, true);
    hScrollBarEnabled.setText("hScrollBarEnabled:");

    Composite hScrollBarEnabledComposite = new Composite(preferenceComposite, SWT.NONE);
    hScrollBarEnabledComposite.setLayout(new GridLayout(2, false));
    hScrollBarEnabledComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(hScrollBarEnabledComposite);
    formToolkit.paintBordersFor(hScrollBarEnabledComposite);

    hScrollBarEnabledButton_ok = new Button(hScrollBarEnabledComposite, SWT.RADIO | SWT.RIGHT);
    hScrollBarEnabledButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("hScrollBarEnabled", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    hScrollBarEnabledButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(hScrollBarEnabledButton_ok, true, true);
    hScrollBarEnabledButton_ok.setText("true");

    hScrollBarEnabledButton_cancel = new Button(hScrollBarEnabledComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("hScrollBarEnabled", config) == null ? "false"
            : getPreferenceValue("hScrollBarEnabled", config))) {
        hScrollBarEnabledButton_ok.setSelection(true);
        changePreferenceValue("hScrollBarEnabled", "true");
    } else {
        hScrollBarEnabledButton_cancel.setSelection(true);
        changePreferenceValue("hScrollBarEnabled", "false");
    }
    hScrollBarEnabledButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("hScrollBarEnabled", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(hScrollBarEnabledButton_cancel, true, true);
    hScrollBarEnabledButton_cancel.setText("false");

    Label vScrollBarEnabled = new Label(preferenceComposite, SWT.NONE);
    vScrollBarEnabled.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(vScrollBarEnabled, true, true);
    vScrollBarEnabled.setText("vScrollBarEnabled:");

    Composite vScrollBarEnabledComposite = new Composite(preferenceComposite, SWT.NONE);
    vScrollBarEnabledComposite.setLayout(new GridLayout(2, false));
    vScrollBarEnabledComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(vScrollBarEnabledComposite);
    formToolkit.paintBordersFor(vScrollBarEnabledComposite);

    vScrollBarEnabledButton_ok = new Button(vScrollBarEnabledComposite, SWT.RADIO | SWT.RIGHT);
    vScrollBarEnabledButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("vScrollBarEnabled", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    vScrollBarEnabledButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(vScrollBarEnabledButton_ok, true, true);
    vScrollBarEnabledButton_ok.setText("true");

    vScrollBarEnabledButton_cancel = new Button(vScrollBarEnabledComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("vScrollBarEnabled", config) == null ? "false"
            : getPreferenceValue("vScrollBarEnabled", config))) {
        vScrollBarEnabledButton_ok.setSelection(true);
        changePreferenceValue("vScrollBarEnabled", "true");
    } else {
        vScrollBarEnabledButton_cancel.setSelection(true);
        changePreferenceValue("vScrollBarEnabled", "false");
    }
    vScrollBarEnabledButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("vScrollBarEnabled", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(vScrollBarEnabledButton_cancel, true, true);
    vScrollBarEnabledButton_cancel.setText("false");

    Label fullScreen = new Label(preferenceComposite, SWT.NONE);
    fullScreen.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(fullScreen, true, true);
    fullScreen.setText("fullScreen:");

    Composite fullScreenComposite = new Composite(preferenceComposite, SWT.NONE);
    fullScreenComposite.setLayout(new GridLayout(2, false));
    fullScreenComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(fullScreenComposite);
    formToolkit.paintBordersFor(fullScreenComposite);

    fullScreenButton_ok = new Button(fullScreenComposite, SWT.RADIO | SWT.RIGHT);
    fullScreenButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("fullScreen", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });

    fullScreenButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(fullScreenButton_ok, true, true);
    fullScreenButton_ok.setText("true");

    fullScreenButton_cancel = new Button(fullScreenComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("fullScreen", config) == null ? "false"
            : getPreferenceValue("fullScreen", config))) {
        fullScreenButton_ok.setSelection(true);
        changePreferenceValue("fullScreen", "true");
    } else {
        fullScreenButton_cancel.setSelection(true);
        changePreferenceValue("fullScreen", "false");
    }
    fullScreenButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("fullScreen", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(fullScreenButton_cancel, true, true);
    fullScreenButton_cancel.setText("false");

    Label ios7 = new Label(preferenceComposite, SWT.NONE);
    ios7.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(ios7, true, true);
    ios7.setText("IOS7StatusBarAppearance:");

    Composite ios7Composite = new Composite(preferenceComposite, SWT.NONE);
    ios7Composite.setLayout(new GridLayout(2, false));
    ios7Composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(ios7Composite);
    formToolkit.paintBordersFor(ios7Composite);

    ios7Button_ok = new Button(ios7Composite, SWT.RADIO | SWT.RIGHT);
    ios7Button_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("iOS7StatusBarAppearance", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    ios7Button_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(ios7Button_ok, true, true);
    ios7Button_ok.setText("true");

    ios7Button_cancel = new Button(ios7Composite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("iOS7StatusBarAppearance", config) == null ? "false"
            : getPreferenceValue("iOS7StatusBarAppearance", config))) {
        ios7Button_ok.setSelection(true);
        changePreferenceValue("iOS7StatusBarAppearance", "true");
    } else {
        ios7Button_cancel.setSelection(true);
        changePreferenceValue("iOS7StatusBarAppearance", "false");
    }
    ios7Button_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("iOS7StatusBarAppearance", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(ios7Button_cancel, true, true);
    ios7Button_cancel.setText("false");

    Label autoLaunch = new Label(preferenceComposite, SWT.NONE);
    autoLaunch.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(autoLaunch, true, true);
    autoLaunch.setText("autoLaunch:");

    Composite autoLaunchComposite = new Composite(preferenceComposite, SWT.NONE);
    autoLaunchComposite.setLayout(new GridLayout(2, false));
    autoLaunchComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(autoLaunchComposite);
    formToolkit.paintBordersFor(autoLaunchComposite);

    autoLaunchButton_ok = new Button(autoLaunchComposite, SWT.RADIO | SWT.RIGHT);
    autoLaunchButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("autoLaunch", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    autoLaunchButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(autoLaunchButton_ok, true, true);
    autoLaunchButton_ok.setText("true");

    autoLaunchButton_cancel = new Button(autoLaunchComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("autoLaunch", config) == null ? "false"
            : getPreferenceValue("autoLaunch", config))) {
        autoLaunchButton_ok.setSelection(true);
        changePreferenceValue("autoLaunch", "true");
    } else {
        autoLaunchButton_cancel.setSelection(true);
        changePreferenceValue("autoLaunch", "false");
    }
    autoLaunchButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("autoLaunch", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(autoLaunchButton_cancel, true, true);
    autoLaunchButton_cancel.setText("false");

    Label autoUpdate = new Label(preferenceComposite, SWT.NONE);
    autoUpdate.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(autoUpdate, true, true);
    autoUpdate.setText("autoUpdate:");

    Composite autoUpdateComposite = new Composite(preferenceComposite, SWT.NONE);
    autoUpdateComposite.setLayout(new GridLayout(2, false));
    autoUpdateComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(autoUpdateComposite);
    formToolkit.paintBordersFor(autoUpdateComposite);

    autoUpdateButton_ok = new Button(autoUpdateComposite, SWT.RADIO | SWT.RIGHT);
    autoUpdateButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("autoUpdate", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    autoUpdateButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(autoUpdateButton_ok, true, true);
    autoUpdateButton_ok.setText("true");

    autoUpdateButton_cancel = new Button(autoUpdateComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("autoUpdate", config) == null ? "false"
            : getPreferenceValue("autoUpdate", config))) {
        autoUpdateButton_ok.setSelection(true);
        changePreferenceValue("autoUpdate", "true");
    } else {
        autoUpdateButton_cancel.setSelection(true);
        changePreferenceValue("autoUpdate", "false");
    }
    autoUpdateButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("autoUpdate", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(autoUpdateButton_cancel, true, true);
    autoUpdateButton_cancel.setText("false");

    Label smartUpdate = new Label(preferenceComposite, SWT.NONE);
    smartUpdate.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(smartUpdate, true, true);
    smartUpdate.setText("smartUpdate:");

    Composite smartUpdateComposite = new Composite(preferenceComposite, SWT.NONE);
    smartUpdateComposite.setLayout(new GridLayout(2, false));
    smartUpdateComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.adapt(smartUpdateComposite);
    formToolkit.paintBordersFor(smartUpdateComposite);

    smartUpdateButton_ok = new Button(smartUpdateComposite, SWT.RADIO | SWT.RIGHT);
    smartUpdateButton_ok.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("smartUpdate", "true");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    smartUpdateButton_ok.setAlignment(SWT.LEFT);
    formToolkit.adapt(smartUpdateButton_ok, true, true);
    smartUpdateButton_ok.setText("true");

    smartUpdateButton_cancel = new Button(smartUpdateComposite, SWT.RADIO);
    if (Boolean.parseBoolean(getPreferenceValue("smartUpdate", config) == null ? "false"
            : getPreferenceValue("smartUpdate", config))) {
        smartUpdateButton_ok.setSelection(true);
        changePreferenceValue("smartUpdate", "true");
    } else {
        smartUpdateButton_cancel.setSelection(true);
        changePreferenceValue("smartUpdate", "false");
    }
    smartUpdateButton_cancel.addSelectionListener(new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            changePreferenceValue("smartUpdate", "false");
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }

    });
    formToolkit.adapt(smartUpdateButton_cancel, true, true);
    smartUpdateButton_cancel.setText("false");
    Section featureSection = formToolkit.createSection(composite_3, Section.TWISTIE | Section.TITLE_BAR);
    GridData gd_featureSection = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    gd_featureSection.heightHint = 112;
    featureSection.setLayoutData(gd_featureSection);
    formToolkit.paintBordersFor(featureSection);
    featureSection.setText(Messages.FEATURESETUP);
    featureSection.setExpanded(true);

    Composite composite_8 = new Composite(featureSection, SWT.NONE);
    formToolkit.adapt(composite_8);
    formToolkit.paintBordersFor(composite_8);
    featureSection.setClient(composite_8);
    composite_8.setLayout(new GridLayout(1, false));

    Label lblNewLabel_1 = new Label(composite_8, SWT.NONE);
    lblNewLabel_1.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(lblNewLabel_1, true, true);
    lblNewLabel_1.setText(Messages.SYSTEMINFO);

    Composite composite = new Composite(composite_8, SWT.NONE);
    GridData gd_composite = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1);
    gd_composite.widthHint = 380;
    composite.setLayoutData(gd_composite);
    formToolkit.adapt(composite);
    formToolkit.paintBordersFor(composite);

    final Label addFeatureLabel = formToolkit.createLabel(composite, "", SWT.NONE);
    addFeatureLabel.setImage(Activator.getImage("icons/addfeature.png"));
    addFeatureLabel.setBounds(0, 0, 90, 26);
    addFeatureLabel.addMouseListener(new MouseAdapter() {

        public void mouseUp(MouseEvent e) {
            AddFeatureDialog dialog = new AddFeatureDialog(getSite().getShell(), ConfigEditor.this, treeViewer,
                    config);

            dialog.open();
        }
    });
    addFeatureLabel.addMouseTrackListener(new MouseTrackListener() {
        @Override
        public void mouseHover(MouseEvent e) {
            addFeatureLabel.setImage(Activator.getImage("icons/addfeaturefocus.png"));
        }

        @Override
        public void mouseExit(MouseEvent e) {
            addFeatureLabel.setImage(Activator.getImage("icons/addfeature.png"));
        }

        @Override
        public void mouseEnter(MouseEvent e) {
            addFeatureLabel.setImage(Activator.getImage("icons/addfeaturefocus.png"));
        }
    });

    final Label addParamLabel = formToolkit.createLabel(composite, "", SWT.NONE);
    addParamLabel.setImage(Activator.getImage("icons/addParam.png"));
    addParamLabel.setBounds(95, 0, 90, 26);
    addParamLabel.addMouseListener(new MouseAdapter() {

        public void mouseUp(MouseEvent e) {
            if (config.getFeatures().size() == 0) {
                MessageDialog.openInformation(getSite().getShell(), Messages.PackageAppItemDialog_INFO,
                        Messages.ADDFEATURE);
                return;
            }
            CreateParamDialog dialog = new CreateParamDialog(getSite().getShell(), ConfigEditor.this,
                    treeViewer, config);
            dialog.open();
        }
    });
    addParamLabel.addMouseTrackListener(new MouseTrackListener() {
        @Override
        public void mouseHover(MouseEvent e) {
            addParamLabel.setImage(Activator.getImage("icons/addParamfocus.png"));
        }

        @Override
        public void mouseExit(MouseEvent e) {
            addParamLabel.setImage(Activator.getImage("icons/addParam.png"));
        }

        @Override
        public void mouseEnter(MouseEvent e) {
            addParamLabel.setImage(Activator.getImage("icons/addParamfocus.png"));
        }
    });

    final Label deleteNodeLabel = formToolkit.createLabel(composite, "", SWT.NONE);
    deleteNodeLabel.setImage(Activator.getImage("icons/deleteNode.png"));
    deleteNodeLabel.setBounds(290, 0, 90, 26);
    deleteNodeLabel.addMouseListener(new MouseAdapter() {

        public void mouseUp(MouseEvent e) {
            if (treeViewer.getSelection() == null)
                return;
            IStructuredSelection ss = (StructuredSelection) treeViewer.getSelection();
            if (ss.getFirstElement() instanceof TreeNode) {
                TreeNode node = (TreeNode) ss.getFirstElement();
                if (node.getValue() instanceof Feature) {
                    config.getFeatures().remove((Feature) node.getValue());
                }
                if (node.getValue() instanceof Param) {
                    TreeNode parent = node.getParent();
                    Feature feature = (Feature) parent.getValue();
                    Param param = (Param) node.getValue();
                    feature.removeParams(param);
                }
                dirty = true;
                firePropertyChange(PROP_DIRTY);
                treeViewer.setInput(config.createTreeNode());
                treeViewer.refresh();
            }
        }
    });
    deleteNodeLabel.addMouseTrackListener(new MouseTrackListener() {
        @Override
        public void mouseHover(MouseEvent e) {
            deleteNodeLabel.setImage(Activator.getImage("icons/deleteNodefocus.png"));
        }

        @Override
        public void mouseExit(MouseEvent e) {
            deleteNodeLabel.setImage(Activator.getImage("icons/deleteNode.png"));
        }

        @Override
        public void mouseEnter(MouseEvent e) {
            deleteNodeLabel.setImage(Activator.getImage("icons/deleteNodefocus.png"));
        }
    });

    treeViewer = new TreeViewer(composite_8, SWT.BORDER | SWT.FULL_SELECTION);
    Tree tree = treeViewer.getTree();
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    GridData gd_tree = new GridData(SWT.CENTER, SWT.FILL, true, true, 1, 1);
    gd_tree.heightHint = 112;
    tree.setLayoutData(gd_tree);
    formToolkit.paintBordersFor(tree);
    this.treeViewer.setContentProvider(new TreeNodeContentProvider());
    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnNewColumn = treeViewerColumn.getColumn();
    trclmnNewColumn.setWidth(180);
    trclmnNewColumn.setText("\u540D\u79F0");
    treeViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            TreeNode treeNode = TreeNode.class.cast(element);
            if (treeNode.getValue() instanceof Feature) {
                return ((Feature) treeNode.getValue()).getName();
            }
            if (treeNode.getValue() instanceof Param) {
                return ((Param) treeNode.getValue()).getName();
            }
            return element.toString();
        }

    });

    TreeViewerColumn treeViewerColumn_1 = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnNewColumn_1 = treeViewerColumn_1.getColumn();
    trclmnNewColumn_1.setWidth(180);
    trclmnNewColumn_1.setText("\u503C");
    treeViewerColumn_1.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            TreeNode treeNode = TreeNode.class.cast(element);
            if (treeNode.getValue() instanceof Feature) {
                return "";
            }
            if (treeNode.getValue() instanceof Param) {
                return ((Param) treeNode.getValue()).getValue();
            }
            return element.toString();
        }

    });
    this.treeViewer.setInput(config.createTreeNode());
    treeViewer.setColumnProperties(new String[] { "name", "value" });
    CellEditor[] treeViewer_editors = new CellEditor[tree.getColumnCount()];
    treeViewer_editors[0] = new TextCellEditor(tree);
    treeViewer_editors[1] = new TextCellEditor(tree);

    treeViewer.setCellEditors(treeViewer_editors);
    treeViewer.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {
            TreeNode treeNode = TreeNode.class.cast(element);
            if (treeNode.getValue() instanceof Feature && property.equals("value")) { //$NON-NLS-1$
                return false;
            }
            if (property.equals("name"))
                return false;
            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            Object value = ""; //$NON-NLS-1$
            TreeNode treeNode = TreeNode.class.cast(element);
            if (treeNode.getValue() instanceof Feature) {
                Feature feautre = Feature.class.cast(treeNode.getValue());
                if (property.equals("name")) {
                    value = feautre.getName();
                }
            }
            if (treeNode.getValue() instanceof Param) {
                Param param = Param.class.cast(treeNode.getValue());
                if (property.equals("name")) {
                    value = param.getName();
                } else if (property.equals("value")) {
                    value = param.getValue();
                }
            }
            return value;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            TreeItem item = (TreeItem) element;
            Object o = item.getData();
            TreeNode treeNode = TreeNode.class.cast(o);
            if (treeNode.getValue() instanceof Feature) {
                Feature feautre = Feature.class.cast(treeNode.getValue());
                if (property.equals("name")) {
                    if ("".equals(value)) {
                        MessageDialog.openInformation(null, Messages.AddFeatureDialog_INFORMATION,
                                Messages.CreateFeatureDialog_FEATURE_NMAE_NOT_NULL);
                    } else {
                        if (!feautre.getName().equals((String) value)) {
                            feautre.setName((String) value);
                            dirty = true;
                            firePropertyChange(PROP_DIRTY);
                            treeViewer.refresh();
                        }
                    }
                }
            }
            if (treeNode.getValue() instanceof Param) {
                Param param = Param.class.cast(treeNode.getValue());
                if (property.equals("name")) {
                    if ("".equals(value)) {
                        MessageDialog.openInformation(null, Messages.PackageAppItemDialog_INFO,
                                Messages.PARAMNAMEISNULL);
                    } else {
                        if (!param.getName().equals((String) value)) {
                            param.setName((String) value);
                            dirty = true;
                            firePropertyChange(PROP_DIRTY);
                            treeViewer.refresh();
                        }
                    }
                } else if (property.equals("value")) {
                    if ("".equals(value)) {
                        MessageDialog.openInformation(null, Messages.PackageAppItemDialog_INFO,
                                Messages.PARAMNAMEISNULL);
                    } else {
                        if (!param.getValue().equals((String) value)) {
                            param.setValue((String) value);
                            dirty = true;
                            firePropertyChange(PROP_DIRTY);
                            treeViewer.refresh();
                        }
                    }
                }
            }
        }
    });

    final Section sctnNewSection_1 = formToolkit.createSection(composite_3,
            Section.TWISTIE | Section.TITLE_BAR);
    GridData gd_sctnNewSection_1 = new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1);
    gd_sctnNewSection_1.heightHint = 73;
    sctnNewSection_1.setLayoutData(gd_sctnNewSection_1);
    formToolkit.paintBordersFor(sctnNewSection_1);
    sctnNewSection_1.setText(Messages.PERMISSIONSETTINGS);
    sctnNewSection_1.setExpanded(true);

    Composite composite_5 = formToolkit.createComposite(sctnNewSection_1, SWT.NONE);
    formToolkit.paintBordersFor(composite_5);
    sctnNewSection_1.setClient(composite_5);
    composite_5.setLayout(new GridLayout(3, false));

    Label lblNewLabel_2 = new Label(composite_5, SWT.NONE);
    lblNewLabel_2.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, true, false, 3, 1));
    formToolkit.adapt(lblNewLabel_2, true, true);
    lblNewLabel_2.setText(Messages.PERMISSIONINFO);

    tableViewer_1 = new TableViewer(composite_5, SWT.BORDER | SWT.FULL_SELECTION);
    table_1 = tableViewer_1.getTable();
    table_1.setLinesVisible(true);
    table_1.setHeaderVisible(true);
    GridData gd_table_1 = new GridData(SWT.RIGHT, SWT.CENTER, true, false, 1, 1);
    gd_table_1.heightHint = 250;
    table_1.setLayoutData(gd_table_1);
    formToolkit.paintBordersFor(table_1);

    TableViewerColumn tableViewerColumn_2 = new TableViewerColumn(tableViewer_1, SWT.NONE);
    TableColumn tblclmnNewColumn_2 = tableViewerColumn_2.getColumn();
    tblclmnNewColumn_2.setResizable(false);
    tblclmnNewColumn_2.setMoveable(false);
    tblclmnNewColumn_2.setWidth(160);
    tblclmnNewColumn_2.setText(Messages.STARTED);
    tableViewerColumn_2.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Permission) element).getName();
        }

    });

    tableViewer_1.setContentProvider(new ArrayContentProvider());
    tableViewer_1.setInput(config.getPermissions());
    tableViewer_1.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {

            StructuredSelection ss = (StructuredSelection) event.getSelection();
            Permission p = (Permission) ss.getFirstElement();
            config.getPermissions().remove(p);
            tableViewer_1.setInput(config.getPermissions());
            tableViewer_3.setInput(getUnauthorized(config));
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
            dirty = true;
            firePropertyChange(PROP_DIRTY);

        }
    });
    table_1.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
        }

        @Override
        public void focusGained(FocusEvent e) {
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
        }
    });

    Label lblNewLabel = new Label(composite_5, SWT.NONE);
    lblNewLabel.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(lblNewLabel, true, true);
    lblNewLabel.setText(Messages.CHANGEBUTTON);

    tableViewer_3 = new TableViewer(composite_5, SWT.BORDER | SWT.FULL_SELECTION);
    table_3 = tableViewer_3.getTable();
    table_3.setLinesVisible(true);
    table_3.setHeaderVisible(true);
    table_3.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, true, false, 1, 1));
    formToolkit.paintBordersFor(table_3);

    TableViewerColumn tableViewerColumn = new TableViewerColumn(tableViewer_3, SWT.NONE);
    TableColumn tableColumn = tableViewerColumn.getColumn();
    tableColumn.setResizable(false);
    tableColumn.setMoveable(false);
    tableColumn.setWidth(160);
    tableColumn.setText(Messages.UNSTARTED);
    tableViewerColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Permission) element).getName();
        }

    });

    tableViewer_3.setContentProvider(new ArrayContentProvider());
    tableViewer_3.setInput(getUnauthorized(config));
    tableViewer_3.addDoubleClickListener(new IDoubleClickListener() {

        @Override
        public void doubleClick(DoubleClickEvent event) {
            StructuredSelection ss = (StructuredSelection) event.getSelection();
            Permission p = (Permission) ss.getFirstElement();
            config.getPermissions().add(p);
            tableViewer_1.setInput(config.getPermissions());
            tableViewer_3.setInput(getUnauthorized(config));
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    table_3.addFocusListener(new FocusListener() {

        @Override
        public void focusLost(FocusEvent e) {
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
        }

        @Override
        public void focusGained(FocusEvent e) {
            sctnNewSection_1.setExpanded(false);
            sctnNewSection_1.setExpanded(true);
        }
    });

    Section sctnNewSection = formToolkit.createSection(composite_3, Section.TWISTIE | Section.TITLE_BAR);
    sctnNewSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    formToolkit.paintBordersFor(sctnNewSection);
    sctnNewSection.setText(Messages.ACCESSSETTINGS);
    sctnNewSection.setExpanded(true);

    Composite composite_9 = formToolkit.createComposite(sctnNewSection, SWT.NONE);
    formToolkit.paintBordersFor(composite_9);
    sctnNewSection.setClient(composite_9);
    composite_9.setLayout(new GridLayout(1, false));

    Label lblNewLabel_9 = new Label(composite_9, SWT.NONE);
    lblNewLabel_9.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1));
    formToolkit.adapt(lblNewLabel_9, true, true);
    lblNewLabel_9.setText(Messages.ACCESSSINFO);

    Composite composite_2 = formToolkit.createComposite(composite_9, SWT.NONE);
    composite_2.setLayout(null);
    GridData gd_composite_2 = new GridData(SWT.CENTER, SWT.CENTER, false, false, 1, 1);
    gd_composite_2.widthHint = 380;
    composite_2.setLayoutData(gd_composite_2);
    formToolkit.paintBordersFor(composite_2);

    final Label addLabel = formToolkit.createLabel(composite_2, "", SWT.NONE);
    addLabel.setImage(Activator.getImage("icons/add.png"));
    addLabel.setBounds(0, 0, 55, 26);
    addLabel.addMouseListener(new MouseAdapter() {

        public void mouseUp(MouseEvent e) {
            Access a = new Access();
            a.setOrigin("*");
            config.getAccesses().add(a);
            tableViewer_2.setInput(config.getAccesses());
            tableViewer_2.refresh();
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    addLabel.addMouseTrackListener(new MouseTrackListener() {
        @Override
        public void mouseHover(MouseEvent e) {
            addLabel.setImage(Activator.getImage("icons/addfocus.png"));
        }

        @Override
        public void mouseExit(MouseEvent e) {
            addLabel.setImage(Activator.getImage("icons/add.png"));
        }

        @Override
        public void mouseEnter(MouseEvent e) {
            addLabel.setImage(Activator.getImage("icons/addfocus.png"));
        }
    });

    final Label deleteLabel = formToolkit.createLabel(composite_2, "", SWT.NONE);
    deleteLabel.setImage(Activator.getImage("icons/delete.png"));
    deleteLabel.setBounds(60, 0, 55, 26);
    deleteLabel.addMouseListener(new MouseAdapter() {

        public void mouseUp(MouseEvent e) {
            StructuredSelection ss = (StructuredSelection) tableViewer_2.getSelection();
            if (ss.getFirstElement() == null) {
                return;
            }
            Access a = (Access) ss.getFirstElement();
            config.getAccesses().remove(a);
            tableViewer_2.refresh();
            dirty = true;
            firePropertyChange(PROP_DIRTY);
        }
    });
    deleteLabel.addMouseTrackListener(new MouseTrackListener() {
        @Override
        public void mouseHover(MouseEvent e) {
            deleteLabel.setImage(Activator.getImage("icons/deletefocus.png"));
        }

        @Override
        public void mouseExit(MouseEvent e) {
            deleteLabel.setImage(Activator.getImage("icons/delete.png"));
        }

        @Override
        public void mouseEnter(MouseEvent e) {
            deleteLabel.setImage(Activator.getImage("icons/deletefocus.png"));
        }
    });

    tableViewer_2 = new TableViewer(composite_9, SWT.BORDER | SWT.FULL_SELECTION);
    table_2 = tableViewer_2.getTable();
    table_2.setLinesVisible(true);
    table_2.setHeaderVisible(true);
    GridData gd_table_2 = new GridData(SWT.CENTER, SWT.CENTER, true, false, 1, 1);
    gd_table_2.heightHint = 120;
    table_2.setLayoutData(gd_table_2);
    formToolkit.paintBordersFor(table_2);

    TableViewerColumn tableViewerColumn_3 = new TableViewerColumn(tableViewer_2, SWT.NONE);
    TableColumn tblclmnNewColumn_3 = tableViewerColumn_3.getColumn();
    tblclmnNewColumn_3.setWidth(360);
    tblclmnNewColumn_3.setText(Messages.SOURCE);
    tableViewerColumn_3.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Access) element).getOrigin();
        }

    });

    tableViewer_2.setContentProvider(new ArrayContentProvider());
    tableViewer_2.setInput(config.getAccesses());
    tableViewer_2.setColumnProperties(new String[] { "origin" });
    CellEditor[] tableViewer2_editor = new CellEditor[table_2.getColumnCount()];
    tableViewer2_editor[0] = new TextCellEditor(table_2);

    tableViewer_2.setCellEditors(tableViewer2_editor);
    tableViewer_2.setCellModifier(new ICellModifier() {

        @Override
        public boolean canModify(Object element, String property) {

            return true;
        }

        @Override
        public Object getValue(Object element, String property) {
            Object value = ""; //$NON-NLS-1$
            Access access = Access.class.cast(element);
            if (property.equals("origin")) {
                value = access.getOrigin();
            }
            return value;
        }

        @Override
        public void modify(Object element, String property, Object value) {
            TableItem item = (TableItem) element;
            Object o = item.getData();
            Access access = Access.class.cast(o);
            if (property.equals("origin")) {
                if ("".equals(value)) {
                    MessageDialog.openInformation(null, Messages.AddFeatureDialog_INFORMATION,
                            Messages.PERMISSIONISNULL);
                } else {
                    if (!access.getOrigin().equals((String) value)) {
                        access.setOrigin((String) value);
                        dirty = true;
                        firePropertyChange(PROP_DIRTY);
                        tableViewer_2.refresh();
                    }
                }
            }
        }
    });
    scrolledComposite.setMinSize(new Point(700, 1500));
    scrolledComposite.setContent(composite_3);
}

From source file:com.arm.cmsis.config.editors.ConfigEditor.java

License:Open Source License

private void buildTreeViewer(Composite parent) {
    fViewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
    Tree tree = fViewer.getTree();/* w  ww. j  a va 2 s .c  o m*/
    tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 3, 1));
    tree.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            TreeItem item = (TreeItem) e.item;
            if (item != null) {
                IConfigWizardItem configItem = getConfigWizardItem(item.getData());
                if (configItem != null) {
                    setCursorAndRevealAt(configItem.getStartLine());
                    showTooltipText(configItem);
                }
            }
        }
    });
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    fColumnAdvisor = new ConfigColumnAdvisor(fViewer);

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column0.getColumn().setText(Messages.ConfigEditor_Option);
    column0.getColumn().setWidth(320);
    column0.setLabelProvider(new FirstColumnLabelProvider());

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(Messages.ConfigEditor_Value);
    column1.getColumn().setWidth(100);
    column1.setEditingSupport(new AdvisedEditingSupport(fViewer, fColumnAdvisor, COLEDIT));
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLEDIT));

    // Add an empty column and adjust its width automatically for better looking
    TreeViewerColumn column2 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column2.getColumn().setWidth(1);
    column2.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ""; //$NON-NLS-1$
        }
    });

    if (System.getProperty("os.name").startsWith("Windows")) { //$NON-NLS-1$ //$NON-NLS-2$
        parent.addControlListener(new ControlAdapter() {
            @Override
            public void controlResized(ControlEvent e) {
                Tree tree = (Tree) fViewer.getControl();
                Rectangle area = parent.getClientArea();
                Point preferredSize = tree.computeSize(SWT.DEFAULT, SWT.DEFAULT);
                int width = area.width - 2 * tree.getBorderWidth();
                if (preferredSize.y > tree.getBounds().height) {
                    // Subtract the scrollbar width from the total column width
                    // if a vertical scrollbar will be required
                    Point vBarSize = tree.getVerticalBar().getSize();
                    width -= vBarSize.x;
                }
                Point oldSize = tree.getSize();
                if (oldSize.x > area.width) {
                    // tree is getting smaller so make the columns
                    // smaller first and then resize the tree to
                    // match the client area width
                    column2.getColumn().setWidth(Math.max(0,
                            width - column0.getColumn().getWidth() - column1.getColumn().getWidth() - 10));
                    tree.setSize(area.width, area.height);
                } else {
                    // tree is getting bigger so make the tree
                    // bigger first and then make the columns wider
                    // to match the client area width
                    tree.setSize(area.width, area.height);
                    column2.getColumn().setWidth(Math.max(0,
                            width - column0.getColumn().getWidth() - column1.getColumn().getWidth() - 10));
                }
            }
        });
    }

    fViewer.setContentProvider(new ContentProvider());
    fViewer.setInput(fParser.getConfigWizardRoot());

    ColumnViewerToolTipSupport.enableFor(fViewer);
}

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

License:Open Source License

@Override
public void createPartControl(Composite parent) {

    PatternFilter filter = new PatternFilter() {
        @Override/*from  w  w  w.  ja  va 2  s .  co 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;
        }
    };
    filter.setIncludeLeadingWildcard(true);
    fTree = new FilteredTree(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, filter,
            true);
    fTree.setInitialText(Messages.BoardsView_SearchBoard);
    fViewer = fTree.getViewer();
    fViewer.getTree().setLinesVisible(true);
    fViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column0.getColumn().setText(CmsisConstants.BOARD_TITLE);
    column0.getColumn().setWidth(200);
    column0.setLabelProvider(new BoardsViewLabelProvider());

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(CmsisConstants.SUMMARY_TITLE);
    column1.getColumn().setWidth(300);
    fColumnAdvisor = new BoardsViewColumnAdvisor(fViewer);
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLURL));

    fViewer.setContentProvider(new BoardViewContentProvider());
    fViewer.setComparator(new BoardTreeColumnComparator(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.BOARDS_VIEW);

    getSite().setSelectionProvider(fViewer);

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

    CpInstallerPlugInUI.registerViewPart(this);

    CpPlugIn.addRteListener(this);
}

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

License:Open Source License

@Override
public void createPartControl(Composite parent) {

    PatternFilter filter = new PatternFilter() {
        @Override//from  w  ww . java  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;
        }
    };
    filter.setIncludeLeadingWildcard(true);
    fTree = new FilteredTree(parent, SWT.FULL_SELECTION | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL, filter,
            true);
    fTree.setInitialText(Messages.DevicesView_SearchDevice);
    fViewer = fTree.getViewer();
    fViewer.getTree().setLinesVisible(true);
    fViewer.getTree().setHeaderVisible(true);

    TreeViewerColumn column0 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column0.getColumn().setText(CmsisConstants.DEVICE_TITLE);
    column0.getColumn().setWidth(200);
    column0.setLabelProvider(new DevicesViewLabelProvider());

    TreeViewerColumn column1 = new TreeViewerColumn(fViewer, SWT.LEFT);
    column1.getColumn().setText(CmsisConstants.SUMMARY_TITLE);
    column1.getColumn().setWidth(300);
    fColumnAdvisor = new DevicesViewColumnAdvisor(fViewer);
    column1.setLabelProvider(new AdvisedCellLabelProvider(fColumnAdvisor, COLURL));

    fViewer.setContentProvider(new DeviceViewContentProvider());
    fViewer.setComparator(new DeviceTreeColumnComparator(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.DEVICES_VIEW);

    getSite().setSelectionProvider(fViewer);

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

    CpInstallerPlugInUI.registerViewPart(this);

    CpPlugIn.addRteListener(this);
}

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 w  w  w  .  j  a  va  2  s  .  co 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/*w  w  w.  ja  v  a  2s  . 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 w  w w .  j ava2s .  c  om*/
    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);
}