Cambiando el mensaje de incompatibilidad de Navegador

Encontré en el foro de OTN una pregunta acerca de como cambiar el mensaje por defecto de ADF 11g R1 correspondiente con la incompatibilidad del navegador utilizada.

Mensaje de ADF 11gR1 corriendo en IE con Compatibily View Mode
Mensaje sobreescrito con ADF Skinning
Hilo en el foro de WebCenter Portal

Versión en inglés (coming soon)

Indagando por las librerías internas del core de ADF encontré el siguiente fragmento de código en el DocumentRenderer (el renderizador del componente af:document de ADF):

if (checkAgentSupport) 
    { 
      String unsupportedAgentMessage = arc.getTranslatedString("AFUnsupportedBrowser"); 
      out.writeText("AdfAgent._UNSUPPORTED_BROWSER_ALERT=\"", null); 
      out.writeText(unsupportedAgentMessage, null); 
      out.writeText("\";", null); 
}  


La variable arc no es mas que una instancia de org.apache.myfaces.trinidad.context.RenderingContext
El método getTranslatedString recoge del Resource Bundle de la Skin actual el literal deseado.

En el caso de WebCenter Portal 11.1.1.8 y la Skin skyros estos literales se encuentran en:
oracle.adfinternal.view.faces.renderkit.rich.resource.RichBundle

...{ "AFUnsupportedBrowser", "You are using an unsupported browser. The supported browsers are Internet Explorer 7 and higher, Firefox 2.0.0.2 and higher, Safari 3.1.2 and higher, and Google Chrome 1.0 or higher." }, { "AFUnsupportedBrowserMode", "The current compatibility setting is not supported. Disable Compatibility View before running this web page." }...

¿Cómo modificar los mensajes?

Solución 1: Mediante Skinning (recomendado y soportado por Oracle)
Crea una Custom Skin que extienda tu Skin actual cuya configuración incluya un Resource Bundle que sobreescriba las entradas AFUnsupportedBrowser y AFUnsupportedBrowserMode.
Link a la entrada de Skinning de mi Blog

Solución 2: Sobreescribir la clase RichBundle (No recomendado)
Crear la misma estructura de paquetes y clases que RichBundle en el codigo que se despliega con WebCenter Portal Framework o con el PortalExtension de WebCenter Portal y modificar las cadenas de texto necesarias.

NOTA: Esta solución sobreescribe la funcionalidad estándar de ADF y afectará a futuros parches.

Comments

Popular posts from this blog

OJET: Inter-Module communication in TypeScript Template

OJET: Build and Deploy in an Application Server

OJET: Select All options using only Checkboxset