Запрет изменения размера JFace TableColumn до 0

Я использую JFace TableViewer и TableColumnLayout. Как я могу установить минимальную ширину столбцов или, по крайней мере, предотвратить изменение размера до 0?

TableColumnLayout layout = new TableColumnLayout();
parent.setLayout(layout);
TableViewer viewer = new TableViewer(parent, SWT.FULL_SELECTION | SWT.BORDER);

//adding a few columns like this
TableColumn col = new TableColumn(viewer.getTable(), SWT.LEFT);
int minWidth = 100; 
layout.setColumnData(col, new ColumnWeightData(10, minWidth, true));
col.setMoveable(true);
...

Похоже, что параметр minWidth ColumnWeightData не учитывается, я все еще могу изменить размер столбцов до 0 ширины.

Использование что-то вроде этого работает:

col.addControlListener(new ControlListener(){
    @Override
    public void controlMoved(ControlEvent e) {
    }

    @Override
    public void controlResized(ControlEvent e) {
        if(col.getWidth()<5)
            col.setWidth(5);

    }});

Но это кажется довольно уродливым, есть ли более чистый способ сделать это?

1 ответ

Решение

Table не имеет встроенной поддержки для этого. Так что Resize слушатель - как вы показали в своем вопросе - это единственный способ.

Другие вопросы по тегам