Home | History | Annotate | Download | only in tko
      1 package autotest.tko;
      2 
      3 import autotest.common.spreadsheet.Spreadsheet.CellInfo;
      4 import autotest.common.spreadsheet.Spreadsheet.Header;
      5 
      6 import com.google.gwt.json.client.JSONObject;
      7 
      8 import java.util.List;
      9 
     10 public class TkoSpreadsheetUtils {
     11     public static enum DrilldownType {DRILLDOWN_ROW, DRILLDOWN_COLUMN, DRILLDOWN_BOTH}
     12 
     13     public static TestSet getTestSet(CellInfo cellInfo, JSONObject condition,
     14             List<HeaderField> rowFields, List<HeaderField> columnFields) {
     15         boolean isSingleTest = cellInfo.testCount == 1;
     16         if (isSingleTest) {
     17             return new SingleTestSet(cellInfo.testIndex, condition);
     18         }
     19 
     20         ConditionTestSet testSet = new ConditionTestSet(condition);
     21         if (cellInfo.row != null) {
     22             setSomeFields(testSet, rowFields, cellInfo.row);
     23         }
     24         if (cellInfo.column != null) {
     25             setSomeFields(testSet, columnFields, cellInfo.column);
     26         }
     27         return testSet;
     28     }
     29 
     30     private static void setSomeFields(ConditionTestSet testSet, List<HeaderField> allFields,
     31             Header values) {
     32         for (int i = 0; i < values.size(); i++) {
     33             HeaderField field = allFields.get(i);
     34             String value = values.get(i);
     35             testSet.addCondition(field.getSqlCondition(value));
     36         }
     37     }
     38 
     39     public static DrilldownType getDrilldownType(CellInfo cellInfo) {
     40         if (cellInfo.row == null) {
     41             // column header
     42             return DrilldownType.DRILLDOWN_COLUMN;
     43         }
     44         if (cellInfo.column == null) {
     45             // row header
     46             return DrilldownType.DRILLDOWN_ROW;
     47         }
     48         return DrilldownType.DRILLDOWN_BOTH;
     49     }
     50 }
     51