Various fixes + Upgrades to the FileEdit module:
[mir.git] / source / mircoders / servlet / ServletHelper.java
1 package mircoders.servlet;\r
2 \r
3 import java.io.PrintWriter;\r
4 import java.util.HashMap;\r
5 import java.util.Locale;\r
6 import java.util.Map;\r
7 \r
8 import org.apache.struts.util.MessageResources;\r
9 \r
10 import mir.entity.adapter.EntityIteratorAdapter;\r
11 import mir.generator.Generator;\r
12 import mir.servlet.ServletModuleExc;\r
13 import mir.servlet.ServletModuleFailure;\r
14 import mir.util.CachingRewindableIterator;\r
15 import mir.util.NullWriter;\r
16 import mir.util.ResourceBundleGeneratorFunction;\r
17 \r
18 import mircoders.global.MirGlobal;\r
19 \r
20 \r
21 \r
22 public class ServletHelper {\r
23   static Map makeGenerationData(Locale aLocale) throws ServletModuleExc {\r
24     return makeGenerationData(aLocale, "bundles.adminlocal", "bundles.admin");\r
25   }\r
26 \r
27   static Map makeGenerationData(Locale aLocale, String aBundle) throws ServletModuleExc {\r
28     return makeGenerationData(aLocale, aBundle, aBundle);\r
29   }\r
30 \r
31   static Map makeGenerationData(Locale aLocale, String aBundle, String aDefaultBundle) throws ServletModuleExc {\r
32 \r
33     try {\r
34       Map result = new HashMap();\r
35 \r
36       MirGlobal.localizer().producerAssistant().initializeGenerationValueSet(result);\r
37 \r
38       result.put("returnurl", null);\r
39 \r
40       Object languages =\r
41           new CachingRewindableIterator(\r
42             new EntityIteratorAdapter( "", "id", 30,\r
43                MirGlobal.localizer().dataModel().adapterModel(), "language"));\r
44       Object topics =\r
45           new CachingRewindableIterator(\r
46             new EntityIteratorAdapter("", "id", 30,\r
47                MirGlobal.localizer().dataModel().adapterModel(), "topic"));\r
48 \r
49       Object articleTypes =\r
50           new CachingRewindableIterator(\r
51             new EntityIteratorAdapter( "", "id", 30,\r
52                MirGlobal.localizer().dataModel().adapterModel(), "articleType"));\r
53 \r
54       Object commentStatuses =\r
55           new CachingRewindableIterator(\r
56             new EntityIteratorAdapter( "", "id", 30,\r
57                MirGlobal.localizer().dataModel().adapterModel(), "commentStatus"));\r
58 \r
59       result.put("commentstatuses", commentStatuses);\r
60       result.put("articletypes", articleTypes);\r
61       result.put("languages", languages);\r
62       result.put("topics", topics);\r
63 \r
64       result.put( "lang",\r
65           new ResourceBundleGeneratorFunction( aLocale,\r
66                   MessageResources.getMessageResources(aBundle),\r
67                   MessageResources.getMessageResources(aDefaultBundle)));\r
68 \r
69       return result;\r
70     }\r
71     catch (Throwable t) {\r
72       throw new ServletModuleFailure(t);\r
73     }\r
74   }\r
75 \r
76   static void generateResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc {\r
77     Generator generator;\r
78 \r
79     try {\r
80       generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator);\r
81 \r
82       generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter()));\r
83     }\r
84     catch (Throwable t) {\r
85       throw new ServletModuleFailure(t);\r
86     }\r
87   }\r
88 \r
89   static void generateOpenPostingResponse(PrintWriter aWriter, Map aGenerationData, String aGenerator) throws ServletModuleExc {\r
90     Generator generator;\r
91 \r
92     try {\r
93       generator = MirGlobal.localizer().generators().makeAdminGeneratorLibrary().makeGenerator(aGenerator);\r
94 \r
95       generator.generate(aWriter, aGenerationData, new PrintWriter(new NullWriter()));\r
96     }\r
97     catch (Throwable t) {\r
98       throw new ServletModuleFailure(t);\r
99     }\r
100   }\r
101 }\r