X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fthymeleaf%2FActiveAttrProcessor.java;h=7392bf927e7188bd99ac64416e3aaa38068d923c;hb=06b7d4b23347660006a683f003751b704eb67e6e;hp=7dbe0cdcd1457725c5f9cdb5343f4632b8abfe50;hpb=815df4f032e0cfdef9857f711420c772f9e2c0d5;p=juplo-dialect diff --git a/src/main/java/de/juplo/thymeleaf/ActiveAttrProcessor.java b/src/main/java/de/juplo/thymeleaf/ActiveAttrProcessor.java index 7dbe0cd..7392bf9 100644 --- a/src/main/java/de/juplo/thymeleaf/ActiveAttrProcessor.java +++ b/src/main/java/de/juplo/thymeleaf/ActiveAttrProcessor.java @@ -1,81 +1,15 @@ package de.juplo.thymeleaf; -import org.thymeleaf.Arguments; -import org.thymeleaf.Configuration; -import org.thymeleaf.dom.Element; -import org.thymeleaf.processor.ProcessorResult; -import org.thymeleaf.processor.attr.AbstractAttrProcessor; -import org.thymeleaf.standard.expression.IStandardExpression; -import org.thymeleaf.standard.expression.IStandardExpressionParser; -import org.thymeleaf.standard.expression.StandardExpressions; - - /** * Replaces the element by the tag <strong>, if it is * marked as active. * @author Kai Moritz */ -public class ActiveAttrProcessor extends AbstractAttrProcessor +public class ActiveAttrProcessor extends AbstractSubstituteAttrrocessor { - public static final int ATTR_PRECEDENCE = 100; - - - public ActiveAttrProcessor() - { - super("active"); - } - - - @Override - protected ProcessorResult processAttribute( - Arguments arguments, - Element element, - String name - ) - { - Configuration configuration = arguments.getConfiguration(); - IStandardExpressionParser parser = - StandardExpressions.getExpressionParser(configuration); - String value = element.getAttributeValue(name); - IStandardExpression expression = - parser.parseExpression(configuration, arguments, value); - element.removeAttribute(name); - if ((Boolean)expression.execute(configuration, arguments)) - { - // We must not clone the processors, because we remove attributes - Element strong = - element.cloneElementNodeWithNewName(element, "strong", false); - strong.removeAttribute("charset"); - strong.removeAttribute("th:charset"); - strong.removeAttribute("coords"); - strong.removeAttribute("href"); - strong.removeAttribute("th:href"); - strong.removeAttribute("hreflang"); - strong.removeAttribute("th:hreflang"); - strong.removeAttribute("media"); - strong.removeAttribute("th:media"); - strong.removeAttribute("name"); - strong.removeAttribute("th:name"); - strong.removeAttribute("rel"); - strong.removeAttribute("th:rel"); - strong.removeAttribute("ref"); - strong.removeAttribute("th:ref"); - strong.removeAttribute("shape"); - strong.removeAttribute("target"); - strong.removeAttribute("th:target"); - strong.removeAttribute("type"); - strong.removeAttribute("th:type"); - element.clearChildren(); - element.addChild(strong); - element.getParent().extractChild(element); - } - return ProcessorResult.OK; - } - - @Override - public int getPrecedence() + public ActiveAttrProcessor(final String prefix) { - return ATTR_PRECEDENCE; + super(prefix, "active", "strong"); } }