Boa tarde pessoal,
estou com o seguinte problema:
eu criei o seguinte código:
[code]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();
}
};
}
}[/code]
É 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 !