Как включить прокрутку, когда CheckboxTableViewer внутри ScrolledComposite отключен? - PullRequest
0 голосов
/ 02 мая 2018

У меня есть CheckboxTableViewer внутри ScrolledComposite. Я должен включить или отключить все tableItems на основе другой кнопки checkBox. Для этого я использую

CheckboxTableViewer.getTable().setEnabled(false). 

В вышеприведенном случае ScrolledComposite также отключается вместе с таблицей. Но я хочу, чтобы поведение прокрутки работало как обычно, даже когда CheckboxTableViewer отключен (все элементы в состоянии отключены).

1 Ответ

0 голосов
/ 03 мая 2018

Невозможно заставить элемент управления таблицей показывать полосы прокрутки, когда он отключен. Это просто способ работы нативного элемента управления, то есть способ, которым ОС отображает элементы управления.

Однако вы можете обернуть свой элемент управления Table в ScrolledComposite. Таким образом, ScrolledComposite будет прокручиваться вместо таблицы.

Вот код, который я сделал:

table.setEnabled(false); 
Composite composite = table.getParent(); 
if ((null != composite) && (composite instanceof ScrolledComposite)) {
      ScrolledComposite scrolledComposite = (ScrolledComposite)composite;
      scrolledComposite.setMinSize(table.computeSize(SWT.DEFAULT, SWT.DEFAULT));  
}
...