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.ui.ide.markers.compatibility.internal.ExtendedMarkersView.java

License:Open Source License

/**
 * Create the columns for the receiver./*from w ww .  j av a 2 s.  c o m*/
 * 
 * @param currentColumns
 *            the columns to refresh
 */
private void createColumns(TreeColumn[] currentColumns) {

    Tree tree = viewer.getTree();
    TableLayout layout = new TableLayout();

    MarkerField[] fields = builder.getVisibleFields();

    for (int i = 0; i < fields.length; i++) {
        MarkerField markerField = fields[i];

        // Take into account the expansion indicator
        int columnWidth = markerField.getDefaultColumnWidth(tree);

        if (i == 0) {
            // Compute and store a font metric
            GC gc = new GC(tree);
            gc.setFont(tree.getFont());
            FontMetrics fontMetrics = gc.getFontMetrics();
            gc.dispose();
            columnWidth = Math.max(columnWidth, fontMetrics.getAverageCharWidth() * 5);
        }

        layout.addColumnData(new ColumnPixelData(columnWidth, true, true));
        TreeViewerColumn column;
        if (i < currentColumns.length)
            column = new TreeViewerColumn(viewer, currentColumns[i]);
        else {
            column = new TreeViewerColumn(viewer, SWT.NONE);
            column.getColumn().setResizable(true);
            column.getColumn().setMoveable(true);
            column.getColumn().addSelectionListener(getHeaderListener());
        }

        column.getColumn().setData(MARKER_FIELD, markerField);
        // Show the help in the first column
        column.setLabelProvider(new MarkerColumnLabelProvider(markerField, i == 0));
        column.getColumn().setText(markerField.getColumnHeaderText());
        column.getColumn().setToolTipText(markerField.getColumnTooltipText());
        column.getColumn().setImage(markerField.getColumnHeaderImage());

        EditingSupport support = markerField.getEditingSupport(viewer);
        if (support != null)
            column.setEditingSupport(support);

        if (builder.getPrimarySortField().equals(markerField))
            updateDirectionIndicator(column.getColumn(), markerField);

    }

    // Remove extra columns
    if (currentColumns.length > fields.length) {
        for (int i = fields.length; i < currentColumns.length; i++) {
            currentColumns[i].dispose();

        }
    }

    viewer.getTree().setLayout(layout);
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    tree.layout(true);

}

From source file:org.eclipse.ui.internal.views.markers.ExtendedMarkersView.java

License:Open Source License

/**
 * Create the columns for the receiver./*ww w  .  ja  v  a2 s  .c o m*/
 * 
 * @param currentColumns
 *            the columns to refresh
 * @param widths 
 */
private void createColumns(TreeColumn[] currentColumns, int[] widths) {

    Tree tree = viewer.getTree();
    TableLayout layout = new TableLayout();

    MarkerField[] fields = generator.getVisibleFields();

    for (int i = 0; i < fields.length; i++) {
        MarkerField markerField = fields[i];
        TreeViewerColumn column = null;
        if (i < currentColumns.length)
            column = new TreeViewerColumn(viewer, currentColumns[i]);
        else {
            column = new TreeViewerColumn(viewer, SWT.NONE);
            column.getColumn().setResizable(true);
            column.getColumn().setMoveable(true);
            column.getColumn().addSelectionListener(getHeaderListener());
        }

        column.getColumn().setData(MARKER_FIELD, markerField);
        // Show the help in the first column
        column.setLabelProvider(new MarkerColumnLabelProvider(markerField));
        column.getColumn().setText(markerField.getColumnHeaderText());
        column.getColumn().setToolTipText(markerField.getColumnTooltipText());
        column.getColumn().setImage(markerField.getColumnHeaderImage());

        EditingSupport support = markerField.getEditingSupport(viewer);
        if (support != null)
            column.setEditingSupport(support);

        if (builder.getPrimarySortField().equals(markerField))
            updateDirectionIndicator(column.getColumn(), markerField);

        IMemento columnWidths = null;
        if (memento != null) {
            columnWidths = memento.getChild(TAG_COLUMN_WIDTHS);
        }

        //adjust the column width
        int columnWidth = i < widths.length ? widths[i] : -1;
        columnWidth = getFieldWidth(markerField, columnWidth, false);
        if (columnWidths != null) {
            // save it
            columnWidths.putInteger(markerField.getConfigurationElement()
                    .getAttribute(MarkerSupportInternalUtilities.ATTRIBUTE_ID), columnWidth);
        }
        // Take trim into account if we are using the default value, but not
        // if it is restored.
        if (columnWidth < 0)
            layout.addColumnData(new ColumnPixelData(markerField.getDefaultColumnWidth(tree), true, true));
        else
            layout.addColumnData(new ColumnPixelData(columnWidth, true));
    }

    // Remove extra columns
    if (currentColumns.length > fields.length) {
        for (int i = fields.length; i < currentColumns.length; i++) {
            currentColumns[i].dispose();
        }
    }

    viewer.getTree().setLayout(layout);
    tree.setLinesVisible(true);
    tree.setHeaderVisible(true);
    tree.layout(true);

}

From source file:org.eclipse.ui.trace.internal.TracingPreferencePage.java

License:Open Source License

/**
 * Create a viewer for the list of debug options that are traceable in the product.
 * //from   w  ww  .  j a v a2 s . c o  m
 * @param parent
 *            The parent composite
 */
protected void addBundleViewerSection(Composite parent) {

    tracingTreeTitleLabel = new Label(parent, SWT.NONE);
    tracingTreeTitleLabel.setText(Messages.tracingTreeTile);
    filterTree = new TracingComponentTreeViewer(parent);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(getViewerTree());
    getViewer().setUseHashlookup(true);
    getViewerTree().setHeaderVisible(false);
    getViewer().setLabelProvider(new TracingComponentLabelProvider());
    getViewer().setContentProvider(new TracingComponentContentProvider());
    getViewer().setComparator(new TracingComponentComparator());
    getViewerTree().setLinesVisible(true);
    getViewer().addDoubleClickListener(new TracingDoubleClickListener());
    // change the layout of the tree's composite to TreeColumnLayout so we can setup the columns
    Composite treeViewerComposite = getViewerTree().getParent();
    TreeColumnLayout treeViewerCompositeLayout = new TreeColumnLayout();
    treeViewerComposite.setLayout(treeViewerCompositeLayout);
    GridDataFactory.fillDefaults().grab(true, true).applyTo(treeViewerComposite);
    // there will be 2 columns. (1) trace string (2) value (which will only be populated when it is a non-boolean
    // value)
    // [1] Add the label column (75% column width)
    TreeViewerColumn labelColumn = new TreeViewerColumn(getViewer(), SWT.NONE);
    labelColumn.getColumn().setResizable(true);
    labelColumn.getColumn().setText(Messages.columnHeaderTracingString);
    labelColumn.setLabelProvider(new TracingComponentColumnLabelProvider(TracingConstants.LABEL_COLUMN_INDEX));
    treeViewerCompositeLayout.setColumnData(getViewerTree().getColumn(0), new ColumnWeightData(75));
    // [2] Add the value column (25% column width)
    TreeViewerColumn valueColumn = new TreeViewerColumn(getViewer(), SWT.NONE);
    valueColumn.getColumn().setResizable(true);
    valueColumn.getColumn().setText(Messages.columnHeaderTracingValue);
    valueColumn.setLabelProvider(new TracingComponentColumnLabelProvider(TracingConstants.VALUE_COLUMN_INDEX));
    valueColumn.setEditingSupport(
            new TracingComponentColumnEditingSupport(getViewer(), TracingConstants.VALUE_COLUMN_INDEX));
    treeViewerCompositeLayout.setColumnData(getViewerTree().getColumn(1), new ColumnWeightData(25));

    // install focus cell and cell editor activation for keyboard access (Bug 385100)
    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(getViewer(),
            new FocusCellOwnerDrawHighlighter(getViewer()));
    ColumnViewerEditorActivationStrategy actSupport = new ColumnViewerEditorActivationStrategy(getViewer()) {
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return (event.eventType == KEY_PRESSED && event.keyCode == VALUE_EDITOR_ACTIVATION_KEY) //
                    || event.eventType == TRAVERSAL //
                    || event.eventType == MOUSE_CLICK_SELECTION //
                    || event.eventType == PROGRAMMATIC;
        }
    };
    TreeViewerEditor.create(getViewer(), focusCellManager, actSupport, //
            TABBING_HORIZONTAL | TABBING_MOVE_TO_ROW_NEIGHBOR | TABBING_VERTICAL | KEYBOARD_ACTIVATION);
}

From source file:org.eclipse.vtp.desktop.projects.interactive.core.util.LanguageMappingScreen.java

License:Open Source License

private void createTree(Composite parent) {
    Tree tree = new Tree(parent, SWT.BORDER | SWT.SINGLE | SWT.FULL_SELECTION);
    tree.setHeaderVisible(true);/*from w w  w.  jav  a 2 s  . c o m*/
    brandViewer = new TreeViewer(tree);

    TreeColumn brandColumn = new TreeColumn(tree, SWT.NONE);
    brandColumn.setWidth(100);
    brandColumn.setText("Brands");

    for (LanguageSupport language : support.getSupportedLanguages()) {
        TreeViewerColumn languageColumn = new TreeViewerColumn(brandViewer, SWT.NONE);
        languageColumn.getColumn().setText(language.getLanguage());
        languageColumn.getColumn().setWidth(100);
        ProjectEditingSupport pes = new ProjectEditingSupport(brandViewer, language);
        languageColumn.setEditingSupport(pes);
    }

    brandViewer.setContentProvider(new BrandContentProvider());
    brandViewer.setLabelProvider(new BrandLabelProvider());
    brandViewer.setInput(this);

}

From source file:org.eclipselabs.e4.tapiji.translator.ui.treeviewer.TreeViewerView.java

License:Open Source License

private void createColumn(final String languageCode, final int columnIndex,
        final TextCellEditor textCellEditor) {
    final Locale locale = LocaleUtils.getLocaleFromLanguageCode(languageCode);
    final TreeViewerColumn column = new TreeViewerColumn(treeViewer, SWT.NONE);
    column.getColumn().setWidth(200);
    column.getColumn().setMoveable(false);
    column.getColumn().setResizable(true);
    column.getColumn().setText(locale.getDisplayName());
    column.getColumn().addSelectionListener(createColumnSelectionListener(columnIndex));
    column.setEditingSupport(createEditingSupportFor(textCellEditor, columnIndex, languageCode));

}

From source file:org.eclipselabs.spray.runtime.xtext.ui.xtextindex.IEObjectDescriptionViewer.java

License:Open Source License

/**
 * Create contents of the view part./*from  w w  w .ja  va2  s  .  co m*/
 * 
 * @param parent
 */
public void createPartControl(Composite parent) {
    Composite container = new Composite(parent, SWT.NONE);
    container.setLayout(new FormLayout());

    Composite composite = new Composite(container, SWT.NONE);
    composite.setBounds(10, 21, 200, 64);
    FormData fd_composite = new FormData();
    fd_composite.left = new FormAttachment(0, 10);
    fd_composite.bottom = new FormAttachment(0, 458);
    fd_composite.top = new FormAttachment(0, 21);
    composite.setLayoutData(fd_composite);
    TreeColumnLayout tcl_composite = new TreeColumnLayout();
    composite.setLayout(tcl_composite);

    treeViewer = new TreeViewer(composite, SWT.BORDER);
    Tree tree = treeViewer.getTree();
    tree.setHeaderVisible(true);
    tree.setLinesVisible(true);

    TreeViewerColumn treeViewerColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnName = treeViewerColumn.getColumn();
    tcl_composite.setColumnData(trclmnName, new ColumnPixelData(150, true, true));
    trclmnName.setText("Name");

    TreeViewerColumn treeViewerColumn_1 = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnType = treeViewerColumn_1.getColumn();
    tcl_composite.setColumnData(trclmnType, new ColumnPixelData(150, true, true));
    trclmnType.setText("Type");

    TreeViewerColumn treeViewerUserDataColumn = new TreeViewerColumn(treeViewer, SWT.NONE);
    TreeColumn trclmnUserData = treeViewerUserDataColumn.getColumn();
    tcl_composite.setColumnData(trclmnUserData, new ColumnPixelData(150, true, true));
    trclmnUserData.setText("User Data");

    Button btnRefresh = new Button(container, SWT.NONE);
    fd_composite.right = new FormAttachment(btnRefresh, -35);
    btnRefresh.addMouseListener(new MouseAdapter() {
        @Override
        public void mouseUp(MouseEvent e) {
            initializeInput();
        }
    });
    FormData fd_btnRefresh = new FormData();
    fd_btnRefresh.top = new FormAttachment(composite, 0, SWT.TOP);
    fd_btnRefresh.right = new FormAttachment(100, -10);
    btnRefresh.setLayoutData(fd_btnRefresh);
    btnRefresh.setText("Refresh");
    treeViewer.setLabelProvider(new IEObjectDescriptionLabelProvider());
    treeViewer.setContentProvider(new IEObjectDescriptionContentProvider());
    treeViewerColumn.setLabelProvider(new EObjectDescriptionNameColumnLabelProvider());
    treeViewerColumn_1.setLabelProvider(new EObjectDescriptionTypeColumnLabelProvider());
    treeViewerUserDataColumn.setLabelProvider(new EObjectDescriptionUserDataColumnLabelProvider());

    createActions();
    initializeToolBar();
    initializeMenu();
    initializeInput();
}

From source file:org.eclipsetrader.ui.internal.ats.monitor.TradingSystemsViewPart.java

License:Open Source License

@Override
public void createPartControl(Composite parent) {
    viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.MULTI);
    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(false);

    createContextMenu();//from   w w w.j a  v a 2s.c  om

    model = new TradingSystemsViewModel(tradingSystemService);

    String[] columns = dialogSettings.getArray(COLUMNS);
    IDialogSettings namesSection = dialogSettings.getSection(COLUMN_NAMES);

    List<ViewColumn> list = new ArrayList<ViewColumn>();
    for (int i = 0; i < columns.length; i++) {
        String name = namesSection.get(columns[i]);
        list.add(new ViewColumn(name, activator.getDataProviderFactory(columns[i])));
    }
    model.setDataProviders(list);

    for (final TradingSystemItem item : model.getList()) {
        PropertyChangeSupport changeSupport = (PropertyChangeSupport) item.getTradingSystem()
                .getAdapter(PropertyChangeSupport.class);
        if (changeSupport != null) {
            changeSupport.addPropertyChangeListener(new PropertyChangeListener() {

                @Override
                public void propertyChange(PropertyChangeEvent evt) {
                    Display.getDefault().asyncExec(new Runnable() {

                        @Override
                        public void run() {
                            if (viewer.getControl().isDisposed()) {
                                return;
                            }
                            viewer.refresh(item);
                        }
                    });
                }
            });
        }
    }

    final ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(model,
            model);
    viewer.setContentProvider(contentProvider);

    IDialogSettings widthSettings = dialogSettings.getSection(COLUMN_WIDTHS);

    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);

    int width = 300;
    if (widthSettings.get(LABEL_COLUMN) != null) {
        width = widthSettings.getInt(LABEL_COLUMN);
    }
    viewerColumn.getColumn().setWidth(width);

    viewerColumn.getColumn().addControlListener(columnControlListener);

    final List<IObservableMap> properties = new ArrayList<IObservableMap>();
    properties.add(new ViewerObservableMap(contentProvider.getKnownElements(), LABEL_COLUMN));
    for (ViewColumn column : model.getDataProviders()) {
        viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
        viewerColumn.getColumn().setText(column.getName());

        width = 100;
        if (widthSettings.get(column.getDataProviderFactory().getId()) != null) {
            width = widthSettings.getInt(column.getDataProviderFactory().getId());
        }
        viewerColumn.getColumn().setWidth(width);

        viewerColumn.getColumn().addControlListener(columnControlListener);
        column.addPropertyChangeListener(ViewColumn.PROP_NAME, columnPropertiesChangeListener);
        properties.add(new ViewerObservableMap(contentProvider.getKnownElements(),
                column.getDataProviderFactory().getId()));
    }
    createLabelProvider(properties.toArray(new IObservableMap[properties.size()]));

    model.getObservableDataProviders().addListChangeListener(new IListChangeListener() {

        @Override
        public void handleListChange(ListChangeEvent event) {
            event.diff.accept(new ListDiffVisitor() {

                @Override
                public void handleRemove(int index, Object element) {
                    TreeColumn treeColumn = viewer.getTree().getColumn(index + 1);
                    treeColumn.dispose();

                    ViewColumn column = (ViewColumn) element;
                    column.removePropertyChangeListener(ViewColumn.PROP_NAME, columnPropertiesChangeListener);

                    IObservableMap observableMap = properties.remove(index + 1);
                    if (observableMap != null) {
                        observableMap.dispose();
                    }
                }

                @Override
                public void handleAdd(int index, Object element) {
                    ViewColumn column = (ViewColumn) element;
                    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT, index + 1);
                    viewerColumn.getColumn().setText(column.getName());

                    int width = 100;
                    IDialogSettings widthSettings = dialogSettings.getSection(COLUMN_WIDTHS);
                    if (widthSettings.get(column.getDataProviderFactory().getId()) != null) {
                        width = widthSettings.getInt(column.getDataProviderFactory().getId());
                    }
                    viewerColumn.getColumn().setWidth(width);

                    viewerColumn.getColumn().addControlListener(columnControlListener);
                    column.addPropertyChangeListener(ViewColumn.PROP_NAME, columnPropertiesChangeListener);
                    properties.add(index + 1, new ViewerObservableMap(contentProvider.getKnownElements(),
                            column.getDataProviderFactory().getId()));
                }
            });

            createLabelProvider(properties.toArray(new IObservableMap[properties.size()]));

            IDialogSettings namesSection = dialogSettings.getSection(COLUMN_NAMES);

            List<String> list = new ArrayList<String>();
            for (ViewColumn column : model.getDataProviders()) {
                list.add(column.getDataProviderFactory().getId());
                namesSection.put(column.getDataProviderFactory().getId(), column.getName());
            }
            dialogSettings.put(COLUMNS, list.toArray(new String[list.size()]));
        }
    });

    viewer.setComparator(new ViewerComparator());

    getSite().setSelectionProvider(viewer);

    viewer.setInput(model);
    viewer.expandAll();
}

From source file:org.eclipsetrader.ui.internal.charts.views.HistoryDataDetailEditor.java

License:Open Source License

void createViewer(Composite parent) {
    Tree tree = new Tree(parent, SWT.FULL_SELECTION | SWT.MULTI);
    tree.setHeaderVisible(true);//w  w  w  . ja va2 s .c  om
    tree.setLinesVisible(true);

    viewer = new TreeViewer(tree);

    IObservableFactory observableFactory = new IObservableFactory() {

        @Override
        public IObservable createObservable(Object target) {
            if (target instanceof HistoryDataDetailEditorModel) {
                return Observables
                        .unmodifiableObservableList(((HistoryDataDetailEditorModel) target).getList());
            }
            if (target instanceof HistoryDataEditorModel) {
                return Observables.unmodifiableObservableList(((HistoryDataEditorModel) target).getList());
            }
            return null;
        }
    };

    TreeStructureAdvisor treeStructureAdvisor = new TreeStructureAdvisor() {

        @Override
        public Boolean hasChildren(Object element) {
            if (element instanceof HistoryDataEditorModel) {
                return true;
            }
            return false;
        }
    };

    ObservableListTreeContentProvider contentProvider = new ObservableListTreeContentProvider(observableFactory,
            treeStructureAdvisor);
    viewer.setContentProvider(contentProvider);

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();

    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.NONE);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Time);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.timeValue(), BeanProperties.value(HistoryDataElement.PROP_DATE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Open);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_OPEN)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_High);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_HIGH)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Low);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_LOW)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Close);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 55));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.doubleValue(), BeanProperties.value(HistoryDataElement.PROP_CLOSE)));

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.HistoryDataDetailEditor_Volume);
    viewerColumn.getColumn().setWidth(Dialog.convertHorizontalDLUsToPixels(fontMetrics, 70));
    viewerColumn.setEditingSupport(ObservableValueEditingSupport.create(viewer, dbc, new TextCellEditor(tree),
            CellEditorValueProperty.longValue(), BeanProperties.value(HistoryDataElement.PROP_VOLUME)));

    if (Platform.WS_GTK.equals(Platform.getWS())) {
        viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
        viewerColumn.getColumn().setWidth(1);
    }

    final String[] properties = new String[] { HistoryDataElement.PROP_DATE, HistoryDataElement.PROP_OPEN,
            HistoryDataElement.PROP_HIGH, HistoryDataElement.PROP_LOW, HistoryDataElement.PROP_CLOSE,
            HistoryDataElement.PROP_VOLUME, "" //$NON-NLS-1$
    };

    DataViewerLabelProvider labelProvider = new DataViewerLabelProvider(
            BeansObservables.observeMaps(contentProvider.getKnownElements(), properties));
    labelProvider.setDateFormat(Util.getTimeFormat());
    viewer.setLabelProvider(labelProvider);

    viewer.setSorter(new ViewerSorter() {

        @Override
        public int compare(Viewer viewer, Object o1, Object o2) {
            if ((o1 instanceof HistoryDataEditorModel) && (o2 instanceof HistoryDataEditorModel)) {
                TimeSpan ts1 = ((HistoryDataEditorModel) o1).getBarSize();
                TimeSpan ts2 = ((HistoryDataEditorModel) o2).getBarSize();
                if (ts1.higherThan(ts2)) {
                    return 1;
                }
                if (ts2.higherThan(ts1)) {
                    return -1;
                }
                return 0;
            } else if ((o1 instanceof HistoryDataElement) && (o2 instanceof HistoryDataElement)) {
                HistoryDataElement e1 = (HistoryDataElement) o1;
                HistoryDataElement e2 = (HistoryDataElement) o2;
                if (e1.getDate() != null && e2.getDate() != null) {
                    return e1.getDate().compareTo(e2.getDate());
                }
                if (e1.getDate() != null && e2.getDate() == null) {
                    return -1;
                }
                if (e1.getDate() == null && e2.getDate() != null) {
                    return 1;
                }
            }
            return 0;
        }
    });

    CellNavigationStrategy naviStrat = new CellNavigationStrategy() {

        @Override
        public ViewerCell findSelectedCell(ColumnViewer viewer, ViewerCell currentSelectedCell, Event event) {
            ViewerCell cell = super.findSelectedCell(viewer, currentSelectedCell, event);
            if (cell != null) {
                if (cell.getColumnIndex() == properties.length - 1) {
                    return null;
                }
                Tree tree = ((TreeViewer) viewer).getTree();
                tree.showColumn(tree.getColumn(cell.getColumnIndex()));
            }
            return cell;
        }
    };

    TreeViewerFocusCellManager focusCellManager = new TreeViewerFocusCellManager(viewer,
            new FocusCellOwnerDrawHighlighter(viewer), naviStrat);

    ColumnViewerEditorActivationStrategy activationStrategy = new ColumnViewerEditorActivationStrategy(viewer) {

        @Override
        protected boolean isEditorActivationEvent(ColumnViewerEditorActivationEvent event) {
            return event.eventType == ColumnViewerEditorActivationEvent.TRAVERSAL
                    || (event.eventType == ColumnViewerEditorActivationEvent.KEY_PRESSED
                            && event.keyCode == SWT.CR)
                    || event.eventType == ColumnViewerEditorActivationEvent.PROGRAMMATIC;

        }
    };
    TreeViewerEditor.create(viewer, focusCellManager, activationStrategy,
            ColumnViewerEditor.TABBING_HORIZONTAL | ColumnViewerEditor.TABBING_MOVE_TO_ROW_NEIGHBOR
                    | ColumnViewerEditor.TABBING_VERTICAL | ColumnViewerEditor.KEYBOARD_ACTIVATION);

    tree.addTraverseListener(new TraverseListener() {

        @Override
        public void keyTraversed(TraverseEvent e) {
            if (e.detail == SWT.TRAVERSE_RETURN || e.detail == SWT.TRAVERSE_ESCAPE) {
                e.doit = false;
            }
        }
    });
    tree.addKeyListener(new KeyAdapter() {

        @Override
        public void keyPressed(KeyEvent e) {
            if (viewer.isCellEditorActive()) {
                return;
            }
            if (e.keyCode == SWT.INSERT) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();

                HistoryDataEditorModel parent = null;

                int index = 0;
                if (!selection.isEmpty()) {
                    parent = model.getParent(selection.getFirstElement());
                    if (parent == null) {
                        return;
                    }
                    index = parent.getList().indexOf(selection.getFirstElement());
                    if (index == -1) {
                        index = parent.getList().size();
                    }
                }

                final HistoryDataElement element = new HistoryDataElement();
                parent.getList().add(index, element);

                e.doit = false;

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

                    @Override
                    public void run() {
                        if (!viewer.getControl().isDisposed()) {
                            viewer.editElement(element, 0);
                        }
                    }
                });
            } else if (e.character == SWT.DEL) {
                IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                for (Object element : selection.toList()) {
                    HistoryDataEditorModel parent = model.getParent(selection.getFirstElement());
                    if (parent != null) {
                        if (parent.getList().remove(element)) {
                            changeSupport.firePropertyChange(PROP_DIRTY, dirty, dirty = true);
                        }
                    }
                }
            }
        }
    });

    viewer.setInput(model);
}

From source file:org.eclipsetrader.ui.internal.trading.portfolio.PortfolioViewPart.java

License:Open Source License

protected void createViewer(Composite parent) {
    viewer = new TreeViewer(parent, SWT.FULL_SELECTION | SWT.MULTI);
    viewer.getTree().setHeaderVisible(true);
    viewer.getTree().setLinesVisible(false);
    viewer.setContentProvider(new PortfolioContentProvider());
    viewer.setSorter(new ViewerSorter());

    viewer.setInput(new PortfolioView());

    GC gc = new GC(parent);
    FontMetrics fontMetrics = gc.getFontMetrics();
    gc.dispose();//from   ww w.  j  a  va 2s . c o m

    TreeViewerColumn viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 40));
    viewerColumn.setLabelProvider(new ElementLabelProvider());

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.PortfolioViewPart_Position);
    viewerColumn.getColumn().setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 15));
    viewerColumn.setLabelProvider(new PositionLabelProvider());

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.PortfolioViewPart_Price);
    viewerColumn.getColumn().setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 15));
    viewerColumn.setLabelProvider(new PriceLabelProvider());

    viewerColumn = new TreeViewerColumn(viewer, SWT.RIGHT);
    viewerColumn.getColumn().setText(Messages.PortfolioViewPart_PL);
    viewerColumn.getColumn().setWidth(Dialog.convertWidthInCharsToPixels(fontMetrics, 30));
    viewerColumn.setLabelProvider(new GainLabelProvider());
}

From source file:org.entirej.applicationframework.fx.renderers.block.definition.EJFXTreeTableRecordBlockDefinition.java

License:Apache License

private EJFXTreeRendererDefinitionControl addTreeTable(EJDevBlockDisplayProperties blockDisplayProperties,
        Composite client, FormToolkit toolkit) {
    Map<String, Integer> columnPositions = new HashMap<String, Integer>();

    final ScrolledForm sc = toolkit.createScrolledForm(client);

    GridData scgd = new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1);
    scgd.grabExcessHorizontalSpace = true;
    scgd.grabExcessVerticalSpace = true;
    sc.setLayoutData(scgd);/*from  w w  w .j  a  v a2 s  .  c  om*/
    GridLayout gl = new GridLayout();
    gl.marginHeight = gl.marginWidth = 0;
    sc.getBody().setLayout(gl);
    toolkit.adapt(sc);

    sc.getBody().setLayout(new FillLayout());
    Composite tablePanel = sc.getBody();
    EJDevItemGroupDisplayProperties displayProperties = null;
    if (blockDisplayProperties.getMainScreenItemGroupDisplayContainer().getAllItemGroupDisplayProperties()
            .size() > 0) {
        displayProperties = blockDisplayProperties.getMainScreenItemGroupDisplayContainer()
                .getAllItemGroupDisplayProperties().iterator().next();
        if (displayProperties.dispayGroupFrame()) {
            Group group = new Group(tablePanel, SWT.NONE);
            group.setLayout(new FillLayout());
            if (displayProperties.getFrameTitle() != null && displayProperties.getFrameTitle().length() > 0)
                group.setText(displayProperties.getFrameTitle());
            tablePanel = group;
        }
    }

    Tree table = new Tree(tablePanel,
            SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER | SWT.FULL_SELECTION);

    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    TableLayout tableLayout = new TableLayout();

    // There is only one item group for a flow layout
    TreeViewer _tableViewer = new TreeViewer(table);
    _tableViewer.setContentProvider(new ITreeContentProvider() {

        @Override
        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
            // TODO Auto-generated method stub

        }

        @Override
        public void dispose() {
            // TODO Auto-generated method stub

        }

        @Override
        public boolean hasChildren(Object element) {

            return true;
        }

        @Override
        public Object getParent(Object element) {

            return null;
        }

        @Override
        public Object[] getElements(Object inputElement) {
            return new Object[] { new Object(), new Object(), new Object() };
        }

        @Override
        public Object[] getChildren(Object parentElement) {
            return new Object[] { new Object(), new Object() };
        }
    });
    int itemCount = 0;
    if (displayProperties != null)
        for (final EJDevScreenItemDisplayProperties screenItem : displayProperties
                .getAllItemDisplayProperties()) {
            if (!screenItem.isSpacerItem()) {
                int width = ((EJDevMainScreenItemDisplayProperties) screenItem)
                        .getBlockRendererRequiredProperties()
                        .getIntProperty(EJFXTreeTableBlockDefinitionProperties.DISPLAY_WIDTH_PROPERTY, 0);

                TreeViewerColumn masterColumn = new TreeViewerColumn(_tableViewer, SWT.NONE);
                masterColumn.getColumn().setData("SCREEN_ITEM", screenItem);
                masterColumn.getColumn().setText(screenItem.getLabel());
                masterColumn.getColumn().setWidth(width);
                String alignment = ((EJDevMainScreenItemDisplayProperties) screenItem)
                        .getBlockRendererRequiredProperties()
                        .getStringProperty(EJFXTreeTableBlockDefinitionProperties.COLUMN_ALIGNMENT);

                if (EJFXTreeTableBlockDefinitionProperties.COLUMN_ALLIGN_RIGHT.equals(alignment)) {
                    masterColumn.getColumn().setAlignment(SWT.RIGHT);
                } else if (EJFXTreeTableBlockDefinitionProperties.COLUMN_ALLIGN_CENTER.equals(alignment)) {
                    masterColumn.getColumn().setAlignment(SWT.CENTER);
                }
                masterColumn.setLabelProvider(new ColumnLabelProvider() {

                    @Override
                    public String getText(Object element) {

                        return screenItem.getReferencedItemName();

                    }

                });
                ColumnWeightData colData = new ColumnWeightData(5, 50, true);
                tableLayout.addColumnData(colData);
                columnPositions.put(screenItem.getReferencedItemName(), itemCount);
                itemCount++;
            }
        }

    table.setLayout(tableLayout);
    _tableViewer.setInput(new Object());

    return new EJFXTreeRendererDefinitionControl(blockDisplayProperties, table, columnPositions);
}