package net.techreadiness.ui.theme; import org.apache.commons.lang3.StringUtils; import org.apache.struts2.views.java.Attributes; import org.apache.struts2.views.java.DefaultTagHandlerFactory; import org.apache.struts2.views.java.simple.DynamicAttributesHandler; import org.apache.struts2.views.java.simple.ScriptingEventsHandler; import org.apache.struts2.views.java.simple.SimpleTheme; import com.google.common.base.Joiner; public class ReadinessTheme extends SimpleTheme { public ReadinessTheme() { setName("readiness"); appendHandler("a-close", DynamicAttributesHandler.class, ScriptingEventsHandler.class, ToolbarItemHandler.class); appendHandler("submit", ToolbarItemHandler.class); appendHandler("submit-close", ToolbarItemHandler.class); appendHandler("text", InputFieldHandler.class); appendHandler("select", InputFieldHandler.class); appendHandler("password", InputFieldHandler.class); appendHandler("checkbox", InputFieldHandler.class); appendHandler("textarea", InputFieldHandler.class); appendHandler("radiomap", RadioMapHandler.class); appendHandler("radiomap", InputFieldHandler.class); appendHandler("label", LabelHandler.class); } void appendHandler(String tagName, Class<?>... handlers) { for (Class<?> handler : handlers) { insertTagHandlerFactory(tagName, handlerFactories.get(tagName).size() - 1, new DefaultTagHandlerFactory(handler)); } } public static void addClass(Attributes attributes, String className, String... additionalClassNames) { attributes.put( "class", Joiner.on(" ").join(StringUtils.defaultString(attributes.get("class")), className, (Object[]) additionalClassNames)); } }