Eclipse RCP: ¿Cómo mostrar el diálogo del mensaje después de que se carga el editor?

StackOverflow https://stackoverflow.com/questions/629012

  •  07-07-2019
  •  | 
  •  

Pregunta

Estoy abriendo un editor desde una vista al hacer clic en un treenode. Ahora, cuando las cargas y los controles del editor se muestran al usuario, quiero mostrar un diálogo de mensaje de advertencia al usuario basado en ciertos valores presentes en el editor.

Lo intenté colocando el cuadro de diálogo de advertencia al final del método createPartControl del editor. El diálogo aparece al hacer doble clic en el treenode según la funcionalidad requerida. Pero, el problema es que cuando aparece el cuadro de diálogo, los controles en el editor aún no están visibles. Solo cuando cierro el cuadro de diálogo se muestran los controles del editor.

Quiero que ocurra al revés. es decir, el editor controla que aparezca primero y luego debe aparecer el cuadro de diálogo de advertencia. ¿Qué cambios debo hacer para lograr este efecto?

¿Fue útil?

Solución

Puede llamar a eso MessageDialog de forma asíncrona, para dejar al Editor la oportunidad de completarse, como se sugiere en este mensaje .

  

muestra el cuadro de diálogo de advertencia en un asyncExec () ejecutable para garantizar que la inicialización del editor se realice en la secuencia correcta.

Entonces, algo como (no probado) este código podría hacer el truco:

getSite().getShell().getDisplay().asyncExec
    (new Runnable() {
        public void run() {
            MessageDialog.openWarning(getSite().getShell(),"wrong","no)
        }
    });
}

Algunos otros ejemplos en esta MapEditor class, donde se muestra un MessageDialog a través de un asyncExec que espera el resultado:

PlatformGIS.syncInDisplayThread

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top