Como posso ocultar um CTabItem em um CTabFolder
Pergunta
Não consigo encontrar qualquer método para fazer um guia invisível ou de outra forma escondida em um aplicativo SWT / JFace --- Eu quero uma segunda aba de estar disponível (ou não) com base em algumas outras preferências definidas pelo usuário.
Não deve ser tão difícil de descobrir isso!
Solução
A única maneira que eu conheço é eliminar o CTabItem para o separador que deseja ocultar e, em seguida, criar uma nova CTabItem quando você quer mostrá-lo. Mais ou menos,
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 você quiser ocultar um separador no meio você vai precisar recriar todas as guias após o que você eliminados .. É provavelmente mais fácil se você criar uma classe que detém o controle e um campo que pode ser usado para alternar a visibilidade. Depois, é só dipose todos os CTabItems e recriar sse campo visibilidade é verdade.