01: /*
02: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/field/TKFieldOptionFakeIterator.java,v 1.7 2002/01/18 15:41:15 mischa Exp $
03: *
04: */
05: /**
06: * Die Klasse TKFieldoption stellt Methoden zur Verfuegung, optional auszuwaehlen,
07: * ob ein uebergebens Field generiert werden soll oder nicht, die ausgewaehlte Option
08: * zu modifizieren, und um die Daten und Struktur in der Datenbank abzulegen.
09: *
10: * Sie definiert sich ueber einen Namen, einer Beschreibung
11: * und einer Auswahlliste aller verfuegbaren Fields. Im Content-Edit Modus wird
12: * dann das Template field_option.tmpl generiert, welches einen Switch mit der
13: * Auswahl Ja bzw. Nein enthaelt. Wird Ja ausgewaehlt, so wird der Default des
14: * Feldes generiert, das zuvor ausgewaehlt wurde.
15: *
16: * Bsp.: Eine Liste, enthaelt Textfelder. Zu jedem Textfeld kann optional die Moeglichkeit
17: * zur Verfuegung gestellt werden, ein Bild am Ende des Textes hinzuzufuegen oder nicht.
18: */package com.teamkonzept.field;
19:
20: import com.teamkonzept.web.*;
21: import com.teamkonzept.publishing.markups.*;
22: import com.teamkonzept.lib.*;
23: import com.teamkonzept.field.db.*;
24:
25: /**
26: * Wurde Ja aus der Switchlist ausgewaehlt, so muss das Subfield im
27: * Template dargestellt werden
28: * @author $Author: mischa $
29: * @version $Revision: 1.7 $
30: */
31: public class TKFieldOptionFakeIterator implements TKListIterator {
32:
33: TKListIterator oldIterator;
34: String listName;
35: TKFieldOptionData optionData;
36: String prefix;
37: TKBaseField optionEntry;
38:
39: public TKFieldOptionFakeIterator(
40:
41: TKBaseField optionEntry, TKFieldOptionData optionData,
42: String prefix, TKListIterator oldIterator, String listName) {
43: this .optionEntry = optionEntry;
44: this .oldIterator = oldIterator;
45: this .listName = listName;
46: this .optionData = optionData;
47: this .prefix = prefix;
48: }
49:
50: public boolean apply(TKTemplate t, int i, String currListName) {
51:
52: TKHTMLTemplate template = (TKHTMLTemplate) t;
53: if (currListName.equalsIgnoreCase(listName)) {
54: if (i >= 1)
55: return false;
56: if (optionData.data == null)
57: return false;
58: if (optionData.currJaNein.equalsIgnoreCase("NO"))
59: return false;
60:
61: if (optionData.currJaNein.equalsIgnoreCase("YES")) {
62: optionEntry.fillIntoTemplate(template, optionData.data,
63: prefix + optionData.currJaNein + '.');
64: }
65: return true;
66: } else if (oldIterator != null) {
67: return oldIterator.apply(template, i, currListName);
68: } else {
69: return false;
70: }
71: }
72: //{{DECLARE_CONTROLS
73: //}}
74: }
|