2009-03-26 12 views
5

Pregunta sobre Eclipse RCP y todo el diseño de perspectiva/vista/editor: ¿cuál es la mejor manera de crear una aplicación que muestre múltiples ventanas en múltiples monitores? Los tutoriales y el libro que he visto siempre empaquetan el diseño de RCP/SWT en vistas dentro de la perspectiva dentro de la ventana de una sola aplicación.Eclipse Aplicación RCP: diseño de varias ventanas para monitores múltiples

¿Debería una ventana gobernar todas las demás o todas deberían ser iguales (cerrando la última salida de la aplicación)? ¿Cómo lidiar con las perspectivas y puntos de vista? ¿Hay alguna otra cosa que deberíamos saber?

Entorno: Eclipse Ganymede, Windows XP.

Respuesta

7

Un solo banco de trabajo Eclipse puede crear varias ventanas. Cada ventana se presenta con una perspectiva, por lo que se pueden configurar diferentes ventanas con diferentes perspectivas o la misma perspectiva, y puede cambiar las perspectivas en cada ventana independientemente de las otras ventanas.

También puede establecer la entrada para cada ventana. Esto es útil si cada ventana está trabajando en datos diferentes (por ejemplo, cada ventana podría estar conectada a un servidor diferente o podría mostrar datos de diferentes bases de datos que tienen el mismo esquema pero diferentes datos).

Es posible que solo esté utilizando Windows para poder ver las diferentes perspectivas de los mismos datos en diferentes monitores. En ese caso, no necesita crear programáticamente las ventanas, sino que solo debe agregar la acción proporcionada por el banco de trabajo. Esto se puede hacer mediante la modificación de su clase ActionBarAdvisor:

añadir a las declaraciones de campos:

private IWorkbenchAction newWindowAction; 

añadir al código en el que hacer las acciones (por lo general un método llamado makeActions):

newWindowAction = ActionFactory.OPEN_NEW_WINDOW.create(window); 
    register(newWindowAction); 

añadir al código donde se crean los menús:

menu.add(newWindowAction); 

donde menú es typica lly el menú Ventana. Si usted no tiene un menú Ventana ya en su aplicación y desea crear uno, la siguiente línea funcionará:

MenuManager menu = new MenuManager(
     "&Window", 
     IWorkbenchActionConstants.M_WINDOW); 

esto le dará un elemento de menú que va a crear una nueva ventana de la misma manera como el elemento de menú Ventana-> Nueva ventana en el IDE de Eclipse.

Si, por el contrario, desea que cada ventana muestre datos diferentes, deberá abrir las nuevas ventanas de forma programática. Esto le permite establecer diferentes entradas para cada ventana. Necesitará una línea de código algo como:

IWorkbenchPage newPage = window.openPage(inputObject); 

donde InputObject contiene información que identifica los datos que se muestran en la ventana. Si desea establecer la perspectiva inicial, puede hacerlo llamando a setPerspective en la página.

Usted tendrá que establecer el título de cada ventana:

newPage.getWorkbenchWindow().getShell().setText(windowTitle); 

donde windowTitle es una cadena que describe la entrada a la ventana.

se puede recuperar la entrada de una ventana de la siguiente manera:

window.getActivePage().getInput() 

entonces se puede lanzar esta clase de lo que está utilizando como entrada ventana.

+0

¡gran comienzo en stackoverflow, gracias! – tomash

+0

Esto es RCP3, ¿verdad? – Weltraumschaf

Cuestiones relacionadas