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:org.eclipse.mylyn.internal.reviews.ui.views.ReviewExplorer.java

License:Open Source License

void updateColumn(TreeViewer viewer, final TableColumnProvider provider) {
    TreeColumn column = null;/*from   w  w w. j  a  va  2 s  . c om*/
    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    final DelegatingStyledCellLabelProvider styledLabelProvider = new DelegatingStyledCellLabelProvider(
            provider) {
        @Override
        public String getToolTipText(Object element) {
            //For some reason tooltips are not delegated..
            return provider.getToolTipText(element);
        };
    };
    viewerColumn.setLabelProvider(styledLabelProvider);
    column = viewerColumn.getColumn();
    column.setText(provider.getTitle());
    if (!provider.isFillAvailable()) {
        column.setWidth(provider.getMinimumSize());
    } else {
        int width = viewer.getTree().getClientArea().width;
        if (!viewer.getTree().getVerticalBar().isVisible()) {
            width -= viewer.getTree().getVerticalBar().getSize().x;
        }
        int allWidths = 0;
        for (TableColumnProvider provider2 : currentProvider.getColumnProviders()) {
            if (provider2 != provider) {
                allWidths += provider2.getMinimumSize();
            }
        }
        column.setWidth((width - allWidths));
    }
    TableLayout layout = (TableLayout) viewer.getTree().getLayout();
    layout.addColumnData(new ColumnWeightData(provider.getWeight(), provider.getMinimumSize()));
}

From source file:org.eclipse.mylyn.internal.team.ui.history.TaskHistoryPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.FULL_SELECTION);
    Tree tree = viewer.getTree();// ww  w.  j  a va 2  s .co  m
    tree.setHeaderVisible(true);

    TreeViewerColumn authorViewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    authorViewerColumn.setLabelProvider(new AuthorLabelProvider());
    TreeColumn authorColumn = authorViewerColumn.getColumn();
    authorColumn.setText(Messages.TaskHistoryPage_Author_Column_Label);
    authorColumn.setWidth(120);
    authorColumn.setData(AbstractColumnViewerSupport.KEY_COLUMN_CAN_HIDE, false);

    TreeViewerColumn timeViewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    timeViewerColumn.setLabelProvider(new TimeLabelProvider());
    TreeColumn timeColumn = timeViewerColumn.getColumn();
    timeColumn.setText(Messages.TaskHistoryPage_Time_Column_Label);
    timeColumn.setWidth(140);

    TreeViewerColumn fieldViewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    fieldViewerColumn.setLabelProvider(new FieldLabelProvider());
    TreeColumn fieldColumn = fieldViewerColumn.getColumn();
    fieldColumn.setText(Messages.TaskHistoryPage_Field_Column_Label);
    fieldColumn.setWidth(120);

    TreeViewerColumn removedViewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    removedViewerColumn.setLabelProvider(new RemovedLabelProvider());
    TreeColumn remmovedColumn = removedViewerColumn.getColumn();
    remmovedColumn.setText(Messages.TaskHistoryPage_Removed_Column_Label);
    remmovedColumn.setWidth(120);

    TreeViewerColumn addedViewerColumn = new TreeViewerColumn(viewer, SWT.LEFT);
    addedViewerColumn.setLabelProvider(new AddedLabelProvider());
    TreeColumn addedColumn = addedViewerColumn.getColumn();
    addedColumn.setText(Messages.TaskHistoryPage_Added_Column_Label);
    addedColumn.setWidth(120);

    contentProvider = new TaskHistoryContentProvider();
    viewer.setContentProvider(contentProvider);

    viewer.addDoubleClickListener(new IDoubleClickListener() {
        public void doubleClick(DoubleClickEvent event) {
            Object item = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (item instanceof TaskRevision) {
                final TaskRevision revision = (TaskRevision) item;
                final TaskHistory history = (TaskHistory) viewer.getInput();

                CompareConfiguration configuration = new CompareConfiguration();
                configuration.setProperty(CompareConfiguration.IGNORE_WHITESPACE, Boolean.valueOf(true));
                configuration.setLeftEditable(false);
                configuration.setLeftLabel(Messages.TaskHistoryPage_Old_Value_Label);
                configuration.setRightEditable(false);
                configuration.setRightLabel(Messages.TaskHistoryPage_New_Value_Label);
                CompareEditorInput editorInput = new CompareEditorInput(configuration) {
                    @Override
                    protected Object prepareInput(IProgressMonitor monitor)
                            throws InvocationTargetException, InterruptedException {
                        try {
                            AbstractRepositoryConnector connector = TasksUiPlugin.getRepositoryManager()
                                    .getRepositoryConnector(history.getTask().getConnectorKind());
                            TaskData newData = connector.getTaskData(history.getRepository(),
                                    history.getTask().getTaskId(), monitor);
                            TaskData oldData = TasksUiInternal.computeTaskData(newData, history,
                                    revision.getId(), monitor);
                            return new TaskDataDiffNode(Differencer.CHANGE, oldData, newData);
                        } catch (CoreException e) {
                            throw new InvocationTargetException(e);
                        }
                    }
                };
                CompareUI.openCompareEditor(editorInput);
            }
        }
    });
}

From source file:org.eclipse.mylyn.reviews.r4e.ui.internal.dialogs.NewAnomalyInputDialog.java

License:Open Source License

/**
 * Configures the dialog form and creates form content. Clients should override this method.
 * // w ww .  j  av a2 s.  com
 * @param mform
 *            the dialog form
 */
@Override
protected void createFormContent(final IManagedForm mform) {

    final FormToolkit toolkit = mform.getToolkit();
    final ScrolledForm sform = mform.getForm();
    sform.setExpandVertical(true);
    final Composite composite = sform.getBody();
    final GridLayout layout = new GridLayout(4, false);
    composite.setLayout(layout);
    GridData textGridData = null;

    //Basic parameters section
    final Section basicSection = toolkit.createSection(composite, Section.DESCRIPTION
            | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE | ExpandableComposite.EXPANDED);
    final GridData basicSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    basicSectionGridData.horizontalSpan = 4;
    basicSection.setLayoutData(basicSectionGridData);
    basicSection.setText(R4EUIConstants.BASIC_PARAMS_HEADER);
    basicSection.setDescription(BASIC_PARAMS_HEADER_MSG);
    basicSection.addExpansionListener(new ExpansionAdapter() {
        @Override
        public void expansionStateChanged(ExpansionEvent e) {
            getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
        }
    });

    final Composite basicSectionClient = toolkit.createComposite(basicSection);
    basicSectionClient.setLayout(layout);
    basicSection.setClient(basicSectionClient);

    //Anomaly Title
    Label label = toolkit.createLabel(basicSectionClient, R4EUIConstants.ANOMALY_TITLE_LABEL_VALUE);
    label.setToolTipText(R4EUIConstants.ANOMALY_TITLE_TOOLTIP);
    label.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
    fAnomalyTitleInputTextField = toolkit.createText(basicSectionClient, "", SWT.SINGLE | SWT.BORDER);
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 3;
    fAnomalyTitleInputTextField.setToolTipText(R4EUIConstants.ANOMALY_TITLE_TOOLTIP);
    fAnomalyTitleInputTextField.setLayoutData(textGridData);
    fAnomalyTitleInputTextField.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            // ignore
            if (fAnomalyTitleInputTextField.getText().length() > 0
                    && fAnomalyDescriptionInputTextField.getText().length() > 0) {
                getButton(IDialogConstants.OK_ID).setEnabled(true);
            } else {
                getButton(IDialogConstants.OK_ID).setEnabled(false);
            }
        }
    });

    //Anomaly Description
    label = toolkit.createLabel(basicSectionClient, R4EUIConstants.ANOMALY_DESCRIPTION_LABEL_VALUE);
    label.setToolTipText(R4EUIConstants.ANOMALY_DESCRIPTION_TOOLTIP);
    label.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));
    fAnomalyDescriptionInputTextField = toolkit.createText(basicSectionClient, "",
            SWT.MULTI | SWT.V_SCROLL | SWT.BORDER);
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 3;
    textGridData.heightHint = fAnomalyTitleInputTextField.getLineHeight() * 7;
    fAnomalyDescriptionInputTextField.setToolTipText(R4EUIConstants.ANOMALY_DESCRIPTION_TOOLTIP);
    fAnomalyDescriptionInputTextField.setLayoutData(textGridData);
    fAnomalyDescriptionInputTextField.addModifyListener(new ModifyListener() {
        public void modifyText(ModifyEvent e) {
            // ignore
            if (fAnomalyTitleInputTextField.getText().length() > 0
                    && fAnomalyDescriptionInputTextField.getText().length() > 0) {
                getButton(IDialogConstants.OK_ID).setEnabled(true);
            } else {
                getButton(IDialogConstants.OK_ID).setEnabled(false);
            }
        }
    });

    //Extra parameters section
    final Section extraSection = toolkit.createSection(composite,
            Section.DESCRIPTION | ExpandableComposite.TITLE_BAR | ExpandableComposite.TWISTIE);
    final GridData extraSectionGridData = new GridData(GridData.FILL, GridData.FILL, true, true);
    extraSectionGridData.horizontalSpan = 4;
    extraSection.setLayoutData(extraSectionGridData);
    extraSection.setText(R4EUIConstants.EXTRA_PARAMS_HEADER);
    extraSection.setDescription(EXTRA_PARAMS_HEADER_MSG);
    extraSection.addExpansionListener(new ExpansionAdapter() {
        @Override
        public void expansionStateChanged(ExpansionEvent e) {
            getShell().setSize(getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT));
        }
    });

    final Composite extraSectionClient = toolkit.createComposite(extraSection);
    extraSectionClient.setLayout(layout);
    extraSection.setClient(extraSectionClient);

    //Anomaly Class
    label = toolkit.createLabel(extraSectionClient, R4EUIConstants.CLASS_LABEL);
    label.setToolTipText(R4EUIConstants.ANOMALY_CLASS_TOOLTIP);
    label.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));

    fAnomalyClass = new CCombo(extraSectionClient, SWT.BORDER | SWT.READ_ONLY);
    fAnomalyClass.setItems(UIUtils.getClasses());
    int count = UIUtils.getClasses().length;
    fAnomalyClass.setVisibleItemCount(count);
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 3;
    fAnomalyClass.setToolTipText(R4EUIConstants.ANOMALY_CLASS_TOOLTIP);
    fAnomalyClass.setLayoutData(textGridData);

    //Anomaly Rank    
    label = toolkit.createLabel(extraSectionClient, R4EUIConstants.RANK_LABEL);
    label.setToolTipText(R4EUIConstants.ANOMALY_RANK_TOOLTIP);
    label.setLayoutData(new GridData(GridData.BEGINNING, GridData.BEGINNING, false, false));

    fAnomalyRank = new CCombo(extraSectionClient, SWT.BORDER | SWT.READ_ONLY);
    fAnomalyRank.setItems(UIUtils.getRanks());
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 3;
    fAnomalyRank.setToolTipText(R4EUIConstants.ANOMALY_CLASS_TOOLTIP);
    fAnomalyRank.setLayoutData(textGridData);

    //Assigned To
    label = toolkit.createLabel(extraSectionClient, R4EUIConstants.ASSIGNED_TO_LABEL);
    textGridData = new GridData(GridData.FILL, GridData.FILL, false, false);
    textGridData.horizontalSpan = 1;
    label.setLayoutData(textGridData);

    fAssignedToCombo = new CCombo(extraSectionClient, SWT.BORDER | SWT.READ_ONLY);
    final String[] participants = R4EUIModelController.getActiveReview().getParticipantIDs()
            .toArray(new String[R4EUIModelController.getActiveReview().getParticipantIDs().size()]);
    fAssignedToCombo.removeAll();
    fAssignedToCombo.add("");
    for (String participant : participants) {
        fAssignedToCombo.add(participant);
    }
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 3;
    fAssignedToCombo.setToolTipText(R4EUIConstants.ASSIGNED_TO_TOOLTIP);
    fAssignedToCombo.setLayoutData(textGridData);

    //Due Date
    toolkit.setBorderStyle(SWT.NULL);
    label = toolkit.createLabel(extraSectionClient, R4EUIConstants.DUE_DATE_LABEL);
    textGridData = new GridData(SWT.FILL, SWT.CENTER, false, false);
    textGridData.horizontalSpan = 1;
    label.setLayoutData(textGridData);

    final Composite dateComposite = toolkit.createComposite(extraSectionClient);
    textGridData = new GridData(SWT.FILL, SWT.CENTER, true, true);
    textGridData.horizontalSpan = 3;
    dateComposite.setToolTipText(R4EUIConstants.ANOMALY_DUE_DATE_TOOLTIP);
    dateComposite.setLayoutData(textGridData);
    dateComposite.setLayout(new GridLayout(2, false));

    fDateText = toolkit.createText(dateComposite, "", SWT.READ_ONLY);
    fDateText.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
    fDateText.setEditable(false);
    toolkit.setBorderStyle(SWT.BORDER);

    final Composite dateButtonComposite = toolkit.createComposite(dateComposite);
    textGridData = new GridData(SWT.FILL, SWT.CENTER, true, true);
    textGridData.horizontalSpan = 1;
    dateButtonComposite.setToolTipText(R4EUIConstants.ANOMALY_DUE_DATE_TOOLTIP);
    dateButtonComposite.setLayoutData(textGridData);
    dateButtonComposite.setLayout(new GridLayout(2, false));

    final Button calendarButton = toolkit.createButton(dateButtonComposite, R4EUIConstants.UPDATE_LABEL,
            SWT.NONE);
    calendarButton.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
    calendarButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            final ICalendarDialog dialog = R4EUIDialogFactory.getInstance().getCalendarDialog();
            final int result = dialog.open();
            if (result == Window.OK) {
                final SimpleDateFormat dateFormat = new SimpleDateFormat(R4EUIConstants.SIMPLE_DATE_FORMAT);
                Date dialogDate = dialog.getDate();
                String dialogDateStr = dateFormat.format(dialogDate);
                Calendar cal = Calendar.getInstance();
                cal.setTime(new Date());
                cal.add(Calendar.DAY_OF_YEAR, -1);
                if (dialogDate.after(cal.getTime())) {
                    fDateText.setText(dialogDateStr);
                    fAnomalyDueDateValue = dialogDate;
                } else {
                    UIUtils.displayPastDateError(dialogDate, dialogDateStr);
                }
            }
        }

        public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
            // No implementation needed
        }
    });

    final Button clearButton = toolkit.createButton(dateButtonComposite, R4EUIConstants.CLEAR_LABEL, SWT.NONE);
    clearButton.setLayoutData(new GridData(SWT.CENTER, SWT.CENTER, false, false));
    clearButton.addSelectionListener(new SelectionListener() {
        public void widgetSelected(SelectionEvent e) {
            fDateText.setText("");
            fAnomalyDueDateValue = null;
        }

        public void widgetDefaultSelected(SelectionEvent e) { // $codepro.audit.disable emptyMethod
            // No implementation needed
        }
    });

    //Rule Tree
    label = toolkit.createLabel(extraSectionClient, ADD_RULE_DIALOG_VALUE);
    textGridData = new GridData(GridData.FILL, GridData.FILL, true, false);
    textGridData.horizontalSpan = 4;
    label.setLayoutData(textGridData);

    fRuleTreeViewer = new TreeViewer(extraSectionClient,
            SWT.FULL_SELECTION | SWT.BORDER | SWT.READ_ONLY | SWT.H_SCROLL | SWT.V_SCROLL);
    fRuleTreeViewer.setContentProvider(new ReviewNavigatorContentProvider());
    fRuleTreeViewer.getTree().setHeaderVisible(true);
    ColumnViewerToolTipSupport.enableFor(fRuleTreeViewer, ToolTip.NO_RECREATE);
    final TreeViewerColumn elementColumn = new TreeViewerColumn(fRuleTreeViewer, SWT.NONE);
    elementColumn.getColumn().setText("Rule Tree");
    elementColumn.getColumn().setWidth(DEFAULT_ELEMENT_COLUMN_WIDTH);
    elementColumn.setLabelProvider(new ReviewNavigatorLabelProvider() {
        @Override
        public String getToolTipText(Object element) {
            if (element instanceof R4EUIRule) {
                return ((R4EUIRule) element).getRule().getDescription();
            }
            return null;
        }

        @Override
        public void update(ViewerCell cell) {
            final IR4EUIModelElement element = (IR4EUIModelElement) cell.getElement();
            if (element instanceof R4EUIRuleSet && !element.isOpen()) {
                cell.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_RED));
            } else {
                cell.setForeground(getShell().getDisplay().getSystemColor(SWT.COLOR_BLACK));
            }
            cell.setText(element.getName());
            cell.setImage(element.getImage(element.getImageLocation()));
        }
    });

    final TreeViewerColumn titleColumn = new TreeViewerColumn(fRuleTreeViewer, SWT.NONE);
    titleColumn.getColumn().setText(R4EUIConstants.TITLE_LABEL);
    titleColumn.getColumn().setWidth(DEFAULT_TREE_COLUMN_WIDTH);
    titleColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof R4EUIRule) {
                return ((R4EUIRule) element).getRule().getTitle();
            }
            return null;
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof R4EUIRule) {
                return ((R4EUIRule) element).getRule().getDescription();
            }
            return null;
        }

        @Override
        public Point getToolTipShift(Object object) {
            return new Point(R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_X, R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_Y);
        }

        @Override
        public int getToolTipDisplayDelayTime(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_DELAY;
        }

        @Override
        public int getToolTipTimeDisplayed(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_TIME;
        }

        @Override
        public void update(ViewerCell cell) {
            final Object element = cell.getElement();
            if (element instanceof R4EUIRule) {
                cell.setText(((R4EUIRule) element).getRule().getTitle());
            } else {
                cell.setText(null);
            }
        }
    });

    final TreeViewerColumn classColumn = new TreeViewerColumn(fRuleTreeViewer, SWT.NONE);
    classColumn.getColumn().setText(R4EUIConstants.CLASS_LABEL);
    classColumn.getColumn().setWidth(DEFAULT_TREE_COLUMN_WIDTH);
    classColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof R4EUIRule) {
                return UIUtils.getClassStr(((R4EUIRule) element).getRule().getClass_());
            }
            return null;
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof R4EUIRule) {
                return ((R4EUIRule) element).getRule().getDescription();
            }
            return null;
        }

        @Override
        public Point getToolTipShift(Object object) {
            return new Point(R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_X, R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_Y);
        }

        @Override
        public int getToolTipDisplayDelayTime(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_DELAY;
        }

        @Override
        public int getToolTipTimeDisplayed(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_TIME;
        }

        @Override
        public void update(ViewerCell cell) {
            final Object element = cell.getElement();
            if (element instanceof R4EUIRule) {
                cell.setText(UIUtils.getClassStr(((R4EUIRule) element).getRule().getClass_()));
            } else {
                cell.setText(null);
            }
        }
    });

    final TreeViewerColumn rankColumn = new TreeViewerColumn(fRuleTreeViewer, SWT.NONE);
    rankColumn.getColumn().setText(R4EUIConstants.RANK_LABEL);
    rankColumn.getColumn().setWidth(DEFAULT_TREE_COLUMN_WIDTH);
    rankColumn.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof R4EUIRule) {
                return UIUtils.getRankStr(((R4EUIRule) element).getRule().getRank());
            }
            return null;
        }

        @Override
        public String getToolTipText(Object element) {
            if (element instanceof R4EUIRule) {
                return ((R4EUIRule) element).getRule().getDescription();
            }
            return null;
        }

        @Override
        public Point getToolTipShift(Object object) {
            return new Point(R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_X, R4EUIConstants.TOOLTIP_DISPLAY_OFFSET_Y);
        }

        @Override
        public int getToolTipDisplayDelayTime(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_DELAY;
        }

        @Override
        public int getToolTipTimeDisplayed(Object object) {
            return R4EUIConstants.TOOLTIP_DISPLAY_TIME;
        }

        @Override
        public void update(ViewerCell cell) {
            final Object element = cell.getElement();
            if (element instanceof R4EUIRule) {
                cell.setText(UIUtils.getRankStr(((R4EUIRule) element).getRule().getRank()));
            } else {
                cell.setText(null);
            }
        }
    });

    fRuleTreeViewer.setInput(R4EUIModelController.getRootElement());

    fRuleTreeViewer.addFilter(new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            //Only display rule sets that are included in the parent review group
            if (element instanceof R4EUIRuleSet || element instanceof R4EUIRuleArea
                    || element instanceof R4EUIRuleViolation || element instanceof R4EUIRule) {
                //Get parent RuleSet
                IR4EUIModelElement parentRuleSetElement = (IR4EUIModelElement) element;
                while (!(parentRuleSetElement instanceof R4EUIRuleSet)
                        && null != parentRuleSetElement.getParent()) {
                    if (!parentRuleSetElement.isEnabled()) {
                        return false;
                    }
                    parentRuleSetElement = parentRuleSetElement.getParent();
                }
                //If the current review group contains a reference to this Rule Set, display it
                if ((((R4EUIReviewGroup) R4EUIModelController.getActiveReview().getParent()).getRuleSets()
                        .contains(parentRuleSetElement))) {
                    if (!parentRuleSetElement.isOpen()) {
                        try {
                            ((R4EUIRuleSet) parentRuleSetElement).openReadOnly();
                            fOpenRuleSets.add((R4EUIRuleSet) parentRuleSetElement);
                        } catch (ResourceHandlingException e) {
                            R4EUIPlugin.Ftracer
                                    .traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
                            R4EUIPlugin.getDefault().logError("Exception: " + e.toString(), e);
                        } catch (CompatibilityException e) {
                            R4EUIPlugin.Ftracer
                                    .traceError("Exception: " + e.toString() + " (" + e.getMessage() + ")");
                            R4EUIPlugin.getDefault().logError("Exception: " + e.toString(), e);
                        }
                    }
                    return true;
                }
            }
            return false;
        }
    });
    fRuleTreeViewer.expandAll();
    fRuleTreeViewer.refresh();

    textGridData = new GridData(GridData.FILL, GridData.FILL, true, true);
    textGridData.horizontalSpan = 4;
    fRuleTreeViewer.getTree().setLayoutData(textGridData);
    fRuleTreeViewer.addSelectionChangedListener(new ISelectionChangedListener() {
        public void selectionChanged(SelectionChangedEvent event) {
            //Only Rules are selectable
            if (event.getSelection() instanceof IStructuredSelection) {
                if (null == ((IStructuredSelection) event.getSelection()).getFirstElement()) {
                    return;
                }
                if (((IStructuredSelection) event.getSelection()).getFirstElement() instanceof R4EUIRule) {
                    final R4EUIRule rule = (R4EUIRule) ((IStructuredSelection) event.getSelection())
                            .getFirstElement();
                    if (!rule.equals(fSelectedRule)) { //toggle selection
                        fAnomalyTitleInputTextField.setText(rule.getRule().getTitle());
                        fAnomalyDescriptionInputTextField.setText(rule.getRule().getDescription());
                        fAnomalyClass.select(rule.getRule().getClass_().getValue());
                        fAnomalyRank.select(rule.getRule().getRank().getValue());
                        fAnomalyClass.setEnabled(false);
                        fAnomalyRank.setEnabled(false);
                        fAnomalyTitleInputTextField.setEnabled(false);
                        fSelectedRule = rule;
                        fRuleId = buildRuleId();
                        return;
                    }
                }
            }
            fRuleTreeViewer.setSelection(null);
            fAnomalyClass.setEnabled(true);
            fAnomalyRank.setEnabled(true);
            fAnomalyTitleInputTextField.setEnabled(true);
            fSelectedRule = null;
        }
    });

    //Set default focus
    fAnomalyTitleInputTextField.setFocus();
}

From source file:org.eclipse.mylyn.reviews.tasks.ui.internal.editors.TreeHelper.java

License:Open Source License

public static TreeViewerColumn createColumn(TreeViewer tree, IColumnSpec<?> columnSpec) {
    TreeViewerColumn column = new TreeViewerColumn(tree, SWT.LEFT);
    column.getColumn().setText(columnSpec.getTitle());
    column.getColumn().setWidth(100);//ww  w  .  ja  va2s . c o  m
    column.getColumn().setResizable(true);
    return column;
}

From source file:org.eclipse.nebula.widgets.pagination.snippets.tree.ModelSortPageableTreeExample.java

License:Open Source License

private static void createColumns(final TreeViewer viewer) {

    // First column is for the first name
    TreeViewerColumn col = createTreeViewerColumn(viewer, "Name", 150);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override/*  w  w w  . java 2  s .c o  m*/
        public String getText(Object element) {
            if (element instanceof Team) {
                Team p = (Team) element;
                return p.getName();
            }
            Person p = (Person) element;
            return p.getName();
        }
    });
    col.getColumn().addSelectionListener(new SortTreeColumnSelectionListener("name"));

    // Second column is for the adress
    col = createTreeViewerColumn(viewer, "Adress", 150);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            if (element instanceof Person) {
                Person p = (Person) element;
                Address address = p.getAddress();
                if (address == null) {
                    return "";
                }
                return address.getName();
            }
            return "";
        }
    });
    col.getColumn().addSelectionListener(new SortTreeColumnSelectionListener("address.name"));
}

From source file:org.eclipse.nebula.widgets.pagination.snippets.tree.ModelSortPageableTreeExample.java

License:Open Source License

private static TreeViewerColumn createTreeViewerColumn(TreeViewer viewer, String title, int bound) {
    final TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    final TreeColumn column = viewerColumn.getColumn();
    column.setText(title);/*from ww w. j ava  2s  .c  o m*/
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    return viewerColumn;
}

From source file:org.eclipse.oomph.projectconfig.presentation.sync.ProjectConfigSynchronizerDialog.java

License:Open Source License

protected void createUI(Composite container) {
    if (managedPropertiesInput != null) {
        Label label = new Label(container, SWT.NONE);
        label.setText("Modified Managed Properties:");
        label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));

        {/*from w  ww  . ja  va2  s  .  c  o  m*/
            Composite composite = new Composite(container, SWT.NONE);
            composite.setLayout(new GridLayout(2, false));
            composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
            Button overWriteButton = new Button(composite, SWT.RADIO);
            overWriteButton.setText("Overwrite with managing property");
            if (!propagate) {
                overWriteButton.setSelection(true);
            }
            overWriteButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    propagate = false;
                    ProjectConfigSynchronizerPreferences.setPropagate(false);
                    ProjectConfigSynchronizerPreferences.flush();
                }
            });

            Button propogateButton = new Button(composite, SWT.RADIO);
            propogateButton.setText("Propagate to managing property");
            if (propagate) {
                propogateButton.setSelection(true);
            }
            propogateButton.addSelectionListener(new SelectionAdapter() {
                @Override
                public void widgetSelected(SelectionEvent e) {
                    propagate = true;
                    ProjectConfigSynchronizerPreferences.setPropagate(true);
                    ProjectConfigSynchronizerPreferences.flush();
                }
            });
        }

        managedPropertiesViewer = new TreeViewer(container, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

        ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
                ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
        AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
        managedPropertiesViewer.setLabelProvider(labelProvider);
        managedPropertiesViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

        final Tree tree = managedPropertiesViewer.getTree();
        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        tree.setLinesVisible(true);
        tree.setHeaderVisible(true);

        managedPropertiesViewer
                .setColumnProperties(new String[] { "property", "newValue", "profile", "profileValue" });

        final TreeViewerColumn propertyViewerColumn = new TreeViewerColumn(managedPropertiesViewer, SWT.NONE);
        final TreeColumn propertyColumn = propertyViewerColumn.getColumn();
        propertyViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()));
        propertyColumn.setText("Property");
        propertyColumn.setResizable(true);

        final TreeViewerColumn newValueViewerColumn = new TreeViewerColumn(managedPropertiesViewer, SWT.NONE);
        newValueViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()) {
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            return PreferencesFactory.eINSTANCE
                                    .convertEscapedString(propertyItem.getProperty().getValue());
                        }

                        return "";
                    }

                    @Override
                    public Image getImage(Object element) {
                        return null;
                    }
                });

        final TreeColumn newValueColumn = newValueViewerColumn.getColumn();
        newValueColumn.setText("New Value");
        newValueColumn.setResizable(true);

        final TreeViewerColumn profileViewerColumn = new TreeViewerColumn(managedPropertiesViewer, SWT.NONE);
        profileViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()) {
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            Property managingProperty = propertyItem.getOtherProperty();
                            PreferenceFilter managingFilter = getManagingFilter(managingProperty);
                            if (managingFilter != null) {
                                PreferenceProfile preferenceProfile = managingFilter.getPreferenceProfile();
                                Project project = preferenceProfile.getProject();
                                return project.getPreferenceNode().getName() + "/"
                                        + preferenceProfile.getName();
                            }
                        }

                        return "";
                    }

                    private PreferenceFilter getManagingFilter(Property managingProperty) {
                        String name = managingProperty.getName();
                        PreferenceNode preferenceNode = managingProperty.getParent();
                        WorkspaceConfiguration workspaceConfiguration = (WorkspaceConfiguration) managingProperty
                                .eResource().getContents().get(0);
                        String projectName = managingProperty.getScope().getName();
                        Project project = workspaceConfiguration.getProject(projectName);
                        for (PreferenceProfile preferenceProfile : project.getPreferenceProfiles()) {
                            for (PreferenceFilter preferenceFilter : preferenceProfile.getPreferenceFilters()) {
                                if (preferenceFilter.getPreferenceNode() == preferenceNode
                                        && preferenceFilter.matches(name)) {
                                    return preferenceFilter;
                                }
                            }
                        }

                        return null;
                    }

                    @Override
                    public Image getImage(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            PreferenceFilter managingFilter = getManagingFilter(
                                    propertyItem.getOtherProperty());
                            if (managingFilter != null) {
                                return labelProvider.getImage(managingFilter.getPreferenceProfile());
                            }
                        }

                        return null;
                    }
                });

        final TreeColumn profileColumn = profileViewerColumn.getColumn();
        profileColumn.setText("Profile");
        profileColumn.setResizable(true);

        final TreeViewerColumn profileValueViewerColumn = new TreeViewerColumn(managedPropertiesViewer,
                SWT.NONE);
        profileValueViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()) {
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            return PreferencesFactory.eINSTANCE
                                    .convertEscapedString(propertyItem.getOtherProperty().getValue());
                        }

                        return "";
                    }

                    @Override
                    public Image getImage(Object element) {
                        return null;
                    }
                });

        final TreeColumn profileValueColumn = profileValueViewerColumn.getColumn();
        profileValueColumn.setText("Profile Value");
        profileValueColumn.setResizable(true);

        final ControlAdapter columnResizer = new ControlAdapter() {
            @Override
            public void controlResized(ControlEvent e) {
                int width = tree.getSize().x;
                ScrollBar bar = tree.getVerticalBar();
                if (bar != null && bar.isVisible()) {
                    width -= bar.getSize().x;
                }

                int columnWidth = width * 4 / 9;
                propertyColumn.setWidth(columnWidth);

                int remainingWidth = width - columnWidth;
                columnWidth = remainingWidth * 4 / 9;
                profileColumn.setWidth(columnWidth);

                remainingWidth -= columnWidth;
                newValueColumn.setWidth(remainingWidth / 2);
                profileValueColumn.setWidth(remainingWidth - remainingWidth / 2);

                tree.removeControlListener(this);
            }
        };

        tree.addControlListener(columnResizer);

        managedPropertiesViewer.setInput(managedPropertiesInput);
        managedPropertiesViewer.expandAll();

        Label separator = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
        separator.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    }

    if (unmanagedPropertiesInput != null) {

        Label label = new Label(container, SWT.NONE);
        label.setText("Unmanaged Properties:");
        label.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));

        Button editButton = new Button(container, SWT.CHECK);
        editButton.setText("Edit");
        editButton.setSelection(edit);
        editButton.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                edit = !edit;
                ProjectConfigSynchronizerPreferences.setEdit(edit);
                ProjectConfigSynchronizerPreferences.flush();
            }
        });
        editButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));

        unmanagedPropertiesViewer = new TreeViewer(container, SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL);

        ComposedAdapterFactory adapterFactory = new ComposedAdapterFactory(
                ComposedAdapterFactory.Descriptor.Registry.INSTANCE);
        AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
        unmanagedPropertiesViewer.setLabelProvider(labelProvider);
        unmanagedPropertiesViewer.setContentProvider(new AdapterFactoryContentProvider(adapterFactory));

        final Tree tree = unmanagedPropertiesViewer.getTree();
        tree.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
        tree.setLinesVisible(true);
        tree.setHeaderVisible(true);

        unmanagedPropertiesViewer.setColumnProperties(new String[] { "property", "newValue", "oldValue" });

        final TreeViewerColumn propertyViewerColumn = new TreeViewerColumn(unmanagedPropertiesViewer, SWT.NONE);
        final TreeColumn propertyColumn = propertyViewerColumn.getColumn();
        propertyViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()));
        propertyColumn.setText("Property");
        propertyColumn.setResizable(true);

        final TreeViewerColumn newValueViewerColumn = new TreeViewerColumn(unmanagedPropertiesViewer, SWT.NONE);
        newValueViewerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()) {
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            return PreferencesFactory.eINSTANCE
                                    .convertEscapedString(propertyItem.getProperty().getValue());
                        }

                        return "";
                    }

                    @Override
                    public Image getImage(Object element) {
                        return null;
                    }
                });

        final TreeColumn newValueColumn = newValueViewerColumn.getColumn();
        newValueColumn.setText("New Value");
        newValueColumn.setResizable(true);

        final TreeViewerColumn oldValueValuerColumn = new TreeViewerColumn(unmanagedPropertiesViewer, SWT.NONE);
        oldValueValuerColumn
                .setLabelProvider(new DecoratingColumLabelProvider(labelProvider, new DialogLabelDecorator()) {
                    @Override
                    public String getText(Object element) {
                        if (element instanceof PropertyItem) {
                            PropertyItem propertyItem = (PropertyItem) element;
                            Property otherProperty = propertyItem.getOtherProperty();
                            if (otherProperty != null) {
                                return PreferencesFactory.eINSTANCE
                                        .convertEscapedString(otherProperty.getValue());
                            }
                        }

                        return "";
                    }

                    @Override
                    public Image getImage(Object element) {
                        return null;
                    }
                });

        final TreeColumn oldValueColumn = oldValueValuerColumn.getColumn();
        oldValueColumn.setText("Old Value");
        oldValueColumn.setResizable(true);

        final ControlAdapter columnResizer = new ControlAdapter() {
            @Override
            public void controlResized(ControlEvent e) {
                int width = tree.getSize().x;
                ScrollBar bar = tree.getVerticalBar();
                if (bar != null && bar.isVisible()) {
                    width -= bar.getSize().x;
                }

                int columnWidth = width / 2;
                propertyColumn.setWidth(columnWidth);

                int remainingWidth = width - columnWidth;
                columnWidth = remainingWidth * 2;
                newValueColumn.setWidth(remainingWidth / 2);
                oldValueColumn.setWidth(remainingWidth - remainingWidth / 2);

                tree.removeControlListener(this);
            }
        };

        tree.addControlListener(columnResizer);

        unmanagedPropertiesViewer.setInput(unmanagedPropertiesInput);
        unmanagedPropertiesViewer.expandAll();

        Label separator = new Label(container, SWT.HORIZONTAL | SWT.SEPARATOR);
        separator.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false, 1, 1));
    }
}

From source file:org.eclipse.paho.mqtt.ui.support.tree.TreeViewerColumnBuilder.java

License:Open Source License

/**
 * Builds the column and returns the TreeViewerColumn
 *//*  w w  w . j a  v  a2  s  . c  o  m*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public TreeViewerColumn build() {
    // create column
    TreeViewerColumn viewerColumn = new TreeViewerColumn(builder.getViewer(), style);
    TreeColumn column = viewerColumn.getColumn();
    if (headerText != null) {
        column.setText(headerText);
    }
    column.setMoveable(moveable);
    column.setResizable(resizable);

    // set label provider
    if (cellLabelProvider != null) {
        viewerColumn.setLabelProvider(cellLabelProvider);
    } else {
        if (propertyName == null) {
            viewerColumn.setLabelProvider(new ColumnLabelProvider());
        } else {
            PropertyDescriptor descriptor = builder.getPropertyDescriptor(propertyName);
            viewerColumn.setLabelProvider(new PropertyCellLabelProvider(descriptor, valueFormatter));
        }
    }

    // set editing support
    if (editingSupport != null) {
        viewerColumn.setEditingSupport(editingSupport);
    }

    return viewerColumn;
}

From source file:org.eclipse.paho.mqtt.ui.views.NavigationView.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    setPartName(Messages.NAV_TREE_TITLE);

    // load the data from data store
    connections.addAll(Paho.loadConnections());
    Collections.sort(connections, new Comparator<Connection>() {
        @Override//from   w w w.jav  a  2s. c om
        public int compare(Connection o1, Connection o2) {
            return o1.getName().compareToIgnoreCase(o2.getName());
        }
    });

    // build tree
    TreeViewerBuilder builder = new TreeViewerBuilder(parent,
            SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION | SWT.BORDER);
    builder.contentProvider(new NavTreeContentProvider()).labelProvider(new NavTreeLabelProvider())
            .selectionChangedListener(new ISelectionChangedListener() {
                @SuppressWarnings("unchecked")
                public void selectionChanged(final SelectionChangedEvent event) {
                    Display.getDefault().asyncExec(new Runnable() {
                        @Override
                        public void run() {
                            IStructuredSelection selection = (IStructuredSelection) event.getSelection();
                            selectedConnections = selection.toList();

                            // only open one connection each selection
                            Connection connection = (Connection) selection.getFirstElement();
                            if (connection != null) {
                                IEditorPart editor = Paho.openConnectionEditor(connection);
                                editors.put(connection.getId(), editor);
                            }
                        }
                    });
                }
            }).makeEditable().input(connections);

    // build view
    viewer = builder.build();

    // build column
    final TreeViewerColumn column = builder.columnBuilder().labelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            return ((Connection) element).getName();
        }

        @Override
        public Image getImage(Object obj) {
            return Images.get(ImageKeys.IMG_CONNECTION);
        }

        @Override
        public String getToolTipText(Object element) {
            return Messages.TOOLTIP_DBCLICK_TO_EDIT;
        }

    }).editingSupport(new NavTreeEditor(viewer)).build();

    // control listener
    viewer.getControl().addControlListener(new ControlAdapter() {
        @Override
        public void controlResized(ControlEvent e) {
            column.getColumn().setWidth(((Tree) e.getSource()).getBounds().width - 10);
        }
    });

    // Add action
    final Action addAction = new Action() {
        @Override
        public String getText() {
            return Messages.LABEL_NEW_CONNECTION;
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return Images.getDescriptor(ImageKeys.IMG_ADD);
        }

        @Override
        public void run() {
            // send new connection event to request connection creation on
            // nav tree
            Paho.getEventService().sendEvent(Events.of(Selector.ofNewConnection()));
        }
    };

    // Delete action
    final Action deleteAction = new Action() {
        @Override
        public String getText() {
            return Messages.LABEL_DELETE;
        }

        @Override
        public ImageDescriptor getImageDescriptor() {
            return Images.getDescriptor(ImageKeys.IMG_REMOVE);
        }

        @Override
        public void run() {
            // confirm deletion
            if (!MessageDialog.openConfirm(getViewSite().getShell(), Messages.NAV_TREE_DELETE_CONFIRM_TITLE,
                    Messages.NAV_TREE_DELETE_CONFIRM_MESSAGE)) {
                return;
            }

            // delete connections
            for (Connection connection : selectedConnections) {
                doDelete(connection);
            }

            // make selection after deletion
            if (!connections.isEmpty()) {
                // should be previous or next of the removed?
                viewer.setSelection(new TreeSelection(new TreePath(new Object[] { connections.getLast() })),
                        true);
            }

            // refresh view
            viewer.refresh();
        }

        /**
         * @param connection
         */
        private void doDelete(Connection connection) {
            // try disconnect it
            Paho.getConnectionManager().disconnect(connection);

            // remove from the view
            IEditorPart editor = editors.get(connection.getId());
            if (editor != null) {
                Paho.closeConnectionEditor(editor, true);
            }

            // remove from model
            connections.remove(connection);

            // perform persistence deletion
            Paho.deleteConnection(connection);
        }
    };

    MenuManager menuMgr = new MenuManager();
    Menu menu = menuMgr.createContextMenu(viewer.getControl());
    menuMgr.addMenuListener(new IMenuListener() {
        @Override
        public void menuAboutToShow(IMenuManager manager) {
            manager.add(addAction);

            ISelection selection = viewer.getSelection();
            if (!selection.isEmpty()) {
                if (selection instanceof IStructuredSelection) {
                    Connection connection = (Connection) ((IStructuredSelection) selection).getFirstElement();
                    if (connection != null) {
                        manager.add(deleteAction);
                    }
                }
            }
        }
    });
    menuMgr.setRemoveAllWhenShown(true);
    viewer.getControl().setMenu(menu);

    // register event handlers
    eventService = Paho.getEventService();
    eventService.registerHandler(Selector.ofNewConnection(), new IEventHandler<Void>() {
        @Override
        public void handleEvent(Event<Void> e) {
            Display.getDefault().asyncExec(new Runnable() {
                @Override
                public void run() {
                    Connection connection = new Connection("connection" + index++); //$NON-NLS-1$
                    connections.add(connection);
                    viewer.refresh();

                    // select and begin edit
                    viewer.setSelection(new TreeSelection(new TreePath(new Object[] { connection })), true);
                    viewer.editElement(connection, 0);

                    // save connection
                    Paho.saveConnection(connection);
                }
            });
        }
    });

    // auto save the connection
    final Runnable autoSaveJob = new Runnable() {
        @Override
        public void run() {
            List<Connection> copiedConnections = new ArrayList<Connection>();
            copiedConnections.addAll(connections);
            for (Connection connection : copiedConnections) {
                // save connection
                Paho.saveConnection(connection);
            }
        }
    };

    // save changes on data model when shutting down
    Runtime.getRuntime().addShutdownHook(new Thread(autoSaveJob));
}

From source file:org.eclipse.papyrus.diagram.common.dialogs.AbstractCheckedTreeColumnViewerSelectionDialog.java

License:Open Source License

/**
 * /*  ww w.j  a  v  a2 s . com*/
 * @see org.eclipse.papyrus.diagram.common.dialogs.CustomCheckedTreeSelectionDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
 * 
 * @param parent
 * @return
 */
@Override
protected Control createDialogArea(Composite parent) {
    Control ctrl = super.createDialogArea(parent);
    for (int i = 0; i < nbColumns; i++) {
        TreeViewerColumn column = new TreeViewerColumn(getTreeViewer(), SWT.NONE);
        column.getColumn().setText(columnTitles[i]);
        column.getColumn().setWidth(columnWidths[i]);
        column.setLabelProvider(columnCellLabelProvider[i]);
        EditingSupport support = getEditingSupport(i);
        if (support != null) {
            column.setEditingSupport(support);
        }
    }

    getTreeViewer().getTree().setLinesVisible(true);
    getTreeViewer().getTree().setHeaderVisible(true);
    getTreeViewer().getTree().addMouseListener(new MouseListener() {

        /**
         * 
         * @see org.eclipse.swt.events.MouseListener#mouseUp(org.eclipse.swt.events.MouseEvent)
         * 
         * @param e
         */
        public void mouseUp(MouseEvent e) {
            //nothing to do
        }

        /**
         * 
         * @see org.eclipse.swt.events.MouseListener#mouseDown(org.eclipse.swt.events.MouseEvent)
         * 
         * @param e
         */
        public void mouseDown(MouseEvent e) {
            //nothing to do

        }

        /**
         * 
         * @see org.eclipse.swt.events.MouseListener#mouseDoubleClick(org.eclipse.swt.events.MouseEvent)
         * 
         * @param e
         */
        public void mouseDoubleClick(MouseEvent e) {
            //we expand the selected element
            Tree source = (Tree) e.getSource();
            TreeItem[] item = source.getSelection();
            List<?> expandedElements = Arrays.asList(getTreeViewer().getExpandedElements());
            if (getTreeViewer().isExpandable(item[0].getData())) {
                boolean isExpanded = expandedElements.contains(item[0].getData());
                item[0].setExpanded(!isExpanded);
            }
        }
    });
    return ctrl;
}