Problema com eventos e JFrame

1 resposta
P

Boa tarde pessoal,

estou com o seguinte problema:

eu criei o seguinte código:

public class ObserverPropertyDescriptor extends PropertyDescriptor {
	
	private int result;
	 
	public ObserverPropertyDescriptor(Object object,
			IItemPropertyDescriptor itemPropertyDescriptor) {
		super(object, itemPropertyDescriptor);
	}
 
	@Override
	public CellEditor createPropertyEditor(Composite parent) {
		return new ExtendedDialogCellEditor(parent, getLabelProvider()) {
			@Override
			protected Object openDialogBox(Control cellEditorWindow) {
				// Dialog creation
				
				result = 0;
				
				final ObserverDialog frame = new ObserverDialog();
				frame.setVisible(true);
				frame.addWindowListener(new WindowAdapter() {  
				    public void windowDeactivated(WindowEvent evt) { 
				      if(frame.getClose() == 1){
				    	 result = 1;
				      }
				    	
				    }  
				    
				}); 

				
				// Open the dialog and retrieve the user selection
				//labelProvider.dispose();
				return result == 1 ? frame.getObsProperties();
			}
		};
	}
 
}

É um property descriptor de um editor GMF que não vem ao caso aqui. Minha dúvida é a seguinte:
Eu preciso retornar frame.getObsProperties(); caso o result == 1 retornar essa string, mas eu preciso
mudar o result caso o usuário aperte um botão OK na interface frame, botão esse que fecha a janela e ai
o evento que eu coloquei no frame é ativado e muda o result. Porém pelo que percebi as linhas de código
são executadas independentes do evento. Quando o usuário fechar o frame, o retorno já foi efetuado.

Quero saber se tem como eu esperar o evento acontecer para poder retornar e assim eu teria os valores
corretos. Se tiver algum jeito do JFrame retornar algum valor ao ser fechado, também daria certo.

Se puderem ajudar, agradeço !

1 Resposta

P

Galera, vi que com o JDialog eu posso deixar a classe modal.
Isso pausou a execução do programa. Porém tem um problema, eu preciso
abrir janelas nesse JDialog que está modal e como ele está modal não me deixa
clicar nas janelas que abro.

Alguma ideia de como resolver?

Criado 17 de janeiro de 2013
Ultima resposta 17 de jan. de 2013
Respostas 1
Participantes 1