001: /*
002: * $Header: /cvsroot/webman-cms/source/webman/com/teamkonzept/field/TKUploadIterator.java,v 1.7 2002/01/18 15:42:41 mischa Exp $
003: *
004: */
005: /**
006: * Die Klasse TKUploadfield stellt Methoden zur Verfuegung, Uploads zu ermoeglichen und
007: * die hochgeladenen Dateien (Bilder) darzustellen, sowie die Daten in der Datenbank zu speichern.
008: * Das Verzeichnis, in dem die Bilder gespeichert werden sollen, wird mit dem Parameterhash
009: * uebergeben. Der Key ist mit UPBASE banannt.
010: *
011: * 1. Upload von Dateien
012: * Die im UPBASE liegenden Dateien werden ausgelesen und in einem Pulldown-
013: * menue zur Auswahl gestellt.
014: *
015: * 2 Upload von Dateien vom lokalen Rechner auf den Server
016: * Dateien koennen vom lokalen Rechner in das UPBASE-Verzeichnis auf den Server
017: * kopiert werden. Es besteht die Moeglichkeit, Dateinamen zu aendern.
018: *
019: * Das Upload benoetigt 2 Templates.
020: * 1. Datei-Auswahl
021: * Das erste (ce_upload.tmpl und ct_upload.tmpl)
022: * stellt Funktionalitaeten zur Verfuegung, die die Auswahl der Dateien ermoeglicht.
023: *
024: * 2. Darstellung der Datei
025: * Das 2. Template (field_option.tmpl) stellt das Bild da und enthaelt einen Button "Modify".
026: * Wird dieser Event ausgeloest, wird das Template zur Datei-Auswahl wieder generiert.
027: *
028: * Die Events fuer das Modify werden im Hauptprogramm (CTGenerator) abgearbeitet.
029: */package com.teamkonzept.field;
030:
031: import com.teamkonzept.lib.*;
032: import com.teamkonzept.web.*;
033:
034: /**
035: * Die Parameter mussen in einer Liste als Hidden-Felder weitergeleitet werden, da
036: * fuer das Upload 2 Templates Templates benoetigt werden.
037: * Alle Filenames, die in einem Verzeichbis liegen werden in eine Liste gepackt
038: * @author $Author: mischa $
039: * @version $Revision: 1.7 $
040: */
041: public class TKUploadIterator implements TKListIterator {
042:
043: String fileList[];
044: TKListIterator oldIterator;
045: String listName;
046: String fileListName;
047: String mimeListName;
048: String extensionErrorList;
049: TKVector keyVector;
050: TKVector valVector;
051: TKVector mimeList[];
052: TKVector extensionVector;
053:
054: public TKUploadIterator(TKVector extensionVector,
055: TKVector mimeList[], String fileList[], TKVector keyVector,
056: TKVector valVector, TKListIterator oldIterator,
057: String listName, String fileListName, String mimeListName,
058: String extensionErrorList) {
059: this .extensionVector = extensionVector;
060: this .mimeList = mimeList;
061: this .fileList = fileList;
062: this .keyVector = keyVector;
063: this .valVector = valVector;
064: this .oldIterator = oldIterator;
065: this .listName = listName;
066: this .fileListName = fileListName;
067: this .mimeListName = mimeListName;
068: this .extensionErrorList = extensionErrorList;
069: }
070:
071: public boolean apply(TKTemplate t, int i, String currListName) {
072: TKHTMLTemplate template = (TKHTMLTemplate) t;
073:
074: //---- Liste der Hidden-Parameter setzen ----//
075: if (currListName.equalsIgnoreCase(listName)) {
076: if (i >= keyVector.size())
077: return false;
078: template.set("PARAMKEY", keyVector.elementAt(i));
079: template.set("PARAMVALUE", valVector.elementAt(i)
080: .toString());
081:
082: return true;
083: }
084: //---- Liste der Files im Directory ----//
085: else if (currListName.equalsIgnoreCase(fileListName)) {
086: if (i >= fileList.length)
087: return false;
088: template.set("FILENAME", fileList[i]);
089: return true;
090: }
091: //----- Liste der speziellen extensions ----//
092: else if (currListName.equalsIgnoreCase(mimeListName)) {
093: TKVector keyMimeVector = mimeList[0];
094: TKVector valMimeVector = mimeList[1];
095: //if(i >= mimeList.size()) return false;
096: //template.set("MIMENAME", mimeList.elementAt(i));
097: if (i >= keyMimeVector.size())
098: return false;
099: template.set("MIMENAMEKEY", keyMimeVector.elementAt(i));
100: template.set("MIMENAMEVAL", valMimeVector.elementAt(i));
101: return true;
102: }
103: //---- Liste der auf de server nicht gefundenen extensions ----//
104: else if (currListName.equalsIgnoreCase(extensionErrorList)) {
105: if (i >= extensionVector.size())
106: return false;
107: template.set("INDEX", Integer.toString(i));
108: template.set("EXTENSION", extensionVector.elementAt(i));
109: return true;
110: } else if (oldIterator != null) {
111: return oldIterator.apply(template, i, currListName);
112: } else {
113: return false;
114: }
115: }
116:
117: //{{DECLARE_CONTROLS
118: //}}
119: }//end class
|