l5m-tools 0.0.2.beta

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,216 @@
1
+ package com.l5m.!REPLACE_STYLE!.engine.servicer;
2
+
3
+ import java.sql.SQLException;
4
+ import java.util.HashSet;
5
+ import java.util.Set;
6
+
7
+ import com.l5m.common.bean.DataSourceBeanBase;
8
+ import com.l5m.common.bean.GeneralAvailabilityModule;
9
+ import com.l5m.common.util.dcnds.QHTCommonUtil;
10
+ import com.l5m.customtags.beans.BaseServicerParaBean;
11
+ import com.l5m.customtags.tags.utils.GenerateTagUtil;
12
+ import com.l5m.!REPLACE_STYLE!.engine.worker.UserCompanyWorker;
13
+ /**
14
+ * make sure code as clear as possible.
15
+ * don't make another one think.
16
+ * if you can't do it, get away.
17
+ * SortBeanListUtil can sort bean list.
18
+ * GroupBeanListUtil can group a bean list to map, or .....
19
+ * Use DAO Util to retrieve data, update... utils.
20
+ * don't write sql in servicer
21
+ *
22
+ * @author Ronghai
23
+ *
24
+ */
25
+ public class !REPLACE_ME_FILE!ServicerImpl extends BaseServicerParaBean.AbstractBaseServicer{
26
+ private static final long serialVersionUID = 1L;
27
+ public static enum PANEL {
28
+ REPORT("REPORT") ,
29
+ Help("Help"), DataAvailability("Data Availability")
30
+ ; //Total Day/Prime * LSD/C3
31
+ private final String label;
32
+ private boolean enable;
33
+ PANEL(){
34
+ this.label = this.name();
35
+ this.enable = true;
36
+ }
37
+ PANEL(String label){
38
+ this.label = label;
39
+ this.enable = true;
40
+ }
41
+ PANEL(String label,boolean enable){
42
+ this.label = label;
43
+ this.enable = enable;
44
+ }
45
+ public String getLabel() {
46
+ return label;
47
+ }
48
+ public boolean isEnable() {
49
+ return enable;
50
+ }
51
+ public int panelIndex(){
52
+ return this.ordinal();
53
+ }
54
+ }
55
+
56
+
57
+
58
+
59
+ @Override
60
+ public void clearCache() {
61
+ super.clearCache();
62
+ this.servicerParamBean.setPanelIndex(PANEL.Help.panelIndex());
63
+
64
+ System.gc();
65
+ }
66
+
67
+
68
+ @Override
69
+ public void handlePaginator(int panelIndex) {
70
+ if (this.servicerParamBean.getPaginatorStateBean(panelIndex) == null) {
71
+ this.servicerParamBean.setPaginatorStateBean(GenerateTagUtil.initPaginatorStateBean("PaginatorStateBeanTag"), panelIndex);
72
+ this.servicerParamBean.getPaginatorStateBean(panelIndex).setRowsPerPage(1);
73
+ }
74
+
75
+
76
+ if(panelIndex == PANEL.DataAvailability.panelIndex() || panelIndex == PANEL.Help.panelIndex() ){
77
+ }else{
78
+ int size = 0;
79
+ this.servicerParamBean.getPaginatorStateBean(panelIndex).setCollectionSize(size);
80
+ }
81
+
82
+ if (!this.servicerParamBean.getPaginatorStateBean(panelIndex).checkCurrentPageIndexIsLegal()) {
83
+ this.servicerParamBean.getPaginatorStateBean(panelIndex).setCurrentPageIndex(0);
84
+ }
85
+ }
86
+
87
+ @Override
88
+ public void init( ) {
89
+ super.init();
90
+ try {
91
+ this.servicerParamBean = new BaseServicerParaBean(this.dh, this.companyId, this.groupId , this.userId, this.userCompanyId, PANEL.values().length);
92
+ this.servicerParamBean.initDisplayAndSortBy();
93
+ try{
94
+ this.initTimeSpan();
95
+ }catch(Exception e){
96
+ e.printStackTrace();
97
+ this.servicerParamBean.initTimeSpan();
98
+ }
99
+ }catch(Exception e){
100
+ e.printStackTrace();
101
+ }
102
+
103
+ //How many tabes.... init here
104
+ this.servicerParamBean.initTabbedPanel("SOURCE");
105
+
106
+
107
+ /*
108
+ String[] columns = new String[]{"COLUMNS"};
109
+ //decimal
110
+ this.servicerParamBean.setReportDecimalControlList(GenerateTagUtil.initDecimal(columns, new int[]{3,3,0,0,0,0}), PANEL.REPORT.panelIndex());
111
+
112
+
113
+ //display
114
+ this.servicerParamBean.setColumnsMap(QHTCommonUtil.array2Map(columns), PANEL.REPORT.panelIndex());
115
+ Set<String> set = new HashSet<String>();
116
+ for (String s : columns) { set.add(s); }
117
+ this.servicerParamBean.setSelectedColumns(set, PANEL.REPORT.panelIndex());
118
+ this.servicerParamBean.setDisplayController( GenerateTagUtil.getSelectedValueBoolean( this.servicerParamBean.getColumnsMap( PANEL.REPORT.panelIndex() ) , set) , PANEL.REPORT.panelIndex());
119
+
120
+ //sort
121
+ this.servicerParamBean.setSortingKeysModuleStateBean(GenerateTagUtil.initSortKeyModule(columns, "sortKey", new int[]{0}, new boolean[]{true}), PANEL.REPORT.panelIndex());
122
+ */
123
+ }
124
+
125
+
126
+
127
+
128
+
129
+ public void initGeneralAvailabilityModule() {
130
+ DataSourceBeanBase dataSourceBean = null;
131
+ try {
132
+ dataSourceBean = UserCompanyWorker.getDataSourceBean(dh, companyId);
133
+ } catch (SQLException e1) {
134
+ e1.printStackTrace();
135
+ } catch (ClassNotFoundException e1) {
136
+ e1.printStackTrace();
137
+ }
138
+ this.session.setAttribute(UserCompanyWorker.DATA_SOURCE_BEAN, dataSourceBean);
139
+ boolean[] displaySetting = new boolean[GeneralAvailabilityModule.GROUP_COUNT];
140
+ if (dataSourceBean != null) {
141
+ displaySetting[GeneralAvailabilityModule.GROUP_MP] = dataSourceBean.hasMP() ;
142
+ displaySetting[GeneralAvailabilityModule.GROUP_TNS] = dataSourceBean.hasTNS() ;
143
+ displaySetting[GeneralAvailabilityModule.GROUP_MIT] = true;
144
+ displaySetting[GeneralAvailabilityModule.GROUP_ACM_MIT] = true;
145
+ if (dataSourceBean.hasMXM()) {
146
+ displaySetting[GeneralAvailabilityModule.GROUP_MXM] = true;
147
+ }
148
+ }
149
+ try {
150
+ this.generalAvailabilityModule = new GeneralAvailabilityModule(this.dh, this.groupId, companyId, dataSourceBean, displaySetting);
151
+ } catch (SQLException e) {
152
+ e.printStackTrace();
153
+ } catch (ClassNotFoundException e) {
154
+ e.printStackTrace();
155
+ }
156
+ }
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+ @SuppressWarnings("unchecked")
167
+ private void initTimeSpan() throws ClassNotFoundException, SQLException {
168
+ this.servicerParamBean.initTimeSpan();
169
+ }
170
+
171
+
172
+
173
+ public void retrieveData() throws SQLException, ClassNotFoundException, CloneNotSupportedException {
174
+ // don't write sql in this method,
175
+ // when retrieve something from database, you can create a DAO Util. Use a better name to identifine it, and another programmer aslo can use the DAO Util.
176
+ // all parameters passed into DAO Utill, should be wrapped in a parameterBean. if you add an additional parameter, you don't need modify/adjust the method.
177
+ // you can add a new attribute in your parameter bean, and use it in DAOUtil
178
+ //
179
+
180
+ }
181
+
182
+
183
+ @Override
184
+ public void updateDisplay(){
185
+ // nothing to do, here, don't use this method to update display or something.
186
+ //
187
+ // for flat report, you can use FlatViewUtil to generate.
188
+ //
189
+
190
+ }
191
+
192
+ @Override
193
+ public void sort(int ...panelIndexes){
194
+ if( panelIndexes == null || panelIndexes .length == 0){
195
+ panelIndexes = new int[]{this.getPanelIndex() } ;
196
+ }
197
+ /*for( int p : panelIndexes){
198
+ this.servicerParamBean.sort (p);
199
+ }*/
200
+ this.servicerParamBean.parseSort(panelIndexes);
201
+ //use SortBeanListUtil to sort bean list.
202
+ // Generelly application has two different data struct. bean list or dataTable.
203
+ // every application can convert to bean list or dataTable.
204
+ // don't use map to store result except map is better.
205
+
206
+ }
207
+
208
+
209
+ @Override
210
+ public void processFilter() {
211
+ }
212
+
213
+
214
+
215
+
216
+ }