¿Cómo se usa la propiedad Seleccionado del navegador?

He pasado días tratando de resolver esto y me doy por vencido.

Soy un programador de LotusScript y he estado tratando de aprender XPages. Todos los ejemplos y programas de muestra que he estudiado solo tocan partes de esto.

¿Alguien me puede explicar paso a paso cómo usar la propiedad Selected del control Extension Library Navigator?

Creé mi propio control personalizado basado en el control de diseño de la Biblioteca de extensiones y creé una propiedad personalizada llamada ruta de navegación. También creé un control personalizado del navegador que tiene 5 nodos de enlace de página. En la propiedad "Seleccionado" de cada Nodo de enlace de página, pongo el siguiente SSJS:

if(compositeData.navigationPath == "/Home/ApplicationPool"){
    return true
}else{
    return false
}

/Home/ApplicationPool corresponde al valor que puse en la propiedad "Selección" del nodo de enlace de página en particular.

En cada control personalizado de diseño, configuro la propiedad "navigationPath" en compositeData.navigationPath.

¿Qué me he perdido?

preguntado el 10 de marzo de 12 a las 05:03

2 Respuestas

hay un selected y selection propiedad y significan cosas muy diferentes y no se pueden usar al mismo tiempo. En el ejemplo de código en su pregunta anterior, está utilizando el selected propiedad que es la incorrecta en este caso.

Su treeNodes en el navegador debe estar configurado para usar el selection propiedad, este es un valor RegEx que se usa para ver si coincide con el valor pasado al diseño de la aplicación a través de la propiedad personalizada.

<xe:navigator id="navigator1" expandable="true" expandEffect="wipe">
  <xe:this.treeNodes>
    <xe:pageTreeNode label="nodeName" page="/page.xsp" selection="/Home/ApplicationPool" />
  </xe:this.treeNodes>
</xe:navigator>

Como puede ver, no necesita usar ningún SSJS para evaluar un resultado verdadero/falso. Simplemente haga coincidir el valor en el treeNode con el del control applicationLayout de XPage.

Si usa pestañas en la barra de título del diseño, puede establecer una propiedad de selección allí que también use el formato /Home/.* que hará que esa pestaña se resalte para cada XPage que tenga /Home/ al comienzo de su propiedad personalizada de ruta de navegación. No olvide que es RegEx, por lo que cualquier declaración RegEx válida se puede usar aquí para agregar más poder a esta propiedad en particular.

respondido 10 mar '12, 19:03

Solo para apoyar esta respuesta. Es engañoso tener una propiedad seleccionada en el nodo de página. Porque será ignorado. Renderer busca si se ha establecido alguna ruta de navegación (por ejemplo, dentro de ApplicationLayout), si está establecida, utiliza la verificación Regex para la 'selección' dada. - serdar basegmez

Si usa el navegador fuera de applicationLayout, la ruta de navegación no existe. Por lo tanto, verificará si la selección dada es igual a la página actual. Quiero decir, si su página es home.xsp, puede usar "/home" como selección. Agrega '.xsp' automáticamente. - serdar basegmez

Para los nodos de árbol en el control del navegador, defina el nombre de la página x para abrir y luego la selección relacionada. Ejemplo:

<xe:pageTreeNode page="/text.xsp" selection="/Home/Test" label="Test page">
</xe:pageTreeNode>

Para las xpages individuales que usan applicationLayout, define un valor para navigationPath. Si este valor coincide con una entrada en uno de los nodos del árbol que controla el navegador, el elemento de menú correspondiente se resaltará en el navegador. La mejor manera de definir el valor de la ruta de navegación es usando una propiedad personalizada (como la que está usando). Aquí hay un ejemplo de eso:

<xe:applicationLayout id="applicationLayout1">
        <xe:this.configuration>
            <xe:oneuiApplication navigationPath="${javascript:compositeData.navigationPath}" ...

Puede ver ejemplos del uso de todo esto en las plantillas Teamroom y Discusión de la biblioteca de extensiones.

Según mi explicación sobre cómo usarlo, puedo ver que no está usando la propiedad de selección en el control de navegación correctamente. Solo necesita definir un valor único para cada nodo del árbol (que luego se usará si coincide con la ruta de navegación en las páginas x individuales).

Entonces, para su ejemplo específico, cambie su propiedad de selección para que solo devuelva: "/Home/ApplicationPool"

respondido 10 mar '12, 18:03

Volveré a verificar, pero pensé que eso es exactamente lo que hice. No es necesario que esté entre comillas, ¿verdad? - Mike Jackson

Aquí nosotros mi Navegador Fuente: - Mike Jackson

No entendí que usas tanto la selección como las propiedades seleccionadas. No uso la propiedad seleccionada. Uso la ruta de navegación en el control y la selección applicationLayout para los nodos del árbol en el control de navegación. Esta combinación garantiza que un elemento de menú específico se marque como activo cuando los dos coincidan. Así que intente eliminar su uso de la propiedad seleccionada. - Por Henrik Lausten

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.