cancel
Showing results for 
Search instead for 
Did you mean: 

WebDynpro - problema con la navegación entre views

Former Member
0 Kudos

Hola a todos,

Estoy realizando una web con Web Dynpro en java con el Netweaver Developer Studio. Las diversas pantallas de la web tienen en común en que disponen de un menú a la izquierda para navegar entre las diversas pantallas. Os muestro una imagen:

http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/12/02/B4Z87346.jpg

Las diversas pantallas ya están hechas. Tengo una pregunta sobre el funcionamiento de la navegación entre las diversas pantallas a través del menú de la izquierda.

Como el menú de la izquierda se utiliza en todas las pantallas he hecho un nuevo View únicamente para el menú (MenuPrincView). Luego, en las pantallas en lugar de colocar el menú he puesto un ViewContainerUIElement y en él he insertado el MenuPrincView. El diagrama de views (solo muestro dos de los muchos pantallazos)

http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/12/02/6Vs88257.jpg

Mi pregunta es, tengo que realizar todos los 'navigation link' para cada uno de los outbound de cada MenuPrincView de cada pantallazo? Esto me parece ilógico, ya que el MenuPrincView se comporta igual en todos los pantallazos, y por lo tanto solo debería realizar un navigation link por cada outbound del MenuPrincView una única vez.

Si hay alguna forma mejor de hacer lo que digo.

Saludos y gracias,

Rubén Gutiérrez

Edited by: bifusion on Dec 2, 2010 12:30 PM

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Es similar a lo anterior. En tu vista tu ya tienes creados varios ViewContainers. Copio un ejemplo aquí abajo, pero esta parte tu ya la tienes hecha:

Luego en window editor le asocias la vista de menú a uno de los view containers y varias vistas a otro de los view containers y creas la navegación entre ellos, como en este ejemplo:

Saludos, Aldo.

Former Member
0 Kudos

Muchas gracias Aldo,

Tu último comentario era lo que me faltaba para que todo encaje.

Saludos,

Rubén Gutiérrez

Answers (3)

Answers (3)

Former Member
0 Kudos

En el segundo caso solo debes de tener la vista de menú en la parte izquierda y todas las vistas de la aplicación en la derecha, y los navigation links desde el menú hacia las vistas de la derecha. Esto hará que se navegue en la parte derecha de la pantalla y la parte izquierda permanezca estática.

Mira este ejemplo:

Saludos,

Aldo Velázquez.

Former Member
0 Kudos

Muchas gracias Aldo por tu respuesta,

La última solución que me explicas creo que es la más correcta, pero tengo una duda de como realizar una cosa. Si, como tú dices, pongo el menú en la parte izquierda y los views en la parte derecha del ViewSet, como hago para que menú y los views se encuentren dentro del UIComponent Tray? Tal y como muestro en la imagen anterior:

http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/12/02/B4Z87346.jpg

Gracias por todo,

Saludos,

Rubén Gutiérrez

Former Member
0 Kudos

Otra opción es, si no vas a cambiar de viewSet, directamente tener el menú fijo en un área del viewsetcon los plugs vinculados hacia vistas que se encuentran en otra área del viewset. Por ejemplo, en un viewset con dos columnas, podrías tener la vista de menú en la columna izquierda y todas las vistas de la aplicación en la de la derecha. Los plugs de salida de la vista de menú van hacia los de entrada de las vistas de trabajo que se encuentran en la columna derecha. Con esto se navega solo en la columna derecha.

En este caso, todas las vistas tienen que estar en el mismo viewset.

Saludos, Aldo.

Former Member
0 Kudos

Muchas gracias Aldo por tu contestación,

Tu primera solución me parece muy interesante. De esta forma evitaría tener el Diagram View repleto de navigation links de un view a otro. Lo tendría todo mejor organizado y en caso de tener que realizar cualquier cambio sería más fácil.

Sobre tu segunda manera, es lo que se me ocurrió apriori. Pero tengo una pregunta, como hago para que mi parte izquierda (menu) y mi parte derecha esten dentro de un UIElement Tray usando un View set (parte izquierda:'Menu' view. parte derecha: el resto de views)? No encuentro la forma de hacerlo.

Gracias por vuestra atención,

Saludos,

Rubén Gutiérrez

Former Member
0 Kudos

Es muy interesante tu pregunta, me parece que no se puede hacer algo completamente genérico.

Lo que se me ocurre es lo siguiente, quizás puede servir como una aproximación a una solución mejor:

1.- Crearía una vista intermedia o router con un único plug de entrada y n plugs de salida. El plug de entrada debería tener un parámetro que indica a que plug de salida al que se quiere ir.

2.- En el método plug in de esta lista, disparo el plug de salida correspondiente.

3.- A continuación agrego los navigational links desde la vista intermedia a cada vista según el diseño de la aplicación.

Los pasos 1 a 3 se realizan una sola vez.

4.- En cada pantalla agrego los navigational links hacia el plug de entrada de la vista intermedia.

El paso 4 hay que hacerlo para cada pantalla, pero de esta forma concentramos toda la navegación en una única vista intermedia y minimizamos las posibilidades de error

El código del plug de entrada de la vista intermedia sería algo así:

public void onPlugIn(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent, java.lang.String par )

{

//@@begin onPlugIn(ServerEvent)

if(par == "1")

{

wdThis.wdFirePlugOut1();

};

if(par == "2")

{

wdThis.wdFirePlugOut2();

};

if(par == "3")

{

wdThis.wdFirePlugOut3();

};

//@@end

}

{/code}

La navegación quedaría de esta forma, recordá que al agregar una nueva pantalla lo único que hay que agregar son los navigational links a la vista intermedia:

Saludos, Aldo.

Cualquier comentario o feedback es bienvenido.

Edited by: Aldo Velazquez on Dec 2, 2010 11:28 AM

Edited by: Aldo Velazquez on Dec 2, 2010 11:29 AM

Edited by: Aldo Velazquez on Dec 2, 2010 11:31 AM