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, templateObjektString, modelRoot, res.getWriter(), getLocale(req));
71 deliver(req, res, modelRoot, templateObjektString);
74 } catch(ModuleException e) {
75 throw new ServletModuleException(e.toString());
76 } catch (HTMLParseException e) {
77 throw new ServletModuleException(e.toString());
78 } catch (IOException e) {
79 throw new ServletModuleException(e.toString());
83 public void list(HttpServletRequest req, HttpServletResponse res)
84 throws ServletModuleException {
87 SimpleHash modelRoot = new SimpleHash();
88 EntityList theParentList;
89 EntityList theImcsList;
90 EntityList theLanguageList;
91 String offsetParam = req.getParameter("offset");
94 PrintWriter out = res.getWriter();
96 // Parameter auswerten
97 String query_text = req.getParameter("query_text");
98 modelRoot.put("query_text",query_text);
99 if (query_text!=null) modelRoot.put("query_text_encoded",URLEncoder.encode(query_text));
100 String query_field = req.getParameter("query_field");
101 modelRoot.put("query_field",query_field);
102 String parent = req.getParameter("to_parent_id");
103 modelRoot.put("to_parent_id",parent);
104 String language = req.getParameter("to_language");
105 modelRoot.put("to_language",language);
106 modelRoot.put("language", getLanguage(req));
108 String whereClause=""; boolean isFirst=true;
109 if (query_text!=null && !query_text.equalsIgnoreCase("")) {
110 whereClause += "lower("+query_field+") like lower('%"+query_text+"%')"; isFirst=false;}
111 if (parent != null && !parent.equals("")) {
112 if (isFirst==false) whereClause+=" and ";
113 whereClause += "to_parent_id='"+parent+"'";
116 if (language != null && !language.equals("")) {
117 if (isFirst==false) whereClause+=" and ";
118 whereClause += "to_language='"+language+"'";
122 // hier offsetcode bearbeiten
123 if (offsetParam != null && !offsetParam.equals("")){
124 offset = offsetParam;
126 if (req.getParameter("next") != null){
127 offset= req.getParameter("nextoffset");
129 if (req.getParameter("prev") != null){
130 offset = req.getParameter("prevoffset");
134 if (offset==null || offset.equals("")) offset="0";
135 modelRoot.put("offset",(new Integer(offset)).toString());
137 theParentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", 0, 1000);
138 theImcsList = mainModule.getByWhereClause(whereClause, "title", (new Integer(offset)).intValue());
139 theLanguageList = languageModule.getByWhereClause(null, "name", 0);
141 modelRoot.put("parentlist",theParentList);
142 modelRoot.put("imcslist",theImcsList);
143 modelRoot.put("languagelist",theLanguageList);
144 modelRoot.put("count", (new Integer(theImcsList.getCount())).toString());
145 modelRoot.put("from", (new Integer(theImcsList.getFrom())).toString());
146 modelRoot.put("to", (new Integer(theImcsList.getTo())).toString());
147 if (theImcsList.hasNextBatch())
148 modelRoot.put("next", (new Integer(theImcsList.getNextBatch())).toString());
149 if (theImcsList.hasPrevBatch())
150 modelRoot.put("prev", (new Integer(theImcsList.getPrevBatch())).toString());
152 HTMLTemplateProcessor.process(res, templateListString, modelRoot, res.getWriter(), getLocale(req));
154 } catch (Exception e) {
155 throw new ServletModuleException(e.toString());
159 public void edit(HttpServletRequest req, HttpServletResponse res)
160 throws ServletModuleException {
163 SimpleHash modelRoot = new SimpleHash();
164 EntityList parentList;
165 EntityList theLanguageList;
167 String idParam = req.getParameter("id");
170 parentList = mainModule.getByWhereClause("to_parent_id=NULL", "title", offset, 1000);
171 theLanguageList = languageModule.getByWhereClause(null, "name", 0);
173 modelRoot.put("parentlist",parentList);
174 modelRoot.put("languagelist",theLanguageList);
175 modelRoot.put("entity", mainModule.getById(idParam));
176 deliver(req, res, modelRoot, templateObjektString);
178 } catch(ModuleException e) {
179 throw new ServletModuleException(e.toString());