Come posso nascondere un CTabItem in un CTabFolder
Domanda
Non riesco a trovare alcun metodo per fare una scheda invisibile o in altro modo nascosti in un'applicazione SWT / JFace --- voglio una seconda scheda sia disponibile (o meno) sulla base di alcune altre preferenze impostate dall'utente.
Non dovrebbe essere così difficile da capire questo!
Soluzione
L'unico modo che conosco è quello di smaltire il CTabItem per la scheda che si desidera nascondere e quindi creare un nuovo CTabItem quando si desidera vedere. Una specie di,
CTabFolder folder = new CTabFolder(parent, SWT.NONE);
Label label = new Label(folder, SWT.NONE);
label.setText("Hello");
CTabItem item = new CTabItem(folder);
item.setControl(label);
// Hide it
item.dipose();
// show it again
CTabItem item = new CTabItem(folder);
item.setControl(label);
Se si vuole nascondere una scheda nel mezzo è necessario ricreare tutte le schede dopo quella che si smaltito .. E 'probabilmente più facile se si crea una classe che detiene il controllo e un campo che può essere utilizzato per attivare o disattivare la visibilità. Poi si può solo dipose tutte le CTabItems e ricreare se e solo se il campo di visibilità è vero.