Как отобразить текст в столбцах заголовка TableViewer жирным шрифтом? - PullRequest
0 голосов
/ 10 марта 2020

Я отображаю список записей, возвращаемых из внешней системы в виде строк TableViewer для плагина Eclipse.

Мне нужен текст в столбцах заголовка в полужирный . На данный момент текст строк и заголовков одинаков.

enter image description here

Фрагмент кода для той же страницы мастера выглядит следующим образом -

@Override
public void createControl(Composite parent) {
    top = new Composite(parent, SWT.NONE);
    top.setLayout(new FillLayout());
    setControl(top);
    setPageComplete(false);
    createViewer(top);
}

private void createViewer(Composite parent) {

    tableLayout = new TableColumnLayout();

    // A separate composite containing just the table viewer is required
    Composite tableComp = new Composite(parent, SWT.NONE);

    tableComp.setLayout(tableLayout);
    viewer = new TableViewer(tableComp, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
    createColumns(parent, viewer);
    final Table table = viewer.getTable();
    table.setHeaderVisible(true);
    table.setLinesVisible(true);

    viewer.setContentProvider(new ArrayContentProvider());

    // Layout the viewer
    GridData gridData = new GridData();
    gridData.verticalAlignment = GridData.FILL;
    gridData.horizontalSpan = 2;
    gridData.grabExcessHorizontalSpace = true;
    gridData.grabExcessVerticalSpace = true;
    gridData.horizontalAlignment = GridData.FILL;
    viewer.getControl().setLayoutData(gridData);
}

public TableViewer getViewer() {
    return viewer;
}

// This will create the columns for the table
private void createColumns(final Composite parent, final TableViewer viewer) {
    String[] titles = { "Component Name", "Type", "Status" };
    int[] bounds = { 100, 100, 100 };

    // First column is for the component name
    TableViewerColumn col = createTableViewerColumn(titles[0], bounds[0], 0);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            GenerateSkeletonComponentsStatusModel model = (GenerateSkeletonComponentsStatusModel) element;
            return model.getComponentName();
        }
    });

    // Weight for column
    tableLayout.setColumnData(col.getColumn(), new ColumnWeightData(100));

    // Second column is for type
    col = createTableViewerColumn(titles[1], bounds[1], 1);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            GenerateSkeletonComponentsStatusModel model = (GenerateSkeletonComponentsStatusModel) element;
            return model.getComponentType();
        }
    });

    // Weight for column
    tableLayout.setColumnData(col.getColumn(), new ColumnWeightData(20));

    // now the newly created
    col = createTableViewerColumn(titles[2], bounds[2], 2);
    col.setLabelProvider(new ColumnLabelProvider() {
        @Override
        public String getText(Object element) {
            GenerateSkeletonComponentsStatusModel model = (GenerateSkeletonComponentsStatusModel) element;
            return model.getStatus();
        }
    });

    // Weight for column
    tableLayout.setColumnData(col.getColumn(), new ColumnWeightData(20));

}

private TableViewerColumn createTableViewerColumn(String title, int bound, final int colNumber) {
    final TableViewerColumn viewerColumn = new TableViewerColumn(viewer, SWT.LEAD);
    final TableColumn column = viewerColumn.getColumn();
    column.setText(title);
    column.setWidth(bound);
    column.setResizable(true);
    column.setMoveable(true);
    return viewerColumn;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...