Clover Coverage Report - Kuali Student 1.2.1-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Nov 2 2011 04:03:58 EST
../../../../../../../../../img/srcFileCovDistChart0.png 42% of files have more coverage
32   131   17   2.67
10   80   0.53   12
12     1.42  
1    
 
  MultiplicityTable       Line # 34 32 0% 17 54 0% 0.0
 
No Tests
 
1   
2    /**
3    * Copyright 2010 The Kuali Foundation Licensed under the
4    * Educational Community License, Version 2.0 (the "License"); you may
5    * not use this file except in compliance with the License. You may
6    * obtain a copy of the License at
7    * <p/>
8    * http://www.osedu.org/licenses/ECL-2.0
9    * <p/>
10    * Unless required by applicable law or agreed to in writing,
11    * software distributed under the License is distributed on an "AS IS"
12    * BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
13    * or implied. See the License for the specific language governing
14    * permissions and limitations under the License.
15    * <p/>
16    *
17    */
18    package org.kuali.student.common.ui.client.configurable.mvc.multiplicity;
19   
20    import java.util.List;
21   
22    import org.kuali.student.common.ui.client.application.Application;
23    import org.kuali.student.common.ui.client.widgets.field.layout.element.MessageKeyInfo;
24   
25    import com.google.gwt.user.client.ui.FlexTable;
26   
27    /**
28    * A MultiplicityTable displays data in a GWT FlexTable, one cell per field defined, one row per iteration in the supplied data.
29    * Data is displayed as defined in the MultiplicityConfiguration passed in the ctor
30    * If concatenated fields have been defined the values will be concatenated (comma delimited) and displayed in a single table cell
31    *
32    * Fields are included in the table based on the FieldDescriptors added to the configuration
33    */
 
34    public class MultiplicityTable extends FlexTable {
35   
36    private MultiplicityConfiguration config;
37   
38    private static final String STYLE_TABLE = "KS-MultiplicityTable";
39    private static final String STYLE_TABLE_BORDER = "KS-MultiplicityTableBorder";
40    private static final String STYLE_CELL = "KS-MultiplicityTableCell";
41    private static final String STYLE_CELL_BORDER = "KS-MultiplicityTableCellBorder";
42    private static final String STYLE_HEADER_CELL = "KS-MultiplicityTableHeaderCell";
43    private static final String BLANK_STRING = " ";
44    private int col = 0;
45    protected int row = 0;
46   
47    private String parentPath;
48   
49   
50    /**
51    *
52    * Creates an instance of a MultiplicityTable based on the options in the MultiplicityConfiguration
53    *
54    * @param config
55    */
 
56  0 toggle public MultiplicityTable(MultiplicityConfiguration config) {
57  0 this.config = config;
58  0 setStyleName(STYLE_TABLE);
59  0 if (config.getStyleType() == MultiplicityConfiguration.StyleType.BORDERED_TABLE){
60  0 addStyleName(STYLE_TABLE_BORDER);
61    }
62    }
63   
 
64  0 toggle public void initTable() {
65  0 clear();
66  0 while (getRowCount() > 0) {
67  0 removeRow(0);
68    }
69  0 row = 0;
70  0 col = 0;
71    }
72   
 
73  0 toggle public void buildHeaders() {
74  0 if (config.isShowHeaders()) {
75    //TODO should just be 1 row def for a table - throw exception if > 1?
76  0 for (Integer row : config.getFields().keySet()) {
77  0 List<MultiplicityFieldConfiguration> fieldConfigs = config.getFields().get(row);
78  0 for (MultiplicityFieldConfiguration fieldConfig : fieldConfigs) {
79  0 MessageKeyInfo info = fieldConfig.getMessageKeyInfo();
80  0 String title = Application.getApplicationContext().getUILabel(info.getGroup(), info.getType(), info.getState(), info.getId());
81  0 addHeaderCell(title);
82    }
83    }
84  0 nextRow();
85    }
86    }
87   
 
88  0 toggle public void addHeaderCell(String fieldValue) {
89  0 if (config.isShowHeaders()) {
90  0 setCellText(row, col, fieldValue);
91  0 getCellFormatter().addStyleName(row, col++, STYLE_HEADER_CELL);
92    }
93    }
94   
 
95  0 toggle public void addNextCell(String fieldValue) {
96  0 setCellText(row, col++, fieldValue);
97    }
98   
 
99  0 toggle private void setCellText(int row, int cell, String fieldValue) {
100  0 setText(row, cell, fieldValue);
101  0 getCellFormatter().addStyleName(row, cell, STYLE_CELL);
102  0 if (config.getStyleType() == MultiplicityConfiguration.StyleType.BORDERED_TABLE) {
103  0 getCellFormatter().addStyleName(row, cell, STYLE_CELL_BORDER);
104    }
105    }
106   
 
107  0 toggle public void addEmptyCell() {
108  0 addNextCell(BLANK_STRING);
109    }
110   
 
111  0 toggle public void nextRow() {
112  0 row++;
113  0 col = 0;
114    }
115   
 
116  0 toggle public MultiplicityConfiguration getConfig() {
117  0 return config;
118    }
119   
 
120  0 toggle public void setConfig(MultiplicityConfiguration config) {
121  0 this.config = config;
122    }
123   
 
124  0 toggle public String getParentPath() {
125  0 return parentPath;
126    }
127   
 
128  0 toggle public void setParentPath(String parentPath) {
129  0 this.parentPath = parentPath;
130    }
131    }