// $Id: CssBorderCSS21.java,v 1.3 2008/03/25 18:43:30 ylafon Exp $
// Author: Jean-Guilhem Rouel
// (c) COPYRIGHT MIT, ERCIM and Keio, 2005.
// Please first read the full copyright statement in file COPYRIGHT.html
package org.w3c.css.properties.css21;
import org.w3c.css.properties.css1.CssBorderBottomStyleCSS2;
import org.w3c.css.properties.css1.CssBorderBottomWidthCSS2;
import org.w3c.css.properties.css1.CssBorderCSS2;
import org.w3c.css.properties.css1.CssBorderFaceStyleCSS2;
import org.w3c.css.properties.css1.CssBorderFaceWidthCSS2;
import org.w3c.css.properties.css1.CssBorderLeftStyleCSS2;
import org.w3c.css.properties.css1.CssBorderLeftWidthCSS2;
import org.w3c.css.properties.css1.CssBorderRightStyleCSS2;
import org.w3c.css.properties.css1.CssBorderRightWidthCSS2;
import org.w3c.css.properties.css1.CssBorderTopColorCSS2;
import org.w3c.css.properties.css1.CssBorderTopStyleCSS2;
import org.w3c.css.properties.css1.CssBorderTopWidthCSS2;
import org.w3c.css.util.ApplContext;
import org.w3c.css.util.InvalidParamException;
import org.w3c.css.values.CssExpression;
import org.w3c.css.values.CssValue;
/**
* CssBorderCSS21
* Created: Aug 31, 2005 2:07:02 PM
*/
public class CssBorderCSS21 extends CssBorderCSS2 {
/**
* Create a new CssBorderFaceCSS2
*/
public CssBorderCSS21() {
super();
}
/**
* Create a new CssBorderFaceCSS2
*
* @param value The value for this property
* @exception InvalidParamException The value is incorrect
*/
public CssBorderCSS21(ApplContext ac, CssExpression value,
boolean check) throws InvalidParamException {
if(check && value.getCount() > 3) {
throw new InvalidParamException("unrecognize", ac);
}
CssValue val = value.getValue();
setByUser();
setTop(new CssBorderTopCSS21(ac, value));
if (val == value.getValue()) {
throw new InvalidParamException("value",
value.getValue(),
getPropertyName(), ac);
}
setRight(new CssBorderRightCSS21());
setBottom(new CssBorderBottomCSS21());
setLeft(new CssBorderLeftCSS21());
CssBorderTopCSS21 top = (CssBorderTopCSS21) getTop();
CssBorderRightCSS21 right = (CssBorderRightCSS21) getRight();
CssBorderLeftCSS21 left = (CssBorderLeftCSS21) getLeft();
CssBorderBottomCSS21 bottom = (CssBorderBottomCSS21) getBottom();
CssBorderTopWidthCSS2 w = top.getWidth2();
CssBorderTopStyleCSS2 s = top.getStyle2();
CssBorderTopColorCSS2 c = top.getColor2();
if(w != null) {
CssBorderFaceWidthCSS2 bfw = (CssBorderFaceWidthCSS2) w.get();
right.setWidth(new CssBorderRightWidthCSS2(bfw));
left.setWidth(new CssBorderLeftWidthCSS2(bfw));
bottom.setWidth(new CssBorderBottomWidthCSS2(bfw));
}
if(s != null) {
CssBorderFaceStyleCSS2 bfs = (CssBorderFaceStyleCSS2) s.get();
right.setStyle(new CssBorderRightStyleCSS2(bfs));
left.setStyle(new CssBorderLeftStyleCSS2(bfs));
bottom.setStyle(new CssBorderBottomStyleCSS2(bfs));
}
if(c != null) {
CssBorderFaceColorCSS21 bfc = (CssBorderFaceColorCSS21) c.get();
right.setColor(new CssBorderRightColorCSS21(bfc));
left.setColor(new CssBorderLeftColorCSS21(bfc));
bottom.setColor(new CssBorderBottomColorCSS21(bfc));
}
}
public CssBorderCSS21(ApplContext ac, CssExpression expression)
throws InvalidParamException {
this(ac, expression, false);
}
}