1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.forum.admin.dialog;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.core.NodeData;
38 import info.magnolia.cms.gui.dialog.DialogEdit;
39
40 import java.io.IOException;
41 import java.io.Writer;
42
43 import javax.jcr.RepositoryException;
44 import javax.servlet.http.HttpServletRequest;
45 import javax.servlet.http.HttpServletResponse;
46
47 import org.apache.commons.lang.StringUtils;
48
49
50
51
52
53
54
55 public class ExtendedDialogEdit extends DialogEdit {
56
57 private final String PROPERTY_EDITABLE = "editable";
58
59 private boolean editable = true;
60
61 @Override
62 public void init(HttpServletRequest request, HttpServletResponse response,
63 Content storageNode, Content configNode) throws RepositoryException {
64 super.init(request, response, storageNode, configNode);
65
66 NodeData editableNodeData = configNode.getNodeData(PROPERTY_EDITABLE);
67 if (editableNodeData != null && editableNodeData.isExist()) {
68 setEditable(editableNodeData.getBoolean());
69 }
70 }
71
72 @Override
73 public void drawHtml(Writer out) throws IOException {
74
75 if (this.getStorageNode() != null || !isEditable()) {
76 this.drawHtmlPre(out);
77
78 final String value = getValue();
79 if (StringUtils.isEmpty(value)) {
80 out.append(getMessage("novalueyet"));
81 } else {
82 out.append(value);
83 }
84
85 this.drawHtmlPost(out);
86 } else {
87 super.drawHtml(out);
88 }
89 }
90
91 public boolean isEditable() {
92 return editable;
93 }
94
95 public void setEditable(boolean editable) {
96 this.editable = editable;
97 }
98 }