Extender UINavigator

cancel
Showing results for 
Search instead for 
Did you mean: 
kylian
Member II

Extender UINavigator

Buenas tardes,

Necesito personalizar la apariencia y el funcionamiento del componente Navigator suministrado por defecto por Alfresco. Originalmente tengo los espacios userhome-companyhome-myalfresco, que son los que visualizo en el Navigator, pero necesitaría añadir un elemento extra que al seleccionarse permita abrir un wizard ya predefinido y accesible mediante la action "wizard:myform". De forma que en dicho navigator aparezcan las siguientes opciones:

*CompanyHome
*UserHome
*MyAlfresco
*MyForm

Teniendo en cuenta que este componente es generado de forma automática por Alfresco no he visto otra alternativa que tratar de extender la clase UINavigator y en concreto su método encodeBegin, añadiendo en la parte final la parte de código

De esta forma lo que he hecho ha sido

public class UINavigatorCustom extends
      org.alfresco.web.ui.repo.component.UINavigator {
   @Override
   public void encodeBegin(FacesContext context) throws IOException {
      (…)

      if (NavigationBean.LOCATION_MYALFRESCO.equals(area) == false) {
         encodeSidebarButton(context, out, sideBarStyle,
               NavigationBean.LOCATION_MYALFRESCO,
               NavigationBean.MSG_MYALFRESCO);
      }
      
      /* MI NUEVO CODIGO*/
      
      out.write("<div class=\"sidebarButton\" ");
      out.write(sideBarStyle);
      out.write("><a:actionLink value=\"Creacion formulario\" showLink=\"false\" styleClass=\"containerButtonLegend\" action=\"wizard:formCreateContent\" id=\"a1_2\" />");
      out.write("</div>");
      
      
      /* FIN */

      out.write("</div>");
   }

Luego lógicamente en faces-config-repo.xml he referenciado el componente Navigator a mi nueva clase.

El problema es que esa última opción que he añadido al navigator no me aparece ni renderizada ni abre ningún wizard.

El html generado por otras opciones tiene esta pinta

<a href="#" onclick="document.forms['wizard']['wizard:sidebar-body:navigator'].value='panel:userhome';document.forms['wizard'].submit();return false;" class="sidebarButtonLink">Gestor documental
</a>

¿Qué debería poner o cómo debería gestionar el tema para poder visualizar esa nueva opción y que me abra el wizard identificado por la acción "wizard:formCreateContent"?

Gracias por anticipado.
1 Reply
kylian
Member II

Re: Extender UINavigator

Pues nada, al final teniendo en cuenta que extender el UINavigator no cumplía mi propósito, he optado por otra opción, quizás no la más óptima pero que cumple lo que yo quería

Lo que he modificado ha sido una única jsp (jsp/parts/shelf.jsp)

Que me ha quedado de la siguiente forma



<div id="outsideNavy" styleClass="navigator_outside">
<f:subview id="sidebar-body">
<jsp:include page="<%=Application.getSidebarBean().getActivePluginPage()%>" />
</f:subview>
<div id="externalcontainer">
<div id="internalcontainer1">
<a:actionLink showLink="false" value="Crear formulario"
   action="wizard:formCreateContent" id="identifier_wizard"
   styleClass="sidebarButtonForm">
</a:actionLink>
</div>
<div id="internalcontainer2">
<a:actionLink value="Panel de control" showLink="false"
   styleClass="sidebarButtonForm" action="dialog:adminConsole"
   id="identifier_panel">
</a:actionLink>
</div>
</div>
</div>

La opción Crear Formulario y Panel de Control me quedan al mismo nivel y con la misma apariencia que otras opciones por defecto del Navigator como MyAlfresco o la CompanyHome