Major refactoring of Argeo CMS UI
[lgpl/argeo-commons.git] / org.argeo.api / src / org / argeo / api / cms / CmsStyle.java
diff --git a/org.argeo.api/src/org/argeo/api/cms/CmsStyle.java b/org.argeo.api/src/org/argeo/api/cms/CmsStyle.java
new file mode 100644 (file)
index 0000000..8444e2f
--- /dev/null
@@ -0,0 +1,22 @@
+package org.argeo.api.cms;
+
+/** Can be applied to {@link Enum}s in order to generate (CSS) class names. */
+public interface CmsStyle {
+       String name();
+
+       /** @deprecated use {@link #style()} instead. */
+       @Deprecated
+       default String toStyleClass() {
+               return style();
+       }
+
+       default String style() {
+               String classPrefix = getClassPrefix();
+               return "".equals(classPrefix) ? name() : classPrefix + "-" + name();
+       }
+
+       default String getClassPrefix() {
+               return "";
+       }
+
+}