Vistas

Estudio de soporte de CSS externas

De MorfeoWiki

Problema y posible solución

  • Hojas de estilo CSS necesarias:
    • Una hoja de estilo de plataforma (estilos a fuego en el código) junto a .
    • Las hojas de estilo definidas por el programador.
    • Lo anterior para generic y para redefinición por familias de dispositivos. Por ejemplo un default.css y example1.css para generic y un default.css y example1.css para Nokia.
    • La hoja de estilo de plataforma (los estilos que van a fuego en el código) y las hojas de aplicacición se fusionarán en una (muy importante), para asi las páginas tan solo enlazar con una hoja de estilos.
  • La hoja de estilo de plataforma estará creada y estará almacenada en el common del DeployTools. A modo de ejemplo, en lo que concierne a los estilos necesarios para hacer un campo de texto deshabilitado simulado.
Imagen:mymw_platform_external_css.gif
    • Es necesario en este punto realizar un estudio exhaustivo de todos los estilos que se usan en los writers de la plataforma. Aunque este labor se hace una única vez.
  • Las hojas de estilo de aplicación se realizarán en momento de generación.
    • Cada Generator tendrá un cache de tres niveles. {Family , {Sheet , {Selector, Style properties}}}
    • En el método de getStyles() de la clase XSLTInterface actualizará la cache de estilos. ((Generator)GeneratorManager.getInstance(fileConfig).getGenerator(appName)).updateStylesCache(familyName, sheet, selector, styles);
    • Estas lista de estilos styles será la que nos devuelva el StylesManager menos los estilos propios de MyMobileWeb, tan solo nos quedaremos con los estilos W-CSS.
    • Ojo que las etiquetas requieren un mapeo, por ejemplo un entryfield.myStyle acabará siendo un input.myStyle, esto es obvio, pero por ejemplo un menu ya no es tan inmediato. Habrá que estudiar como se renderiza cada uno de los tags.
    • Al final de cada generación de presentación, OP o aplicación se incocará un método sincronizado que se encargará de generar y copiar las nuevas hojas de estilos CSS a partir de la cache.
Imagen:mymw_css_copy_code_java.gif
  • Los estilos dinámicos quedan resueltos con la solución propuesta por definición.
  • Para composición de estilos: el StylesManager resuleve el problema, la única cosa queda por saber si el class será la concatenación de los nombres de estilos o habrá que hacer redefinicón de nombres de class. Ejemplo: redexpandbig -> st1. Esto se debe a que puede aparecer valores del atributo class muy largos.
  • Habrá que tener en cuenta que cuando los estilos vayan inline en la página, tan sólo aparecerán los estrictamente necesarios. En cambio, si se detecta que esa página tiene un tag con estilo dinámico, habra que añadir además todos los posibles estilos que pueda usar el tag dinámico. Esta información la almacenará el tag mymw:style.
  • Toda la resolución de estilos se hará en TIEMPO DE GENERACIÓN.

Estimación de tiempos

  • 8 a 10 días