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 fr.paris.lutece.plugins.pluginwizard.service.generator;
35
36 import fr.paris.lutece.plugins.pluginwizard.business.model.PluginModel;
37 import fr.paris.lutece.plugins.pluginwizard.business.model.Portlet;
38
39 import java.util.HashMap;
40 import java.util.Map;
41
42
43
44
45 public class PortletTemplateGenerator extends AbstractGenerator
46 {
47 private static final String PATH = "webapp/WEB-INF/templates/admin/plugins/{plugin_name}/portlet/";
48 private static final String EXT_HTML = ".html";
49 private static String [ ] _prefix = {
50 "combo_feed_", "modify_", "create_"
51 };
52
53
54
55
56 @Override
57 public Map generate( PluginModel pm, String generationSchemeName )
58 {
59 HashMap map = new HashMap( );
60 String strPluginName = pm.getPluginNameAsRadicalPackage( );
61
62 for ( Portlet portlet : pm.getPortlets( ) )
63 {
64 for ( int i = 0; i < _prefix.length; i++ )
65 {
66 String strPortletFile = getPortletTemplateName( portlet.getJspBaseName( ).toLowerCase( ), i );
67
68 String strPath = getFilePath( pm, PATH, strPortletFile );
69
70 String strSourceCode = getPortletHtmlTemplate( portlet, strPluginName, i );
71 strSourceCode = strSourceCode.replace( "<", "<" );
72 strSourceCode = strSourceCode.replace( ">", ">" );
73 strSourceCode = strSourceCode.replace( "@@", "#" );
74 map.put( strPath, strSourceCode );
75 }
76 }
77
78 return map;
79 }
80
81
82
83
84
85
86
87
88
89
90 private String getPortletTemplateName( String strPortletName, int nTemplate )
91 {
92 return _prefix [nTemplate] + strPortletName + EXT_HTML;
93 }
94
95
96
97
98
99
100
101
102
103
104
105
106 private String getPortletHtmlTemplate( Portlet portlet, String strPluginName, int nPortletTemplateType )
107 {
108 Map<String, Object> model = new HashMap<>( );
109 model.put( Markers.MARK_I18N_BRACKETS_OPEN, "@@i18n{" );
110 model.put( Markers.MARK_I18N_BRACKETS_CLOSE, "}" );
111 model.put( Markers.MARK_BRACKETS_OPEN, "${" );
112 model.put( Markers.MARK_BRACKETS_CLOSE, "}" );
113 model.put( Markers.MARK_MACRO, "@" );
114 model.put( Markers.MARK_PORTLET, portlet );
115 model.put( Markers.MARK_PLUGIN_NAME, strPluginName );
116 model.put( Markers.MARK_PORTLET_TEMPLATE_TYPE, nPortletTemplateType );
117
118 return build( model );
119 }
120 }