Sidar, principal.
>>contenido
Fundación Sidar - Acceso Universal
Seminario SIDAR
Principal >> Aplicación: UAW >> Documentación de las clases java

uaw.sensemarcs
Class AnalitzadorFramesets

java.lang.Object
  |
  +--orgxml.sax.helpers.DefaultHandler
        |
        +--uaw.sensemarcs.AnalitzadorFramesets
All Implemented Interfaces:
org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.EntityResolver, org.xml.sax.ErrorHandler

public class AnalitzadorFramesets
extends org.xml.sax.helpers.DefaultHandler

AnalitzadorFramesets es un ContentHandler de SAXParser para analizar documentos XHTML de definición de marcos. En el análisis guarda el nombre de los marcos, su título y también como los marcos dividen el espacio de pantalla. Como resultado del análisis crea un objeto EstructuraDivisions que guarda las reglas CSS correspondientes a la compaginación definida por los marcos.

Version:
1.0, 2004/06
Author:
Mireia Ribera
See Also:
uaw.EstructuraDivisions , uaw.Caixa , www.w3.org/TR/CSS2, wwww.w3.org/TR/xhtml1/xhtml1-frameset.dtd

UML data model
legend graphical representation



Field Summary
protected static int COLS
Constante para indicar que estamos tratando el atributo cols.
private EstructuraDivisions ed
La clase en la que se guarda la información de posicionamiento de los marcos.
private EstructuraDivisions edAux
Una EstructuraDivisions auxiliar para cambiar el orden y otras manipulaciones.
private boolean inicialitzat
Constante para indicar si el analizador está inicializado
private int numframeset
Constante para guardar el número de framesets analizados.
protected static int ROWS
Constante para indicar que estamos tratando el atributo rows.
private boolean rowsDef
Constante para indicar si ya se han definido las filas en el frameset actual.
Constructor Summary
AnalitzadorFramesets ()
Crea un nuevo analizador.
Method Summary
private int enter (java.lang.String s)
Método auxiliar que lee el valor entero de una cadena, eliminando los caracteres textuales que pueda contener.
EstructuraDivisions getEstructuraDivisions ()
Devuelve la EstructuraDivisions resultante del análisis.
void setBorder (Caixa c, java.lang.String margen)
Realiza una traducción de los márgenes establecidos en el atributo frameborder del elemento frame a la propiedad border CSS.
void setOverflow (Caixa c, java.lang.String scroll)
Realiza una traducción del scroll establecido en el atributo scrolling del elemento frame a la propiedad overflow CSS.
void startElement (java.lang.String uri, java.lang.String tagName, java.lang.String qname, org.xml.sax.Attributes attrList)
Análisis de las etiquetas frame y frameset para construir la EstructuraDivisions.
protected java.util.Stack traduirMides (int tipus, java.lang.String mides)
A partir de la definición del tamaño de los marcos en la página de definición de marcos se crean las medidas de las cajas en la compaginación CSS.
Methods inherited from class org.xml.sax.helpers.DefaultHandler
characters, endDocument, endElement, endPrefixMapping, error, fatalError, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setDocumentLocator, skippedEntity, startDocument, startPrefixMapping, unparsedEntityDecl, warning
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

COLS

protected static final int COLS

Constante para indicar que estamos tratando el atributo cols.

See Also:
Constant Field Values

ROWS

protected static final int ROWS

Constante para indicar que estamos tratando el atributo rows.

See Also:
Constant Field Values

ed

private EstructuraDivisions ed

La clase en la que se guarda la información de posicionamiento de los marcos.


edAux

private EstructuraDivisions edAux

Una EstructuraDivisions auxiliar para cambiar el orden y otras manipulaciones


inicialitzat

private boolean inicialitzat

Constante para indicar si el analizador está inicializado Concretamente indica si se han creado los campos necesarios y se ha leído ya el primer frameset.


numframeset

private int numframeset

Constante para guardar el número de framesets analizados.


rowsDef

private boolean rowsDef

Constante para indicar si ya se han definido las filas en el frameset actual.

 

Constructor Detail

AnalitzadorFramesets

public AnalitzadorFramesets()
Method Detail

enter

private int enter(java.lang.String s)

Método auxiliar que lee el valor entero de una cadena, eliminando los caracteres textuales que pueda contener. Si la cadena es nula devuelve 0.

Parameters:
s - la cadena a traducir
Returns:
un entero con el valor de la cadena

getEstructuraDivisions

public EstructuraDivisions getEstructuraDivisions()
                                           throws UawException

Devuelve la EstructuraDivisions resultante del análisis.

Throws:
UawException - si se han producido problemas en la creación de la EstructuraDivisions

setBorder

public void setBorder(Caixa c,
                      java.lang.String margen)
               throws UawException

Realiza una traducción de los márgenes establecidos en el atributo frameborder del elemento frame a la propiedad border CSS. Si frameborder establecía márgenes, border tendrá un estilo sólido y el grosor de un píxel.

Parameters:
c - la caja a la que hay que aplicar el marco
margen - el valor del atributo frameborder
Throws:
UawException - si se ha producido algún problema en la asignación del marco a c

setOverflow

public void setOverflow(Caixa c,
                        java.lang.String scroll)
                 throws UawException

Realiza una traducción del scroll establecido en el atributo scrolling del elemento frame a la propiedad overflow CSS.

Parameters:
c - la caja a la que hay que aplicar el overflow
scroll - el valor del atributo scrolling
Throws:
UawException - si se ha producido algún problema en la asignación de overflow a c

startElement

public void startElement(java.lang.String uri,
                         java.lang.String tagName,
                         java.lang.String qname,
                         org.xml.sax.Attributes attrList)
                  throws org.xml.sax.SAXException

Análisis de las etiquetas frame y frameset para construir la EstructuraDivisions

Specified by:
startElement in interface org.xml.sax.ContentHandler
Overrides:
startElement in class org.xml.sax.helpers.DefaultHandler
Throws:
org.xml.sax.SAXException - si hay más etiquetas frame que las definidas en frameset o si se ha producido alguna UawException en la manipulación de las cajas

traduirMides

protected java.util.Stack traduirMides(int tipus,
                                       java.lang.String mides)
                                throws java.lang.IllegalArgumentException

A partir de la definición del tamaño de los marcos en la página de definición de marcos se crean las medidas de las cajas en la compaginación CSS.

Las medidas CSS se leen de izquierda a derecha o bien de arriba a abajo (según tipus), se guardan en objetos Caixa y se empilan en el resultado.

La transformación no cambia el valor de las medidas absolutas ni las porcentuales. Las medidas de tipo "#*" se transforman a porcentuales y las de tipo "*" no se transforman y se indica que son indefinidas. Se guarda la definición de la medida original por si se desea consultar posteriormente.

Precondiciones:

  • Les medidas #* no se mezclan con otras de otro tipo
  • Les medidas porcentuales no se mezclan con otras de otro tipo
  • Les medidas * se mezclan sólo con medidas absolutas o sólo con medidas porcentuales
  • Como máximo puede haber sólo una medida *

Como ejemplos de medidas aceptadas: "100,*,80", " 30%, 10%", "1*,2*,3*" o "30%,*"

Si no se cumplen estas precondiciones no se garantiza la validez de los resultados.

Parameters:
tipus - puede ser ROWS o COLS
mides - la cadena con las medidas
Returns:
una pila de cajas con las medidas transformadas.
Throws:
java.lang.IllegalArgumentException - si tipus no es correcto