Pessoal, estou precisando abrir uma caixa de dialogo a partir de um botão dentro de uma view.
Acontece que para abrir um dialogo eu preciso passar para o construtor do dialogo o shell ativo, nos exemplos que vi este shell é capturado utilizando o HandlerUtil, porém o HandlerUtil trabalha com a ExecutionEvent dos comandos, e quando estamos desenvolvendo um botão o que temos disponivel é a SelectionEvent, desta forma não estou conseguindo recuperar o shell ativo para poder criar uma dialog.
Segue Exemplo de como se cria uma Dialog a partir de um comando:
[code]
public class OpenDialog extends AbstractHandler {
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
Shell shell = HandlerUtil.getActiveWorkbenchWindow(event).getShell();
// File standard dialog
FileDialog fileDialog = new FileDialog(shell);
// Set the text
fileDialog.setText("Select File");
// Set filter on .txt files
fileDialog.setFilterExtensions(new String[] { "*.txt" });
// Put in a readable name for the filter
fileDialog.setFilterNames(new String[] { "Textfiles(*.txt)" });
// Open Dialog and save result of selection
String selected = fileDialog.open();
System.out.println(selected);
return null;
}
}[/code]
Alguém sabe como consigo ter acesso ao shell ativo tendo em mãos uma SelectionEvent no lugar de uma ExecutionEvent?
Uma alternativa seria criar um comando que chama a dialog e a partir da programação do botão forcar que este comando seja executado, isso é possivel?
Obrigado,
Eder Colin