Introduce guided form to replace wizards
[lgpl/argeo-commons.git] / org.argeo.cms.ux / src / org / argeo / cms / ux / widgets / GuidedForm.java
diff --git a/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/GuidedForm.java b/org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/GuidedForm.java
new file mode 100644 (file)
index 0000000..de8554e
--- /dev/null
@@ -0,0 +1,45 @@
+package org.argeo.cms.ux.widgets;
+
+import java.util.List;
+
+public interface GuidedForm {
+       String getFormTitle();
+
+       boolean canFinish();
+
+       boolean performFinish();
+
+       boolean performCancel();
+
+       void addPages();
+
+       int getPageCount();
+
+       List<Page> getPages();
+
+       Page getStartingPage();
+
+       Page getPreviousPage(Page page);
+
+       Page getNextPage(Page page);
+
+       void setView(View view);
+
+       interface Page {
+
+               default boolean canFlipToNextPage() {
+                       return true;
+               }
+
+               default String getMessage() {
+                       return null;
+               }
+
+               String getTitle();
+
+       }
+
+       interface View {
+               void updateButtons();
+       }
+}