private static boolean isAttrFunction(FSFunction function) { if (function.getName().equals("attr")) { List params = function.getParameters(); if (params.size() == 1) { PropertyValue value = (PropertyValue) params.get(0); return value.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT; } } return false; }
public PropertyValue(FSFunction function) { _type = CSSPrimitiveValue.CSS_UNKNOWN; _cssValueType = CSSValue.CSS_CUSTOM; _cssText = function.toString(); _function = function; _propertyValueType = VALUE_TYPE_FUNCTION; }
private static String getAttributeValue(FSFunction attrFunc, Element e) { PropertyValue value = (PropertyValue) attrFunc.getParameters().get(0); return e.getAttribute(value.getStringValue()); }
private boolean isFunctionAllowed(FSFunction function) { String name = function.getName(); return name.equals("attr") || name.equals("counter") || name.equals("counters") || name.equals("element") || name.startsWith("-fs") || name.equals("target-counter") || name.equals("leader"); } }
result = new PropertyValue(new FSFunction(f.substring(0, f.length()-1), params));
protected IdentValue getListStyleType(FSFunction function) { IdentValue result = IdentValue.DECIMAL; List parameters = function.getParameters(); if (parameters.size() == 2) { PropertyValue pValue = (PropertyValue)parameters.get(1); IdentValue iValue = IdentValue.valueOf(pValue.getStringValue()); if (iValue != null) { result = iValue; } } return result; }
if (! isFunctionAllowed(value.getFunction())) { throw new CSSParseException( "Function " + value.getFunction().getName() + " is not allowed here", -1);
public static boolean isElementFunction(FSFunction function) { if (function.getName().equals("element")) { List params = function.getParameters(); if (params.size() < 1 || params.size() > 2) { return false; } boolean ok = true; PropertyValue value1 = (PropertyValue) params.get(0); ok = value1.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT; if (ok && params.size() == 2) { PropertyValue value2 = (PropertyValue) params.get(1); ok = value2.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT; } return ok; } return false; }
public String getRunningName() { FunctionValue value = (FunctionValue)valueByName(CSSName.POSITION); FSFunction function = value.getFunction(); PropertyValue param = function.getParameters().get(0); return param.getStringValue(); }
} else if (value.getPropertyValueType() == PropertyValue.VALUE_TYPE_FUNCTION) { throw new CSSParseException( "Function " + value.getFunction().getName() + " is not allowed here", -1); } else if (type == CSSPrimitiveValue.CSS_IDENT) { throw new CSSParseException(
public boolean canHandle(LayoutContext c, FSFunction function) { if (c.isPrint() && function.getName().equals("target-counter")) { List parameters = function.getParameters(); if (parameters.size() == 2 || parameters.size() == 3) { FSFunction f = ((PropertyValue)parameters.get(0)).getFunction(); if (f == null || f.getParameters().size() != 1 || f.getParameters().get(0).getPrimitiveType() != CSSPrimitiveValue.CSS_IDENT || ! f.getParameters().get(0).getStringValue().equals("href")) { return false; } PropertyValue param = (PropertyValue)parameters.get(1); return param.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT && param.getStringValue().equals("page"); } } return false; } }
public static BlockBox getRunningBlock(LayoutContext c, PropertyValue value) { List params = value.getFunction().getParameters(); String ident = ((PropertyValue)params.get(0)).getStringValue(); PageElementPosition position = null; if (params.size() == 2) { position = PageElementPosition.valueOf( ((PropertyValue)params.get(1)).getStringValue()); } if (position == null) { position = PageElementPosition.FIRST; } BlockBox target = c.getRootDocumentLayer().getRunningBlock(ident, c.getPage(), position); return target; }
protected boolean isCounter(FSFunction function, String counterName) { if (function.getName().equals("counter")) { List parameters = function.getParameters(); if (parameters.size() == 1 || parameters.size() == 2) { PropertyValue param = (PropertyValue)parameters.get(0); if (param.getPrimitiveType() != CSSPrimitiveValue.CSS_IDENT || ! param.getStringValue().equals(counterName)) { return false; } if (parameters.size() == 2) { param = (PropertyValue)parameters.get(1); return param.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT; } return true; } } return false; } }
PropertyValue param = function.getParameters().get(0); String value = param.getStringValue(); if (param.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT) {
public boolean canHandle(LayoutContext c, FSFunction function) { if (c.isPrint() && function.getName().equals("leader")) { List parameters = function.getParameters(); if (parameters.size() == 1) { PropertyValue param = (PropertyValue)parameters.get(0); return param.getPrimitiveType() == CSSPrimitiveValue.CSS_STRING || (param.getPrimitiveType() == CSSPrimitiveValue.CSS_IDENT && (param.getStringValue().equals("dotted") || param.getStringValue().equals("solid") || param.getStringValue().equals("space"))); } } return false; } }
@Deprecated private void applyTransformFunctions(float flipFactor, List<PropertyValue> transformList, List<AffineTransform> resultTransforms) { for (PropertyValue transform : transformList) { String fName = transform.getFunction().getName(); List<PropertyValue> params = transform.getFunction().getParameters();
private static void applyTransformFunctions(float flipFactor, List<PropertyValue> transformList, AffineTransform result, Box box, CssContext ctx) { for (PropertyValue transform : transformList) { String fName = transform.getFunction().getName(); List<PropertyValue> params = transform.getFunction().getParameters();
String fName = value.getFunction().getName(); for (Object p : value.getFunction().getParameters()) { checkNumberType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkLengthOrPercentType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkLengthOrPercentType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkLengthOrPercentType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkNumberType(cssName, (CSSPrimitiveValue) p); if (value.getFunction().getParameters().size() == 1) expected = 1; } else if (fName.equalsIgnoreCase("scaleX")) { expected = 1; for (Object p : value.getFunction().getParameters()) { checkNumberType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkNumberType(cssName, (CSSPrimitiveValue) p); for (Object p : value.getFunction().getParameters()) { checkAngleType(cssName, (CSSPrimitiveValue) p);
private static CounterFunction makeCounterFunction(FSFunction function, LayoutContext c, CalculatedStyle style) { if (function.getName().equals("counter")) { List params = function.getParameters(); if (params.size() < 1 || params.size() > 2) { return null; } else if (function.getName().equals("counters")) { List params = function.getParameters(); if (params.size() < 2 || params.size() > 3) { return null;
} else if (value.getPropertyValueType() == PropertyValue.VALUE_TYPE_FUNCTION) { FSFunction function = value.getFunction(); if (function.getName().equals("running")) { List params = function.getParameters(); if (params.size() == 1) { PropertyValue param = (PropertyValue)params.get(0);