java - Eclipse RCP: ¿Dónde debería guardar mis objetos modelo y cómo hablan con las vistas?
eclipse-plugin eclipse-rcp (2)
Tendemos a utilizar IEditorPart
s para almacenar mantener una copia del modelo (derivado de IEditorInput
).
Si una vista necesita conocer el modelo, utilice el marco de ISelection y enfoque para mover el modelo desde el editor a la vista.
En la forma de hacer Eclipse RCP, ¿dónde debería guardar mis objetos modelo? Y cuando se cargan o cambian, ¿cómo deberían hablar con las vistas?
Estoy intentando portar mi aplicación existente a Eclipse RCP. Podría verse como una aplicación IDE: abro un archivo que contiene enlaces a archivos fuente. Los archivos de origen se muestran en la vista de árbol. Puedo editar la fuente y construir las fuentes en alguna salida ...
Por ejemplo, cuando manejo el comando Abrir, ¿dónde crearía el objeto modelo para que mis vistas puedan verlos? Prefiero evitar el uso de la clase de administrador único, pero tal vez la forma más simple.
Código interesante que encontré al navegar el código fuente de JDT son JavaCore, JavaModel, JavaModelManager. y JavaProject.
IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects();
public static IJavaProject create(IProject project) {
if (project == null) {
return null;
}
JavaModel javaModel = JavaModelManager.getJavaModelManager().getJavaModel();
return javaModel.getJavaProject(project);
}
Relacionado:
Creo que esto se logra mejor a través de los oyentes.
Sus datos (modelo) están en paquete privado, y solo las interfaces de esos datos están expuestas en un paquete público.
Encontrará en esta sección de wiki el principio, pero también ejemplos concretos aquí .
Con respecto al modelo, un enfoque tipo osgi sería usar un complemento de host como el objeto accesible. es decir:
MyPlugin.getDefault().getModel()
Esto le permitirá configurar / eliminar el modelo junto con el ciclo de vida del complemento.
Si el modelo está en un complemento, puede definir puntos de extensión para los oyentes. Una vista puede ampliar estos puntos de extensión que luego se registran automáticamente en la carga del complemento de modelo. Las vistas pueden consultar el modelo de la información requerida tan pronto como reciben el primer mensaje del modelo.
Un buen ejemplo de enlace de datos se puede encontrar en este artículo .