l5m-tools 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 812fcfe10e139e3e7179c90a186bad48c179376b
4
+ data.tar.gz: dd4dd9891d897bea581d1a3ff59e5b22b9b29b89
5
+ SHA512:
6
+ metadata.gz: cd9d9a8916e3d390a226e157126d29878ec30f8faca28e76fa4ec4ea3d0c32cdc210f6c8c1deaf73714d9b85d7c6ceb6882a836502c188b233c52f80e3b3ae71
7
+ data.tar.gz: f4c521ab34b79c1e8078ec98536c15e3280fd953c1b074a08f921d5ef6a2fbefdbb1709e93d9881cbed2454ce8251d0d108e190f557d011ec8cfae620caf457d
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ source "http://rubygems.org"
8
8
  group :development do
9
9
  gem "shoulda", ">= 0"
10
10
  gem "rdoc", "~> 3.12"
11
- gem "bundler", "~> 1.2.0"
11
+ gem "bundler" #, "~> 1.2.0"
12
12
  gem "jeweler", "~> 1.8.4"
13
13
  #gem "etc"
14
14
  #gem "rcov", ">= 0"
data/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  * This is a tool set for Lake 5 Media and Qinghe Tech Programmer.
4
4
  * It includes make-app for creating a new app.
5
5
 
6
- ### Usage
6
+ ### Usage
7
7
  * first please install svn and git
8
8
  * please add the following sys env variables
9
9
  * WORKSPACE
@@ -14,6 +14,7 @@
14
14
  * DEV_HOST
15
15
  * `$l5m make` or `$make-app`# to create a new app
16
16
  * `$l5m dup file.csv original new` or `$duplicate-app file.csv original new` #duplicate a app with the files in file.csv, and use new to replace original
17
+ * `$l5m dup package original new` #duplicate an application from special package, no file.csv required.
17
18
  * `$l5m svn status` #ls all uncommitted files
18
19
  * `$l5m svn log` #ls all today's commits
19
20
  * `$l5m svn update packs` #update all packges.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.11
1
+ 0.1.0
data/bin/duplicate-app CHANGED
File without changes
data/bin/l5m CHANGED
File without changes
data/bin/make-app CHANGED
File without changes
data/bin/set_env.sh CHANGED
File without changes
data/bin/svn.tool CHANGED
File without changes
data/l5m-tools.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "l5m-tools"
8
- s.version = "0.0.11"
8
+ s.version = "0.1.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["RONGHAI"]
12
- s.date = "2014-01-23"
12
+ s.date = "2015-07-07"
13
13
  s.description = "A tool set for Lake5Media and QingheTech developer"
14
14
  s.email = "ronghai.wei@outlook.com"
15
15
  s.executables = ["duplicate-app", "l5m", "make-app", "set_env.sh", "svn.tool"]
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
42
42
  "lib/l5m-tools/template/Template.jsp",
43
43
  "lib/l5m-tools/template/TemplateBaseAbstractWorker.java",
44
44
  "lib/l5m-tools/template/TemplateServicerImpl.java",
45
+ "lib/l5m-tools/template/TemplateViewer.java",
45
46
  "lib/l5m-tools/template/TemplateWorker.java",
46
47
  "lib/l5m-tools/template/frt.jsp",
47
48
  "lib/l5m-tools/template/ms2.jsp",
@@ -54,27 +55,27 @@ Gem::Specification.new do |s|
54
55
  s.homepage = "http://github.com/RONGHAI/l5m-tools"
55
56
  s.licenses = ["MIT"]
56
57
  s.require_paths = ["lib"]
57
- s.rubygems_version = "1.8.17"
58
+ s.rubygems_version = "2.0.14"
58
59
  s.summary = "A tool set for Lake5Media and QingheTech developer"
59
60
 
60
61
  if s.respond_to? :specification_version then
61
- s.specification_version = 3
62
+ s.specification_version = 4
62
63
 
63
64
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
64
65
  s.add_development_dependency(%q<shoulda>, [">= 0"])
65
66
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
66
- s.add_development_dependency(%q<bundler>, ["~> 1.2.0"])
67
+ s.add_development_dependency(%q<bundler>, [">= 0"])
67
68
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
68
69
  else
69
70
  s.add_dependency(%q<shoulda>, [">= 0"])
70
71
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
71
- s.add_dependency(%q<bundler>, ["~> 1.2.0"])
72
+ s.add_dependency(%q<bundler>, [">= 0"])
72
73
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
73
74
  end
74
75
  else
75
76
  s.add_dependency(%q<shoulda>, [">= 0"])
76
77
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
77
- s.add_dependency(%q<bundler>, ["~> 1.2.0"])
78
+ s.add_dependency(%q<bundler>, [">= 0"])
78
79
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
79
80
  end
80
81
  end
@@ -3,23 +3,45 @@ require 'pathname'
3
3
 
4
4
  module L5MTools
5
5
  TEMPLATE_DIR = Pathname.new(__FILE__).parent + 'template'
6
+
6
7
  class Application
7
8
  require 'l5m-tools/tools'
8
9
  include Tools
9
10
  def duplicate_app(*args)
10
11
  delete = args.delete('-d')
11
12
  replacements = {args[1] => args[2]}
12
- File.open(args[0], "r") do |infile|
13
- while (line = infile.gets)
14
- line = line.chomp.strip
15
- if line.length > 0 && line[0] != '#'
16
- #duplicate_and_replace( line.chomp , replacements )
17
- #FileUtils.rm(line, :force => true) if delete
18
- FileUtils.rm(line, :force => true) if duplicate_and_replace( line.chomp , replacements )[1] != line && delete
19
- end
13
+
14
+ unless File.exist?(args[0])
15
+ duplicate_wo_csv(*args)
16
+ else
17
+ File.open(args[0], "r") do |infile|
18
+ while (line = infile.gets)
19
+ line = line.chomp.strip
20
+ if line.length > 0 && line[0] != '#'
21
+ #duplicate_and_replace( line.chomp , replacements )
22
+ #FileUtils.rm(line, :force => true) if delete
23
+ FileUtils.rm(line, :force => true) if duplicate_and_replace( line.chomp , replacements )[1] != line && delete
24
+ end
25
+ end
20
26
  end
21
27
  end
22
28
  end
29
+
30
+ def duplicate_wo_csv(*args)
31
+ delete = args.delete('-d')
32
+ package = args[0]
33
+ application = args[1]
34
+ replacements = {args[1] => args[2]}
35
+ Dir.glob("#{WORKSPACE}/#{package}/{src,WebContent}/**/#{application}*.*", File::FNM_CASEFOLD).each{|line|
36
+ bn = File.basename(line, ".*")
37
+ #puts line #File.basename(line, ".*")
38
+ unless(bn[application.length] =~ /[a-z0-9]/)
39
+ #puts line #File.basename(line, ".*")
40
+ FileUtils.rm(line, :force => true) if duplicate_and_replace( line.chomp , replacements )[1] != line && delete
41
+ end
42
+ }
43
+ end
44
+
23
45
  #read file list from file and delete them
24
46
  def del(*args)
25
47
  replacements = {args[1] => args[2]}
@@ -42,6 +64,10 @@ module L5MTools
42
64
  "#{WORKSPACE}/#{package}/src/com/l5m/#{package}/engine/worker/#{application}Worker.java" , replacements )
43
65
  copy_with_replace( TEMPLATE_DIR+"TemplateServicerImpl.java" ,
44
66
  "#{WORKSPACE}/#{package}/src/com/l5m/#{package}/engine/servicer/#{application}ServicerImpl.java" , replacements )
67
+
68
+ copy_with_replace( TEMPLATE_DIR+"TemplateViewer.java" ,
69
+ "#{WORKSPACE}/#{package}/src/com/l5m/#{package}/engine/exporter/#{application}Viewer.java" , replacements )
70
+
45
71
  if File.exist?( TEMPLATE_DIR+"#{package}.jsp")
46
72
  copy_with_replace( TEMPLATE_DIR+"#{package}.jsp" ,
47
73
  "#{WORKSPACE}/#{package}/src/jsp/#{application}.jsp" , replacements )
@@ -51,8 +77,5 @@ module L5MTools
51
77
  end
52
78
  block.call(Time.now, package, application, use_base_worker) if block_given?
53
79
  end
54
-
55
-
56
-
57
80
  end
58
81
  end
File without changes
data/lib/l5m-tools/env.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  module L5MTools
2
- raise "no WORKSPACE env " unless WORKSPACE = ENV["WORKSPACE"] || ENV["workspace"]
3
- raise "no CATALINA_HOME env" unless CATALINA_HOME = ENV["CATALINA_HOME"]
2
+ raise "no WORKSPACE env " unless WORKSPACE = (ENV["WORKSPACE"] || ENV["workspace"]).gsub(/[\\]/, '/')
3
+ raise "no CATALINA_HOME env" unless CATALINA_HOME = ENV["CATALINA_HOME"]
4
4
  raise "no SVN_USER env" unless SVN_USER = ENV["SVN_USER"]
5
5
  raise "no SENDER_EMAIL env" unless SENDER_EMAIL = ENV["SENDER_EMAIL"]
6
6
  PACKAGES = ENV["PACKAGES"].split(/[,;:]/) if ENV["PACKAGES"]
File without changes
File without changes
data/lib/l5m-tools/svn.rb CHANGED
File without changes
@@ -6,7 +6,7 @@
6
6
  com.l5m.common.l5m_util.rld.*,
7
7
  com.l5m.common.util.*,
8
8
  org.ajaxanywhere.AAUtils,
9
- com.l5m.!REPLACE_STYLE!.bean.*,
9
+ com.l5m.!REPLACE_STYLE!.bean.*, com.l5m.customtags.beans.*, com.l5m.customtags.tags*,
10
10
  com.l5m.!REPLACE_STYLE!.engine.worker.*,
11
11
  com.l5m.common.l5m_util.module.*"
12
12
  %>
@@ -26,15 +26,25 @@
26
26
  <c:set var="formName" value="${worker.FORM_NAME}" scope="request"/>
27
27
  <c:set var="packageLowerCase" value="${worker.packageLowerCase}" scope="request"/>
28
28
  <c:set var="packageUpperCase" value="${worker.packageUpperCase}" scope="request"/>
29
- <c:set var="styleLowerCase" value="${packageLowerCase}" />
30
- <c:set var="styleUpperCase" value="${packageUpperCase}" />
29
+ <c:set var="styleLowerCase" value="${worker.styleLowerCase}" />
30
+ <c:set var="styleUpperCase" value="${worker.styleUpperCase}" />
31
31
  <c:set var="PANEL" value="${worker.PANEL}"/>
32
32
  <%
33
33
  if(AAUtils.isAjaxRequest(request)){
34
34
  AAUtils.addZonesToRefresh(request, "alwaysRefreshZone,"+ ((String)request.getAttribute("refreshZones")));
35
35
  }
36
36
  %><!-- -->
37
+ <c:set var="soc" value='${servicer.sourceOptionController}'/>
38
+ <c:set var='jsCache' value='<%="&__jstimeunique="+System.currentTimeMillis()%>'/>
39
+ <c:set var='theme' value='${worker.navigationBean.theme}' />
40
+ <c:set var='_request' value="<%=request%>"/>
41
+ <c:set var="isIE9Below" value="${l5mfunctions:isIE9Below(_request)}"/>
42
+ <%
37
43
 
44
+ CSSImportParaBean _cssImport = new CSSImportParaBean(request.getContextPath(), "ms2", 1);
45
+ JSImportParaBean _jsImport = new JSImportParaBean(request.getContextPath());
46
+
47
+ %>
38
48
 
39
49
  <html>
40
50
 
@@ -42,7 +52,7 @@ if(AAUtils.isAjaxRequest(request)){
42
52
 
43
53
 
44
54
 
45
- <l5m:jspHead useIE7Compatible="true" includeJQuery='true' title="${worker.APP_NAME}" formName="${formName}" packageName="${packageLowerCase}" planingCss="L001;L004">
55
+ <l5m:jspHead useIE7Compatible="true" useCssImport='1' includeJQuery='true' title="${worker.APP_NAME}" formName="${formName}" packageName="${packageLowerCase}" planingCss="L001;L004">
46
56
 
47
57
  <!-- add additinal js css in here -->
48
58
  <link href="<%=request.getContextPath()%>/htdoc/datepicker-lite.css" rel="stylesheet" type="text/css" />
@@ -84,11 +94,22 @@ if(AAUtils.isAjaxRequest(request)){
84
94
  table{
85
95
  border-collapse:collapse;
86
96
  }
97
+ .grid .TD{border-top:1px dotted #888888;}
98
+ .grid .LD{border-left:1px dotted #888888;}
99
+ .grid .row{line-height:33px;}
100
+ .grid label{white-space:nowrap;}
87
101
  </style>
88
102
 
89
103
 
90
104
 
91
-
105
+ <%=_cssImport.getCSSFileImports3(
106
+
107
+ )%>
108
+
109
+
110
+ <%=_jsImport.getJSFileImports3(
111
+
112
+ )%>
92
113
 
93
114
 
94
115
  <l5m:LoadResources/>
@@ -115,10 +136,8 @@ if(AAUtils.isAjaxRequest(request)){
115
136
 
116
137
  <aa:zone name="topNavigationZone">
117
138
  <l5m:TopBar2
118
- id="TopBar"
119
- topBarIcons = "${worker.topBarIcons}"
120
- iconsStatus = "${worker.iconsStatus}"
121
- actions = "${worker.actions}"
139
+ id="${paraBean.topBarStateBean.id}"
140
+ topBarItems='${worker.topBarItems}'
122
141
  decimalControlList = "${servicer.reportDecimalControlList}"
123
142
  startControlZone = "topPanel"
124
143
  style = "${styleLowerCase}"
@@ -127,38 +146,18 @@ if(AAUtils.isAjaxRequest(request)){
127
146
  incSingleSelected = "${paraBean.selectedSortBy}"
128
147
  />
129
148
  </aa:zone>
130
- <script type="text/javascript">
131
- <!--
132
- function loadjscssfile(filename,filetype){
133
-
134
- if (filetype=="js"){ //if filename is a external JavaScript file
135
- if($$('script[src="'+filename+'"]').length >= 1) return;
136
- var fileref=document.createElement('script')
137
- fileref.setAttribute("type","text/javascript")
138
- fileref.setAttribute("src", filename)
139
- }
140
- else if (filetype=="css"){ //if filename is an external CSS file
141
- if($$('link[href="'+filename+'"]').length >= 1) return;
142
- var fileref=document.createElement("link")
143
- fileref.setAttribute("rel", "stylesheet")
144
- fileref.setAttribute("type", "text/css")
145
- fileref.setAttribute("href", filename)
146
- }
147
- if (typeof fileref!="undefined"){
148
- document.getElementsByTagName("head")[0].appendChild(fileref)
149
- }
150
- }
151
- //-->
152
- </script>
149
+
153
150
  <div id="topPanel" style="display:${paraBean.selectionPanelStatusOpen?'inline':'none'}" >
154
151
  <!--source panel begin-->
155
152
  <div id="accordionNavigationTab">
156
153
  <table border="0" cellspacing="0" cellpadding="0" width="100%">
157
154
  <tr>
158
155
  <td>
159
-
156
+ <c:set var='leftstyle' value='line-height:33px;width:200px;padding-left:7px;border-bottom:1px dotted #888; font-weight:bold;' />
157
+ <c:set var='righstyle' value='padding-left:10px;border-bottom:1px dotted #888;border-left:1px dotted #888;'/>
158
+
160
159
  <l5m:tabPanel2
161
- id="accordionTestTop"
160
+ id="${baseServicerParameterBean.tabPanelID}"
162
161
  captions="${baseServicerParameterBean.tabbedPanelCaptions}"
163
162
  selected="${baseServicerParameterBean.selectedTab}"
164
163
  style="${styleLowerCase}"
@@ -184,7 +183,12 @@ if(AAUtils.isAjaxRequest(request)){
184
183
 
185
184
  <aa:zone name="sourcePanelZone">
186
185
  <table id='sourcePanel' border="0" cellspacing="0" cellpadding="0" width="100%">
187
- <tr><td></td></tr>
186
+ <tr class="row">
187
+ <td class="TD" style="${leftstyle};" nowrap valign="top"> /td>
188
+ <td class="TD LD" style="${righstyle}; line-height:16px;">
189
+
190
+ </td>
191
+ </tr>
188
192
  </table>
189
193
  </aa:zone>
190
194
  </td>
@@ -226,80 +230,14 @@ if(AAUtils.isAjaxRequest(request)){
226
230
  <tr>
227
231
  <td align="left" valign="top" width="99%">
228
232
  <aa:zone name="result">
229
- <div class="reportTopBox">
230
- <c:forEach items="${PANEL}" var="panel" varStatus="panelIndex">
231
- <c:if test="${panel.enable}">
232
- <c:set var="jsChangePanel">
233
- javascript:pageAction.changePanel('${panelIndex.index}');
234
- </c:set>
235
- <c:if test="${true}">
236
- <div style=' ${worker.servicer.panelIndex == panelIndex.index ?"" : ""} ; white-space:nowrap; ${ true ?"font-weight: bold" : ""} ; font-size:11px; border-top-width:0px;${panelIndex.first?"border-left-width:0px":""}' nowrap id="displayBy_${panelIndex.index }" onclick="${baseServicerParameterBean.panelIndex== panelIndex.index ? '':(true? jsChangePanel:'')}" class="${worker.servicer.panelIndex== panelIndex.index? 'focus' : true ?'base':'base'}" >
237
- ${panel.label}
238
- </div>
239
- </c:if>
240
- <c:if test="${false}">
241
- <div style=' ${worker.servicer.panelIndex == panelIndex.index || !true ?"cursor: none" : ""} ; white-space:nowrap; ${worker.servicer.panelIndex == panelIndex.index || true ?"font-weight: bold" : ""} ; font-size:11px; border-top-width:0px;${panelIndex.first?"border-left-width:0px":""}' nowrap id="displayBy_${panelIndex.index }" onclick="${baseServicerParameterBean.panelIndex== panelIndex.index ? '':(true? jsChangePanel:'')}" class="${worker.servicer.panelIndex== panelIndex.index? 'focus' :true?'base':'base'}" >
242
- ${panel.label }
243
- </div>
244
- </c:if>
245
- </c:if>
246
- </c:forEach>
247
- <div class="last">&nbsp;</div>
248
- </div>
249
- <div style='clear:both'/>
250
- <table width="100%">
251
- <tr>
252
- <td nowrap="nowrap" height="40px" style="padding-left:5px;" >
253
- </td>
254
- <td nowrap="nowrap" height="40px" style="text-align:right; float:right ;padding-right:10px;">
255
- ${worker.renderPaginatorHTML}
256
- </td>
257
- </tr>
258
- </table>
259
-
260
-
261
- <table border="0" cellpadding="0" cellspacing="0" width="100%" >
262
- <tr> <td nowrap="nowrap" align='left' >
263
- <c:if test="${baseServicerParameterBean.panelIndex !=worker.help && baseServicerParameterBean.panelIndex !=worker.dataAvailability}" >
264
- </c:if>
265
- </td></tr>
266
- <tr>
267
- <td nowrap="nowrap" align='center' >
268
- ${worker.renderHTML}
269
- </td>
270
- </tr>
271
- </table>
272
-
273
-
274
-
275
-
276
-
277
-
278
-
279
- <c:if test="${baseServicerParameterBean.panelIndex ==worker.help}">
280
- <!-- the div of descriptionTab -->
281
- <div id="descriptionTab"><br/><br/><l5m:appDesc
282
- navigationBean="${worker.navigationBean}" style="${styleLowerCase}" id="navDesc" />
283
- </div>
284
- <!-- the end descriptionTab-->
285
- </c:if>
286
-
287
- <c:if test="${baseServicerParameterBean.panelIndex ==worker.dataAvailability}">
288
- <table width="100%">
289
- <tr>
290
- <td width="15%" rowspan="4">&nbsp;</td>
291
- <td width="70%">
292
- <c:set var="moduleGeneralAvailability" scope="request" value="${worker.servicer.generalAvailabilityModule}"/>
293
- <!-- GeneralAvailabilityModule.SESSION_NAME -->
294
- <table border="0" cellpadding="0" cellspacing="2" width="100%">
295
- <jsp:include page="GeneralAvailabilityModule.jsp" flush="true"/>
296
- </table>
297
- </td>
298
- <td width="15%" rowspan="4">&nbsp;</td>
299
- </tr>
300
- </table>
301
-
302
- </c:if>
233
+ <l5m:resultZone
234
+ panels='${PANEL}'
235
+ formName="${worker.FORM_NAME}" packageName="${packageLowerCase}" style="${styleLowerCase}"
236
+ groupId="${servicer.groupId}" companyId="${servicer.companyId}"
237
+ userId="${servicer.userId}"
238
+ dbHandler="${servicer.dbHandler}" usingDefaultPaginatorRender='false'
239
+
240
+ />
303
241
  </aa:zone>
304
242
  </td>
305
243
  </tr>
@@ -366,14 +304,16 @@ if(AAUtils.isAjaxRequest(request)){
366
304
  <c:if test="${!empty paraBean.displayWrappers[paraBean.panelIndex]}">
367
305
  <c:forEach var="displayWrapper" items="${paraBean.displayWrappers[paraBean.panelIndex]}">
368
306
  <c:if test="${!empty displayWrapper.columnsMap}">
307
+ <div style="${displayWrapper.hidden?'display:none;':''}">
369
308
  <l5m:multipleSelect
370
309
  id="${displayWrapper.id}"
371
310
  style="${styleLowerCase}"
372
311
  title="${displayWrapper.title}"
373
312
  sourceValues="${displayWrapper.columnsMap}"
374
313
  selectedValues="${displayWrapper.selectedColumns }"
314
+ selectedValue="${displayWrapper.selectedValue}"
375
315
  onChange=""
376
- displayMode="2"
316
+ displayMode="${displayWrapper.displayMode}"
377
317
  useSortBy="true"
378
318
  sortBy="1"
379
319
  sortField="2"
@@ -383,7 +323,8 @@ if(AAUtils.isAjaxRequest(request)){
383
323
  destinationWidth="200"
384
324
  sourceSize="5"
385
325
  destinationSize="5"
386
- />
326
+ />
327
+ </div>
387
328
  </c:if>
388
329
  </c:forEach>
389
330
  </c:if>
@@ -459,11 +400,7 @@ if(AAUtils.isAjaxRequest(request)){
459
400
  </l5m:dialogBottom>
460
401
  </l5m:dialog>
461
402
 
462
- <aa:zone name="footerZone">
463
- <l5m:jspFoot id="jspFoot"/>
464
- </aa:zone>
465
-
466
-
403
+
467
404
  <!-- end dialog -->
468
405
 
469
406
  </l5m:jspBody>
@@ -10,6 +10,7 @@ import com.l5m.customtags.tags.utils.IconStatus;
10
10
  import com.l5m.customtags.tags.utils.TopBarIcon;
11
11
  import com.l5m.!REPLACE_STYLE!.engine.servicer.!REPLACE_ME_FILE!ServicerImpl;
12
12
  import com.l5m.!REPLACE_STYLE!.engine.servicer.!REPLACE_ME_FILE!ServicerImpl.PANEL;
13
+ import com.l5m.!REPLACE_STYLE!.engine.exporter.!REPLACE_ME_FILE!Viewer;
13
14
 
14
15
  public class !REPLACE_ME_FILE!Worker extends AbstractBaseWorker {
15
16
  private static final long serialVersionUID = 1L;
@@ -132,14 +133,15 @@ public class !REPLACE_ME_FILE!Worker extends AbstractBaseWorker {
132
133
 
133
134
  @Override
134
135
  protected void initWorker() {
135
- this.servicer.getBaseServicerParameterBean().setPanelIndex(0);
136
+ this.servicer.getBaseServicerParameterBean().resetPanelIndex2Default();
136
137
 
137
138
  }
138
139
 
139
140
  @Override
140
141
  public void clearResultAction() {
141
142
  super.clearResultAction();
142
- this.servicer.setPanelIndex(0);
143
+ this.servicer.getBaseServicerParameterBean().resetPanelIndex2Default();
144
+
143
145
  }
144
146
 
145
147
  public void updateExportInformationBean(){
@@ -155,4 +157,10 @@ public class !REPLACE_ME_FILE!Worker extends AbstractBaseWorker {
155
157
  super.submitAction();
156
158
 
157
159
  }
160
+
161
+ @Override
162
+ public !REPLACE_ME_FILE!Viewer getViewer (boolean isHTML) {
163
+ !REPLACE_ME_FILE!Viewer viewer = new !REPLACE_ME_FILE!Viewer(this, this.servicer.getExcelOption(), isHTML );
164
+ return viewer;
165
+ }
158
166
  }
@@ -9,6 +9,13 @@ import com.l5m.common.bean.GeneralAvailabilityModule;
9
9
  import com.l5m.common.util.dcnds.QHTCommonUtil;
10
10
  import com.l5m.customtags.beans.BaseServicerParaBean;
11
11
  import com.l5m.customtags.tags.utils.GenerateTagUtil;
12
+ import java.sql.SQLException;
13
+ import java.util.ArrayList;
14
+
15
+ import com.l5m.customtags.beans.annotation.ParseMethodType;
16
+ import com.l5m.customtags.beans.annotation.RequestParse;
17
+ import com.l5m.customtags.module.statebean.ExcelOptionStateBean;
18
+
12
19
  import com.l5m.!REPLACE_STYLE!.engine.worker.UserCompanyWorker;
13
20
  /**
14
21
  * make sure code as clear as possible.
@@ -24,7 +31,7 @@ import com.l5m.!REPLACE_STYLE!.engine.worker.UserCompanyWorker;
24
31
  */
25
32
  public class !REPLACE_ME_FILE!ServicerImpl extends BaseServicerParaBean.AbstractBaseServicer{
26
33
  private static final long serialVersionUID = 1L;
27
- public static enum PANEL {
34
+ public static enum PANEL implements com.l5m.customtags.beans.PanelTab{
28
35
  REPORT("REPORT") ,
29
36
  Help("Help"), DataAvailability("Data Availability")
30
37
  ; //Total Day/Prime * LSD/C3
@@ -51,6 +58,10 @@ public class !REPLACE_ME_FILE!ServicerImpl extends BaseServicerParaBean.Abstract
51
58
  public int panelIndex(){
52
59
  return this.ordinal();
53
60
  }
61
+ @Override
62
+ public int getPanelIndex() {
63
+ return panelIndex();
64
+ }
54
65
  }
55
66
 
56
67
 
@@ -59,14 +70,16 @@ public class !REPLACE_ME_FILE!ServicerImpl extends BaseServicerParaBean.Abstract
59
70
  @Override
60
71
  public void clearCache() {
61
72
  super.clearCache();
62
- this.servicerParamBean.setPanelIndex(0);
63
-
73
+ this.servicerParamBean.resetPanelIndex2Default();
64
74
  System.gc();
65
75
  }
66
76
 
67
77
 
68
78
  @Override
69
79
  public void handlePaginator(int panelIndex) {
80
+ if(panelIndex == PANEL.DataAvailability.panelIndex() || panelIndex == PANEL.Help.panelIndex() ){
81
+ return ;
82
+ }
70
83
  if (this.servicerParamBean.getPaginatorStateBean(panelIndex) == null) {
71
84
  this.servicerParamBean.setPaginatorStateBean(GenerateTagUtil.initPaginatorStateBean("PaginatorStateBeanTag"), panelIndex);
72
85
  this.servicerParamBean.getPaginatorStateBean(panelIndex).setRowsPerPage(1);
@@ -88,8 +101,12 @@ public class !REPLACE_ME_FILE!ServicerImpl extends BaseServicerParaBean.Abstract
88
101
  public void init( ) {
89
102
  super.init();
90
103
  try {
91
- this.servicerParamBean = new BaseServicerParaBean(this.dh, this.companyId, this.groupId , this.userId, this.userCompanyId, PANEL.values().length);
104
+ if(this.servicerParamBean == null){
105
+ this.servicerParamBean = new BaseServicerParaBean();
106
+ }
107
+ this.servicerParamBean .init(this.dh, this.companyId, this.groupId , this.userId, this.userCompanyId, PANEL.values().length);
92
108
  this.servicerParamBean.initDisplayAndSortBy();
109
+ this.servicerParamBean.setDefaultPanelIndex(PANEL.REPORT.panelIndex());
93
110
  try{
94
111
  this.initTimeSpan();
95
112
  }catch(Exception e){
@@ -0,0 +1,60 @@
1
+ package com.l5m.!REPLACE_STYLE!.engine.exporter;
2
+
3
+ import java.util.ArrayList;
4
+ import java.util.Arrays;
5
+ import java.util.List;
6
+
7
+ import com.l5m.customtags.export.BaseExcelHandler;
8
+ import com.l5m.customtags.export.BaseViewer;
9
+ import com.l5m.customtags.module.statebean.ExcelOptionStateBean;
10
+ import com.l5m.!REPLACE_STYLE!.engine.servicer.!REPLACE_ME_FILE!ServicerImpl;
11
+ import com.l5m.!REPLACE_STYLE!.engine.servicer.!REPLACE_ME_FILE!ServicerImpl.PANEL;
12
+ import com.l5m.!REPLACE_STYLE!.engine.worker.!REPLACE_ME_FILE!Worker;
13
+
14
+ public class !REPLACE_ME_FILE!Viewer extends BaseViewer {
15
+ protected boolean[] panelController;
16
+
17
+ public !REPLACE_ME_FILE!Viewer(!REPLACE_ME_FILE!Worker worker, ExcelOptionStateBean excelOption, boolean isHTML) {
18
+ super(excelOption, isHTML);
19
+ this.servicer = worker.getServicer();
20
+ this.exportInformationBean = this.servicer.getExportInformationBean();
21
+ boolean[] panelController = servicer.getPanelController();
22
+ if(panelController == null){
23
+ panelController = new boolean[PANEL.values().length - 2];
24
+ Arrays.fill(panelController, true);
25
+ }
26
+ this.UPPERCASE_STYLE = this.servicer.getExportInformationBean().getStyleLowerCase().toUpperCase();
27
+
28
+ this.sheets = new String[PANEL.values().length - 2];
29
+ List<String> list = new ArrayList<String>();
30
+ for (int i = 0; i < sheets.length; i++) {
31
+ if(!PANEL.values()[i].isEnable()){
32
+ panelController[i] = false;
33
+ }
34
+ if(panelController[i]){
35
+ list.add( PANEL.values()[i].getLabel());
36
+ }
37
+ }
38
+ this.sheets = list.toArray(new String[list.size()]);
39
+ this.rowPositions = new int[this.sheets.length];
40
+ Arrays.fill(this.rowPositions, 4);
41
+ this.panelController = panelController;
42
+ }
43
+
44
+
45
+ private static final long serialVersionUID = 1L;
46
+ !REPLACE_ME_FILE!ServicerImpl servicer;
47
+
48
+ @Override
49
+ public void generateBody (BaseExcelHandler handler, boolean onlyCurrentReport) {
50
+ if(!this.servicer.isDisplayStage()){
51
+ return;
52
+ }
53
+ final int panelIndex = this.servicer.getPanelIndex();
54
+
55
+
56
+ this.servicer.setPanelIndex(panelIndex);
57
+
58
+ }
59
+
60
+ }