KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > teamkonzept > field > TKFieldTableIterator


1 /*
2  * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/field/TKFieldTableIterator.java,v 1.6 2000/06/01 15:02:54 alex Exp $
3  *
4  */

5 /**
6  * Die Zellen einer Tabelle beinhalten jeweils das gleiche BaseField.
7  * Dies gilt auch fuer die Zusatz-Zeile/Spalte.
8  *
9  * Folgende Moeglichkeiten bestehen:
10  * 1. Anlegen von Tabellen variabler Groesse
11  * 2. Anlegen von einer Zeile/Spalte, die Zusatzinformationen enthalten
12  * 3. Auswahl der Inhalte (Fields) der Zellen
13  * 4. Auswahl der Inhalte (Fields) der Zusatzz-Zeilen/Spalten
14  * 5. Anzeigen der Tabelle
15  * 6. Das modifizieren der Tabelle selbst
16  * - Loeschen von Zeilen/Spalten
17  * - Einfuegen von Zeilen/Spalten
18  * - Vertauschen von Zeilen/Spalten
19  * 7. Speichern aller Daten in die Datenbank
20  * 8. Speichern aller Strukturinformationen in die Datenbank
21  *
22  * Um Verwechselungen zu vermeiden:
23  *
24  * --------------------------------
25  * | Col-Zusatz-Vektor |
26  * --------------------------------
27  * ------
28  * | Row- |
29  * | zu- |
30  * | satz | TABELLE
31  * | vek- |
32  * | tor |
33  * | |
34  * ------
35  */

36 package com.teamkonzept.field;
37
38 import com.teamkonzept.lib.*;
39 import com.teamkonzept.web.*;
40
41 public class TKFieldTableIterator implements TKListIterator {
42     
43     TKListIterator oldIterator;
44     String JavaDoc listOuterName;
45     String JavaDoc listInnerName;
46     String JavaDoc listRowForInfo;
47     TKFieldTableRealData dataClass; //interne repraesentation!!
48
TKBaseField contentField;
49     TKBaseField rowField;
50     TKBaseField colField;
51     String JavaDoc prefix;
52     int outerIndex;
53     String JavaDoc merkePrefix;
54     
55
56     TKFieldTable fieldTableObject;
57         
58     public TKFieldTableIterator(
59         TKFieldTableRealData dataClass,
60         TKBaseField contentField,
61         TKBaseField rowField,
62         TKBaseField colField,
63         String JavaDoc prefix,
64         TKListIterator oldIterator,
65         String JavaDoc listOuterName,
66         String JavaDoc listInnerName,
67         String JavaDoc listRowForInfo
68         
69     )
70     {
71         this.oldIterator = oldIterator;
72         this.contentField = contentField;
73         this.rowField = rowField;
74         this.colField = colField;
75         this.listOuterName = listOuterName;
76         this.listInnerName = listInnerName;
77         this.listRowForInfo = listRowForInfo;
78         this.dataClass = dataClass;
79         this.prefix = prefix;
80         this.outerIndex = 0;
81     }
82     
83
84     public boolean apply( TKTemplate t, int i, String JavaDoc currListName )
85     {
86     
87         TKHTMLTemplate template = (TKHTMLTemplate) t;
88
89         TKVector dataVector = (TKVector) dataClass.contentData;
90      
91         //---- Row mit den Infos ----//
92
if( currListName.equalsIgnoreCase(listRowForInfo)) {
93             TKVector colDataVector = dataClass.colData;
94             if( (colDataVector == null) || (i >= colDataVector.size())) return false;
95             colField.fillIntoTemplate(
96                 template,
97                 colDataVector.elementAt(i),
98                 prefix+TKFieldTable.PRE_COLS+"."+i+"."
99             );
100             return true;
101         }
102         //---- Aeussere Liste und Schleife ----//
103
else if( currListName.equalsIgnoreCase( listOuterName ) ) {
104             if( (dataVector == null) || (i >= dataVector.size()) ) return false;
105             outerIndex = i;
106
107             String JavaDoc prefixHelp = prefix+TKFieldTable.MODIFY_ROW+"."+outerIndex+".";
108             t.set("PREFIX_ROW", prefixHelp);
109
110             TKVector rowDataVector = dataClass.rowData;
111             if( (rowDataVector != null) && (rowDataVector.size() > 0) ) {
112                 rowField.fillIntoTemplate(
113                     template,
114                     rowDataVector.elementAt(outerIndex),
115                     prefix+TKFieldTable.PRE_ROWS+"."+outerIndex+"."
116                 );
117             }
118             return true;
119
120         }
121         //---- Innere Liste ----//
122
else if( currListName.equalsIgnoreCase( listInnerName ) ) {
123             if(dataVector == null) return false;
124
125             TKVector dataRow = (TKVector)dataVector.get(outerIndex);
126             if( i >= dataRow.size() ) return false;
127
128             contentField.fillIntoTemplate( template, dataRow.get(i), prefix+outerIndex+"."+i+".");
129             return true;
130         }
131         else if( oldIterator != null ) {
132             return oldIterator.apply( template, i, currListName );
133         }
134         else {
135             return false;
136         }
137     }
138     //{{DECLARE_CONTROLS
139
//}}
140
}//end class
141
Popular Tags