1 5 package com.teamkonzept.field; 6 7 import com.teamkonzept.lib.*; 8 import com.teamkonzept.web.*; 9 10 public class TKFieldTableRowOrientedIterator implements TKListIterator { 11 12 TKListIterator oldIterator; 13 String outerList; 14 String innerList; 15 TKFieldTableOrientedData dataClass; 16 TKVector fields; 17 int fieldCount; 18 String prefix; 19 int outerIndex; 20 String fieldType; 21 TKBaseField rowField; 22 TKBaseField colField; 23 String listRowForInfo; 24 25 public TKFieldTableRowOrientedIterator( 26 TKFieldTableOrientedData dataClass, 27 TKVector fields, 28 TKBaseField rowField, 29 TKBaseField colField, 30 String prefix, 31 TKListIterator oldIterator, 32 String outerList, 33 String innerList, 34 String listRowForInfo, 35 String fieldType 36 ) 37 { 38 this.oldIterator = oldIterator; 39 this.fields = fields; 40 this.outerList = outerList; 41 this.innerList = innerList; 42 this.dataClass = dataClass; 43 this.prefix = prefix; 44 this.fieldCount = fields.size(); 45 this.fieldType = fieldType; 46 this.rowField = rowField; 47 this.colField = colField; 48 this.listRowForInfo = listRowForInfo; 49 this.outerIndex = 0; 50 } 51 52 public boolean apply( TKTemplate t, int i, String currListName ) 53 { 54 TKHTMLTemplate template = (TKHTMLTemplate) t; 55 56 TKVector dataVector = (TKVector) dataClass.contentData; 57 58 if( currListName.equalsIgnoreCase(listRowForInfo)) { 60 TKVector colDataVector = dataClass.colData; 61 if( (colDataVector == null) || (i >= colDataVector.size())) return false; 62 colField.fillIntoTemplate( 63 template, 64 colDataVector.elementAt(i), 65 prefix+TKFieldTableOriented.PRE_COLS+"."+i+"." 66 ); 67 return true; 68 } 69 else if( currListName.equalsIgnoreCase(outerList) ) { 71 if( (dataVector == null) || (i >= dataVector.size()) ) return false; 72 outerIndex = i; 73 t.set("PREFIX_IDX", prefix+outerIndex+"."); 74 TKVector rowDataVector = dataClass.rowData; 75 76 if( (rowDataVector != null) && (rowDataVector.size() > 0) ) { 77 rowField.fillIntoTemplate( 78 template, 79 rowDataVector.elementAt(outerIndex), 80 prefix+TKFieldTableOriented.PRE_ROWS+"."+outerIndex+"." 81 ); 82 } 83 84 return true; 85 86 } 87 else if( currListName.equalsIgnoreCase(innerList) ) { 89 if(dataVector == null) return false; 90 TKVector innerVector = (TKVector) dataVector.get(outerIndex); 91 if( i >= innerVector.size() ) return false; 92 93 TKBaseField field = (TKBaseField) fields.get(i); 94 field.fillIntoTemplate( template, innerVector.get(i), prefix+outerIndex+"."+i+"." ); 95 96 return true; 97 } 98 else if( oldIterator != null ) { 99 return oldIterator.apply( template, i, currListName ); 100 } 101 else { 102 return false; 103 } 104 } 105 } 108 109 | Popular Tags |