private static TermColor createTermColor(String color) { TermFactory tf = CSSFactory.getTermFactory(); if (color.startsWith("rgba")) { color = color.replaceAll("rgba|\\)|\\(", ""); String[] params = color.split(","); int[] colorValues = new int[params.length]; for (int i = 0; i < params.length; i++) colorValues[i] = Integer.parseInt(params[i]); TermColor termColor = tf.createColor(0, 0, 0); termColor.setValue(new Color(colorValues[0], colorValues[1], colorValues[2], colorValues[3])); return termColor; } else return tf.createColor(color); }
@Override public TermRect createRect(TermFunction function) { if (function.getFunctionName().equalsIgnoreCase("rect")) { List<Term<?>> args = function.getValues(true); //try the rect(0 0 0 0) syntax if (args == null || args.size() != 4) args = function.getSeparatedValues(CSSFactory.getTermFactory().createOperator(','), true); //try the rect(0, 0, 0, 0) syntax if (args.size() == 4) { //check the argument count and types for (int i = 0; i < 4; i++) { Term<?> val = args.get(i); if (val instanceof TermIdent) { if (((TermIdent) val).getValue().equalsIgnoreCase("auto")) //replace 'auto' with null args.set(i, null); } else if (!(val instanceof TermLength)) { return null; } } return createRect((TermLength) args.get(0), (TermLength) args.get(1), (TermLength) args.get(2), (TermLength) args.get(3)); } else { return null; } } else { return null; } }
protected TermLengthOrPercent getLengthOrPercentArg(Term<?> term) { if (term instanceof TermLengthOrPercent) return (TermLengthOrPercent) term; else if (isNumberArg(term) && getNumberArg(term) == 0) return CSSFactory.getTermFactory().createLength(0.0f); else return null; }
protected TermAngle getAngleArg(Term<?> term) { if (term instanceof TermAngle) return (TermAngle) term; else if (isNumberArg(term) && getNumberArg(term) == 0) return CSSFactory.getTermFactory().createAngle(0.0f); else return null; }
@Override public TermRect createRect(TermFunction function) { if (function.getFunctionName().equalsIgnoreCase("rect")) { List<Term<?>> args = function.getValues(true); //try the rect(0 0 0 0) syntax if (args == null || args.size() != 4) args = function.getSeparatedValues(CSSFactory.getTermFactory().createOperator(','), true); //try the rect(0, 0, 0, 0) syntax if (args.size() == 4) { //check the argument count and types for (int i = 0; i < 4; i++) { Term<?> val = args.get(i); if (val instanceof TermIdent) { if (((TermIdent) val).getValue().equalsIgnoreCase("auto")) //replace 'auto' with null args.set(i, null); } else if (!(val instanceof TermLength)) { return null; } } return createRect((TermLength) args.get(0), (TermLength) args.get(1), (TermLength) args.get(2), (TermLength) args.get(3)); } else { return null; } } else { return null; } }
protected TermLength getLengthArg(Term<?> term) { if (term instanceof TermLength) return (TermLength) term; else if (isNumberArg(term) && getNumberArg(term) == 0) return CSSFactory.getTermFactory().createLength(0.0f); else return null; }
&& (dir2 == null || dir2 instanceof TermIdent)) { final TermFactory tf = CSSFactory.getTermFactory();
/** * Creates an empty block style definition. * @return */ protected NodeData createBlockStyle() { NodeData ret = CSSFactory.createNodeData(); TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("display", tf.createIdent("block"))); return ret; }
/** * Creates a style definition used for the body element. * @return The body style definition. */ protected NodeData createBodyStyle() { NodeData ret = createBlockStyle(); TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("background-color", tf.createColor(255, 255, 255))); return ret; }
@Override public TermList setValue(List<Term<?>> value) { super.setValue(value); List<Term<?>> args = getSeparatedValues(DEFAULT_ARG_SEP, false); if (args.size() == 2 && (translateX = getLengthOrPercentArg(args.get(0))) != null && (translateY = getLengthOrPercentArg(args.get(1))) != null) { setValid(true); } else if (size() == 1 && (translateX = getLengthOrPercentArg(args.get(0))) != null) { translateY = CSSFactory.getTermFactory().createLength(0.0f); setValid(true); } return this; } }
@Override public TermList setValue(List<Term<?>> value) { super.setValue(value); List<Term<?>> args = getSeparatedValues(DEFAULT_ARG_SEP, false); if (args.size() == 2 && (skewX = getAngleArg(args.get(0))) != null && (skewY = getAngleArg(args.get(1))) != null) { setValid(true); } else if (size() == 1 && (skewX = getAngleArg(args.get(0))) != null) { skewY = CSSFactory.getTermFactory().createAngle(0.0f); setValid(true); } return this; } }
private void storeBackgroundPosition(Term<?>[] storage, Term<?> term) { if (term instanceof TermIdent) { String idval = ((TermIdent) term).getValue(); TermFactory tf = CSSFactory.getTermFactory(); if (idval.equalsIgnoreCase("left")) setPositionValue(storage, 0, tf.createPercent(0.0f)); else if (idval.equalsIgnoreCase("right")) setPositionValue(storage, 0, tf.createPercent(100.0f)); else if (idval.equalsIgnoreCase("top")) setPositionValue(storage, 1, tf.createPercent(0.0f)); else if (idval.equalsIgnoreCase("bottom")) setPositionValue(storage, 1, tf.createPercent(100.0f)); else if (idval.equalsIgnoreCase("center")) setPositionValue(storage, -1, tf.createPercent(50.0f)); } else setPositionValue(storage, -1, term); }
List<Term<?>> args = func.getSeparatedValues(CSSFactory.getTermFactory().createOperator(','), false); if (args != null)
List<Term<?>> args = func.getSeparatedValues(CSSFactory.getTermFactory().createOperator(','), false); if (args != null)
@Override public Term<?> getSpecifiedValue(String name) { Term<?> ret = getValue(name, true); if (ret == null) ret = css.getDefaultValue(name); if (ret != null) { if (ret instanceof TermColor && ((TermColor) ret).getKeyword() == Keyword.CURRENT_COLOR) { //clone the value fot setting the current color final TermFactory tf = CSSFactory.getTermFactory(); ret = tf.createColor(tf.createIdent("currentColor")); //set the current color value TermColor cvalue = getValue(TermColor.class, "color", true); if (cvalue == null) cvalue = (TermColor) css.getDefaultValue("color"); ((TermColor) ret).setValue(cvalue.getValue()); } } return ret; }
@Override public Term<?> getSpecifiedValue(String name) { Term<?> ret = getValue(name, true); if (ret == null) ret = css.getDefaultValue(name); if (ret != null) { if (ret instanceof TermColor && ((TermColor) ret).getKeyword() == Keyword.CURRENT_COLOR) { //clone the value fot setting the current color final TermFactory tf = CSSFactory.getTermFactory(); ret = tf.createColor(tf.createIdent("currentColor")); //set the current color value TermColor cvalue = getValue(TermColor.class, "color", true); if (cvalue == null) cvalue = (TermColor) css.getDefaultValue("color"); ((TermColor) ret).setValue(cvalue.getValue()); } } return ret; }
TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("position", tf.createIdent("relative"))); ret.push(createDeclaration("border-width", tf.createLength(1f, Unit.px)));
protected NodeData createLineStyle(float x1, float y1, float x2, float y2) { HtmlDivLine line = new HtmlDivLine(x1, y1, x2, y2); String bside = line.getBorderSide(); NodeData ret = CSSFactory.createNodeData(); TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("position", tf.createIdent("absolute"))); ret.push(createDeclaration("position", tf.createIdent("absolute"))); ret.push(createDeclaration("left", tf.createLength(line.getLeft(), unit))); ret.push(createDeclaration("top", tf.createLength(line.getTop(), unit))); ret.push(createDeclaration("width", tf.createLength(line.getWidth(), unit))); ret.push(createDeclaration("height", tf.createLength((float) line.getHeight(), unit))); ret.push(createDeclaration(bside + "-width", tf.createLength(line.getLineStrokeWidth(), unit))); ret.push(createDeclaration(bside + "-style", tf.createIdent("solid"))); String color = colorString(getGraphicsState().getStrokingColor()); ret.push(createDeclaration(bside + "-color", tf.createColor(color))); if (line.getAngleDegrees() != 0) { TermFunction rotate = tf.createFunction(); rotate.setFunctionName("rotate").add(tf.createAngle(String.valueOf(line.getAngleDegrees()), Unit.deg, 1)); ret.push(createDeclaration("transform", rotate)); } return ret; }
TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("position", tf.createIdent("absolute"))); ret.push(createDeclaration("overflow", tf.createIdent("hidden")));
TermFactory tf = CSSFactory.getTermFactory(); ret.push(createDeclaration("position", tf.createIdent("absolute"))); ret.push(createDeclaration("left", tf.createLength(x, unit)));