1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package net.fckeditor.tags;
22
23 import java.io.IOException;
24 import java.util.HashSet;
25 import java.util.Set;
26
27 import javax.servlet.http.HttpServletRequest;
28 import javax.servlet.jsp.JspException;
29 import javax.servlet.jsp.JspTagException;
30 import javax.servlet.jsp.JspWriter;
31 import javax.servlet.jsp.tagext.TagSupport;
32
33
34
35
36 import net.fckeditor.handlers.RequestCycleHandler;
37 import net.fckeditor.localization.LocalizedMessages;
38 import net.fckeditor.tool.Compatibility;
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 public class CheckTag extends TagSupport {
57
58 private static final long serialVersionUID = -6834095891675681686L;
59
60 private static final String FILE_UPLOAD = "FileUpload";
61 @Deprecated
62 private static final String FILE_BROWSING = "FileBrowsing";
63 private static final String GET_RESOURCES = "GetResources";
64 @Deprecated
65 private static final String FOLDER_CREATION = "FolderCreation";
66 private static final String CREATE_FOLDER = "CreateFolder";
67 private static final String COMPATIBLE_BROWSER = "CompatibleBrowser";
68
69 private static final Set<String> commands = new HashSet<String>(6);
70
71 static {
72 commands.add(FILE_UPLOAD);
73 commands.add(FILE_BROWSING);
74 commands.add(FOLDER_CREATION);
75 commands.add(COMPATIBLE_BROWSER);
76 commands.add(GET_RESOURCES);
77 commands.add(CREATE_FOLDER);
78 }
79
80 private String command;
81
82
83
84
85
86
87
88
89
90 public void setCommand(String command) throws JspTagException {
91 if (!commands.contains(command))
92 throw new JspTagException(
93 "You have to provide one of the following commands: "
94 + commands);
95 this.command = command;
96 }
97
98 @Override
99 public int doStartTag() throws JspException {
100 JspWriter out = pageContext.getOut();
101
102 HttpServletRequest request = (HttpServletRequest) pageContext
103 .getRequest();
104 LocalizedMessages lm = LocalizedMessages.getInstance(request);
105 String response = null;
106
107 if (command.equals(FILE_UPLOAD)) {
108 if (RequestCycleHandler.isEnabledForFileUpload(request))
109 response = lm.getFileUploadEnabled();
110 else
111 response = lm.getFileUploadDisabled();
112 }
113
114 if (command.equals(FILE_BROWSING) || command.equals(GET_RESOURCES)) {
115 if (RequestCycleHandler.isEnabledForFileBrowsing(request))
116 response = lm.getGetResourcesEnabled();
117 else
118 response = lm.getGetResourcesDisabled();
119 }
120
121 if (command.equals(FOLDER_CREATION) || command.equals(CREATE_FOLDER)) {
122 if (RequestCycleHandler.isCreateFolderEnabled(request))
123 response = lm.getCreateFolderEnabled();
124 else
125 response = lm.getCreateFolderDisabled();
126 }
127
128 if (command.equals(COMPATIBLE_BROWSER)) {
129 if (Compatibility.isCompatibleBrowser(request))
130 response = lm.getCompatibleBrowserYes();
131 else
132 response = lm.getCompatibleBrowserNo();
133 }
134
135 try {
136 out.print(response);
137 } catch (IOException e) {
138 throw new JspException(
139 "Tag response could not be written to the user!", e);
140 }
141
142 return SKIP_BODY;
143 }
144
145 }