protected void convertBackgroundProperties(CSSDeclaration cssDeclaration) { CSSExpression cssExpression = cssDeclaration.getExpression(); List<ICSSExpressionMember> icssExpressionMembers = cssExpression.getAllMembers(); for (ICSSExpressionMember icssExpressionMember : icssExpressionMembers) { if (icssExpressionMember instanceof CSSExpressionMemberFunction) { CSSExpressionMemberFunction cssExpressionMemberFunction = (CSSExpressionMemberFunction) icssExpressionMember; reverseValue(cssExpressionMemberFunction.getExpression()); } else if (icssExpressionMember instanceof CSSExpressionMemberTermSimple) { CSSExpressionMemberTermSimple cssExpressionMemberTermSimple = (CSSExpressionMemberTermSimple) icssExpressionMember; cssExpressionMemberTermSimple.setValue(reverse(cssExpressionMemberTermSimple.getValue())); } else if (icssExpressionMember instanceof CSSExpressionMemberTermURI) { CSSExpressionMemberTermURI cssExpressionMemberTermURI = (CSSExpressionMemberTermURI) icssExpressionMember; String uri = cssExpressionMemberTermURI.getURIString(); int index = uri.lastIndexOf("/") + 1; String fileName = reverse(uri.substring(index)); cssExpressionMemberTermURI.setURIString(uri.substring(0, index) + fileName); } } List<CSSExpressionMemberTermSimple> cssExpressionMemberTermSimples = cssExpression.getAllSimpleMembers(); if (cssExpressionMemberTermSimples.size() == 1) { CSSExpressionMemberTermSimple cssExpressionMemberTermSimple = cssExpressionMemberTermSimples.get(0); String value = cssExpressionMemberTermSimple.getValue(); Matcher matcher = _percentOrLengthPattern.matcher(value); if (matcher.matches()) { cssExpression.addTermSimple(value); cssExpressionMemberTermSimple.setValue("right"); } } else if (cssExpressionMemberTermSimples.size() == 2) { CSSExpressionMemberTermSimple cssExpressionMemberTermSimple = cssExpressionMemberTermSimples.get(0); String value = cssExpressionMemberTermSimple.getValue(); Matcher matcher = _percentPattern.matcher(value); if (matcher.matches()) { int delta = Integer.valueOf(value.replaceAll("[^\\d]", ""), 10); value = (100 - delta) + "%"; cssExpressionMemberTermSimple.setValue(value); } } }