1 package mircoders.servlet;
7 import javax.servlet.*;
8 import javax.servlet.http.*;
10 import freemarker.template.*;
18 import mircoders.entity.*;
19 import mircoders.storage.*;
20 import mircoders.module.*;
23 * ServletModuleLinksImcs -
24 * liefert HTML fuer LinksImcs
30 public class ServletModuleLinksImcs extends ServletModule
32 private ModuleLanguage languageModule;
34 // Singelton / Kontruktor
35 private static ServletModuleLinksImcs instance = new ServletModuleLinksImcs();
36 public static ServletModule getInstance() { return instance; }
39 private ServletModuleLinksImcs() {
40 theLog = Logfile.getInstance(MirConfig.getProp("Home") + MirConfig.getProp("ServletModule.LinksImcs.Logfile"));
41 templateListString = MirConfig.getProp("ServletModule.LinksImcs.ListTemplate");
42 templateObjektString = MirConfig.getProp("ServletModule.LinksImcs.ObjektTemplate");
43 templateConfirmString = MirConfig.getProp("ServletModule.LinksImcs.ConfirmTemplate");
46 mainModule = new ModuleLinksImcs(DatabaseLinksImcs.getInstance());
47 languageModule = new ModuleLanguage(DatabaseLanguage.getInstance());
48 } catch (StorageObjectException e) {
49 theLog.printDebugInfo("ServletModuleLinksImcs konnte nicht initialisiert werden");
53 public void add(HttpServletRequest req, HttpServletResponse res)
54 throws ServletModuleException {
56 SimpleHash modelRoot = new SimpleHash();
57 EntityList theParentList;
58 EntityList theLanguageList;
61 theParentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", offset, 1000);
62 theLanguageList = languageModule.getByWhereClause(null, "name", 0);
64 modelRoot.put("new", "1");
65 modelRoot.put("parentlist",theParentList);
66 modelRoot.put("languagelist",theLanguageList);
68 if (theParentList == null || theParentList.getCount() == 0 || theParentList.getCount()>1){
69 HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateObjektString,
70 modelRoot, res.getWriter(), req.getLocale());
72 deliver(req, res, modelRoot, templateObjektString);
75 } catch(ModuleException e) {
76 throw new ServletModuleException(e.toString());
77 } catch (HTMLParseException e) {
78 throw new ServletModuleException(e.toString());
79 } catch (IOException e) {
80 throw new ServletModuleException(e.toString());
84 public void list(HttpServletRequest req, HttpServletResponse res)
85 throws ServletModuleException {
88 SimpleHash modelRoot = new SimpleHash();
89 EntityList theParentList;
90 EntityList theImcsList;
91 EntityList theLanguageList;
92 String offsetParam = req.getParameter("offset");
95 PrintWriter out = res.getWriter();
97 // Parameter auswerten
98 String query_text = req.getParameter("query_text");
99 modelRoot.put("query_text",query_text);
100 if (query_text!=null) modelRoot.put("query_text_encoded",URLEncoder.encode(query_text));
101 String query_field = req.getParameter("query_field");
102 modelRoot.put("query_field",query_field);
103 String parent = req.getParameter("to_parent_id");
104 modelRoot.put("to_parent_id",parent);
105 String language = req.getParameter("to_language");
106 modelRoot.put("to_language",language);
107 modelRoot.put("language", getLanguage(req));
109 String whereClause=""; boolean isFirst=true;
110 if (query_text!=null && !query_text.equalsIgnoreCase("")) {
111 whereClause += "lower("+query_field+") like lower('%"+query_text+"%')"; isFirst=false;}
112 if (parent != null && !parent.equals("")) {
113 if (isFirst==false) whereClause+=" and ";
114 whereClause += "to_parent_id='"+parent+"'";
117 if (language != null && !language.equals("")) {
118 if (isFirst==false) whereClause+=" and ";
119 whereClause += "to_language='"+language+"'";
123 // hier offsetcode bearbeiten
124 if (offsetParam != null && !offsetParam.equals("")){
125 offset = offsetParam;
127 if (req.getParameter("next") != null){
128 offset= req.getParameter("nextoffset");
130 if (req.getParameter("prev") != null){
131 offset = req.getParameter("prevoffset");
135 if (offset==null || offset.equals("")) offset="0";
136 modelRoot.put("offset",(new Integer(offset)).toString());
138 theParentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", 0, 1000);
139 theImcsList = mainModule.getByWhereClause(whereClause, "title", (new Integer(offset)).intValue());
140 theLanguageList = languageModule.getByWhereClause(null, "name", 0);
142 modelRoot.put("parentlist",theParentList);
143 modelRoot.put("imcslist",theImcsList);
144 modelRoot.put("languagelist",theLanguageList);
145 modelRoot.put("count", (new Integer(theImcsList.getCount())).toString());
146 modelRoot.put("from", (new Integer(theImcsList.getFrom())).toString());
147 modelRoot.put("to", (new Integer(theImcsList.getTo())).toString());
148 if (theImcsList.hasNextBatch())
149 modelRoot.put("next", (new Integer(theImcsList.getNextBatch())).toString());
150 if (theImcsList.hasPrevBatch())
151 modelRoot.put("prev", (new Integer(theImcsList.getPrevBatch())).toString());
153 HTMLTemplateProcessor.process(res,getLanguage(req)+"/"+templateListString,
154 modelRoot, res.getWriter(), req.getLocale());
156 } catch (Exception e) {
157 throw new ServletModuleException(e.toString());
161 public void edit(HttpServletRequest req, HttpServletResponse res)
162 throws ServletModuleException {
165 SimpleHash modelRoot = new SimpleHash();
166 EntityList parentList;
167 EntityList theLanguageList;
169 String idParam = req.getParameter("id");
172 parentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", offset, 1000);
173 theLanguageList = languageModule.getByWhereClause(null, "name", 0);
175 modelRoot.put("parentlist",parentList);
176 modelRoot.put("languagelist",theLanguageList);
177 modelRoot.put("entity", mainModule.getById(idParam));
178 deliver(req, res, modelRoot, templateObjektString);
180 } catch(ModuleException e) {
181 throw new ServletModuleException(e.toString());