]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ux/src/org/argeo/cms/ux/widgets/AbstractGuidedForm.java
Improve documentation.
[lgpl/argeo-commons.git] / org.argeo.cms.ux / src / org / argeo / cms / ux / widgets / AbstractGuidedForm.java
1 package org.argeo.cms.ux.widgets;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 public abstract class AbstractGuidedForm implements GuidedForm {
8 private String formTitle;
9 private List<Page> pages = new ArrayList<>();
10 private View view;
11
12 @Override
13 public abstract void addPages();
14
15 public void addPage(AbstractGuidedFormPage page) {
16 page.setView(view);
17 pages.add(page);
18 }
19
20 @Override
21 public boolean canFinish() {
22 return false;
23 }
24
25 @Override
26 public boolean performFinish() {
27 return false;
28 }
29
30 @Override
31 public boolean performCancel() {
32 return false;
33 }
34
35 @Override
36 public int getPageCount() {
37 return pages.size();
38 }
39
40 @Override
41 public List<Page> getPages() {
42 return Collections.unmodifiableList(pages);
43 }
44
45 @Override
46 public Page getStartingPage() {
47 if (pages.isEmpty())
48 throw new IllegalStateException("No page available");
49 return pages.get(0);
50 }
51
52 @Override
53 public Page getPreviousPage(Page page) {
54 int index = pages.indexOf(page);
55 if (index == 0 || index == -1) {
56 // first page or page not found
57 return null;
58 }
59 return pages.get(index - 1);
60 }
61
62 @Override
63 public Page getNextPage(Page page) {
64 int index = pages.indexOf(page);
65 if (index == pages.size() - 1 || index == -1) {
66 // last page or page not found
67 return null;
68 }
69 return pages.get(index + 1);
70 }
71
72 public void setFormTitle(String formTitle) {
73 this.formTitle = formTitle;
74 }
75
76 @Override
77 public String getFormTitle() {
78 return formTitle;
79 }
80
81 @Override
82 public void setView(View view) {
83 this.view = view;
84 }
85
86 }