Eclipse RCP - abrir uma dialog window a partir de um botão

1 resposta
edercolin

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:

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;
	}
}
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

1 Resposta

edercolin

Senhores,

Verifiquei que simplismente passando um “new Shell()” para o construtor da dialog funciona.

Ainda não tive tempo de estudar a estrutura do RCP como deveria, alguém sabe me dizer se isso tem algum problema?

Obrigado,
Eder Colin

Criado 18 de agosto de 2010
Ultima resposta 18 de ago. de 2010
Respostas 1
Participantes 1