]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.cms/src/org/argeo/api/cms/ux/CmsEditable.java
Prepare next development cycle
[lgpl/argeo-commons.git] / org.argeo.api.cms / src / org / argeo / api / cms / ux / CmsEditable.java
1 package org.argeo.api.cms.ux;
2
3 /** Abstraction of a simple edition life cycle. */
4 public interface CmsEditable {
5
6 /** Whether the calling thread can edit, the value is immutable */
7 Boolean canEdit();
8
9 Boolean isEditing();
10
11 void startEditing();
12
13 void stopEditing();
14
15 void addCmsEditionListener(CmsEditionListener listener);
16
17 void removeCmsEditionListener(CmsEditionListener listener);
18
19 static CmsEditable NON_EDITABLE = new CmsEditable() {
20
21 @Override
22 public void stopEditing() {
23 }
24
25 @Override
26 public void startEditing() {
27 }
28
29 @Override
30 public Boolean isEditing() {
31 return false;
32 }
33
34 @Override
35 public Boolean canEdit() {
36 return false;
37 }
38
39 @Override
40 public void addCmsEditionListener(CmsEditionListener listener) {
41 }
42
43 @Override
44 public void removeCmsEditionListener(CmsEditionListener listener) {
45 }
46
47 };
48
49 static CmsEditable ALWAYS_EDITING = new CmsEditable() {
50
51 @Override
52 public void stopEditing() {
53 }
54
55 @Override
56 public void startEditing() {
57 }
58
59 @Override
60 public Boolean isEditing() {
61 return true;
62 }
63
64 @Override
65 public Boolean canEdit() {
66 return true;
67 }
68
69 @Override
70 public void addCmsEditionListener(CmsEditionListener listener) {
71 }
72
73 @Override
74 public void removeCmsEditionListener(CmsEditionListener listener) {
75 }
76
77 };
78
79 }