Java tutorial
/** * Copyright (C) 2014 BigLoupe http://bigloupe.github.io/SoS-JobScheduler/ * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ /********************************************************* begin of preamble ** ** Copyright (C) 2003-2012 Software- und Organisations-Service GmbH. ** All rights reserved. ** ** This file may be used under the terms of either the ** ** GNU General Public License version 2.0 (GPL) ** ** as published by the Free Software Foundation ** http://www.gnu.org/licenses/gpl-2.0.txt and appearing in the file ** LICENSE.GPL included in the packaging of this file. ** ** or the ** ** Agreement for Purchase and Licensing ** ** as offered by Software- und Organisations-Service GmbH ** in the respective terms of supply that ship with this file. ** ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS ** IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ** THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ** PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS ** BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ** POSSIBILITY OF SUCH DAMAGE. ********************************************************** end of preamble*/ package sos.settings; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.StringTokenizer; import java.util.Vector; import java.util.regex.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import javax.servlet.jsp.JspWriter; import org.apache.commons.fileupload.DefaultFileItem; import org.apache.commons.fileupload.DiskFileUpload; import org.apache.commons.fileupload.FileUploadException; import sos.connection.SOSConnection; import sos.util.SOSClassUtil; import sos.util.SOSDate; import sos.marshalling.SOSExport; import sos.marshalling.SOSImport; import sos.util.SOSLogger; import sos.util.SOSResourceBundle; import sos.util.SOSStandardLogger; /** * Title: SOSSettingsDialog<br> * Description: Dialogklasse um Einstellungen fr eine Applikation zu verarbeiten<br> * im ACL-Betrieb werden zustzlich sos.user.jar und sos.acl.jar bentigt<br> * Copyright: Copyright (c) 2004<br> * Company: SOS Berlin GmbH<br> * @author <a href="mailto:robert.ehrlich@sos-berlin.com">Robert Ehrlich</a> * resource sos.connection.jar sos.util.jar servlet.jar commons-fileupload-1.0.jar * @version $Id$ */ public class SOSSettingsDialog { /** Debuglevel */ private int debugLevel = 0; /** ConnectionSettings Objekt */ private SOSConnectionSettings settings; /** SOSConnection Objekt */ private SOSConnection connection; /** SOSUser Objekt */ private sos.user.SOSUser user; /** Session Objekt */ private HttpSession session; /** Request Objekt */ private HttpServletRequest request; /** Response Objekt */ private HttpServletResponse response; /** Ausgabe Objekt */ public JspWriter out; /** Settingstabelle */ private String source = ""; /** HTML Titel */ private String title = "Settings Dialog"; /** Name der rufenden Applikation */ private String applicationName = ""; /** Titel der Liste aller Applikationen */ private String dialogApplicationsTitle = "(Alle Einstellungen)"; /** Titel fr neue Applikation */ private String dialogApplicationsNewTitle = "(Neuer Bereich)"; /** Titel fr Export einer Applikation */ private String dialogApplicationsExportTitle = "(Alle Eintrge dieses Bereichs)"; /** Titel der Liste aller Sektionen */ private String dialogSectionsTitle = "Einstellungen des Bereichs"; /** Titel fr neue Sektion */ private String dialogSectionsNewTitle = "(Neue Sektion)"; /** Titel fr Export einer Sektion */ private String dialogSectionsExportTitle = "(Alle Eintrge dieser Sektion)"; /** Titel fr neue Zhler-Sektion */ private String dialogSectionsCounterTitle = "Nr. des letzten Eintrags fr Tabelle"; /** Titel fr neue Schema-Sektion */ private String dialogSectionsSchemaTitle = "(Schema des Bereichs)"; /** Titel der Liste aller Eintrge */ private String dialogEntriesTitle = "Einstellungen der Sektion"; /** Titel fr neuen Eintrag */ private String dialogEntriesNewTitle = "(Neuer Eintrag)"; /** Verzeichnis der Graphiken */ private String imgDir = "images/settings/"; /** Graphik fr Navigation */ private String imgNavigation = "arr_rightlr.gif"; /** Graphik fr Aktionen */ private String imgAction = "arr_rightb.gif"; /** Graphik fr Seitenanfang */ private String imgTop = "arr_upb.gif"; /** Graphik fr Seitenende */ private String imgBottom = "arr_downb.gif"; /** Graphik fr Hilfe-Symbol */ private String imgHelp = "icon_help.gif"; /** Navigieren in Applikationen zulassen */ private boolean enableApplicationNavigation = true; /** Applikationsverwaltung zulassen */ private boolean enableApplicationManager = true; /** Sektionsverwaltung zulassen */ private boolean enableSectionManager = true; /** Sektionsverwaltung zulassen */ private boolean enableEntryManager = true; /** Listenverwaltung zulassen */ private boolean enableListManager = true; /** Anzeige der Namen von Eintrgen in Listen zulassen */ private boolean enableEntryNames = true; /** ndern der Werte von Eintrgen in Listen zulassen */ private boolean enableEntryValues = true; /** Zwischenablage zulassen */ private boolean enableClipboard = false; /** Anzeige des Buttons "Hilfe" zulassen */ private boolean enableHelps = true; /** Anzeige des Buttons "Dokumentieren" zulassen */ private boolean enableDocumentation = true; /** Export-Funktion zulassen */ private boolean enableExport = true; /** Import-Funktion zulassen */ private boolean enableImport = true; /** Import-Funktion: Dateigre beschrnken, -1 = beliebig */ private long importMaxSize = -1; /** Name des Formular-Elements */ private String form = "sos_settings"; /** Name des Formular-Elements fr Zusatzaktionen */ private String formActions = "sos_settings_actions"; /** Name der Web-Seite */ private String site = ""; /** Query-Parameter fr Session-ID */ private String sessionVAR = "JSESSIONID"; /** Query-Parameterwert fr Session-ID */ private String sessionID = ""; /** Session-ID wird von PHP automatisch bergeben: aus php.ini */ private boolean sessionUseTransSID = true; /** CSS-Klasse fr Aktionen via Link */ private String styleLinkAction = "settingsLinkAction"; /** CSS-Klasse fr Aktionen via Link */ private String styleLinkNavigation = "settingsLinkNavigation"; /** CSS-Klasse fr Aktionen via Link */ private String styleLinkInactiveNavigation = "settingsLinkGrey"; /** CSS-Klasse fr Aktionen via Font */ private String styleFontAction = "settingsFontAction"; /** CSS-Klasse fr Aktionen via Font */ private String styleFontNavigation = "settingsFontNavigation"; /** CSS-Style TABLE.settings = { .... } */ private String styleTable = "settingsTable"; /** CSS-Style: Tabellenrnder 1/0 */ private String styleBorder = "1"; /** CSS-Style TR.settings = { .... } */ private String styleTr = "settingsTable"; /** CSS-Style TH.settings = { .... } */ private String styleTh = "settingsTable"; /** CSS-Style TD.settings = { .... } */ private String styleTd = "settingsTable"; /** CSS-Style TD.settings = { .... } */ private String styleTdLabel = "settingsTableLabel"; /** CSS-Style TD.settings = { .... } */ private String styleTdBackground = "settingsTableBackground"; /** CSS-Style INPUT.settings = { .... } */ private String styleInput = "settingsInput"; /** Inhalt des Headers */ private String headerContent = "<p>"; /** Default: Anzahl Zeichen fr Eingabe eines Eintrags */ private String defaultInputSize = "250"; /** Default: Anzahl Pixel fr Anzeige eines Eintrags */ private String defaultDisplaySize = "50"; /** Benutzername */ private String author = ""; /** Anzahl Zeilen bei Darstellung von Textareas */ private int displayTextareaRows = 4; /** Anzahl Zeilen bei Darstellung von Document (long_value) Textareas */ private int displayDocumentTextareaRows = 10; /** Datei mit Hilfetexten */ private String helpFile = "settings_show_help.jsp"; /** Breite des JS-Hilfefensters */ private int helpWinWidth = 600; /** Hhe des JS-Hilfefensters */ private int helpWinHeight = 500; /** Breite des JS-Hilfefensters */ private int helpsWinWidth = 600; /** Hhe des JS-Hilfefensters */ private int helpsWinHeight = 500; /** Template fr die Generierung der Dokumentation */ private String documentationFile = "settings_show_docu.jsp"; /** ORDER BY fr die Doku-Anzeige */ private String documentationSort = "\"APPLICATION\" asc, \"SECTION\" asc, \"NAME\" asc"; /** Breite des JS-Hilfefensters */ private int docuWinWidth = 1000; /** Hhe des JS-Hilfefensters */ private int docuWinHeight = 500; /** Liste der verfgbaren Applikationen */ private Vector dialogApplications = new Vector(); /** aktuell selektierte Applikation */ private Integer dialogApplicationIndex = new Integer(-1); /** Liste der verfgbaren Sektionen */ private Vector dialogSections = new Vector(); /** aktuell selektierte Sektion */ private Integer dialogSectionIndex = new Integer(-1); /** Liste der verfgbaren Eintrge */ private Vector dialogEntries = new Vector(); /** aktuell selektierter Eintrag */ private Integer dialogEntryIndex = new Integer(-1); private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** Anzeige des Buttons "Hilfe" zulassen */ private boolean hasHelps = false; /** Nur Dokumentation exportieren */ private int exportDocumentation = 0; /** Nur Dokumentation importieren */ private int importDocumentation = 0; /** * Funktionsnamen fr die Dokugestaltung in der Template Datei * "$this->documentation_template_file" */ private String docuFuncNameApplication = "docu_application"; private String docuFuncNameSection = "docu_section"; private String docuFuncNameEntry = "docu_entry"; /** Flag fr neue Datenstze */ private boolean isNew = false; /** Aktion der Transaktion: show, new, insert, store, delete */ private String action = ""; /** Bereich der Transaktion: application, section, entry */ private String range = ""; /** Element der Transaktion */ private String item = ""; /** Eingabeformat aus Schemasektion */ private int applicationType = 0; /** Eingabeformat fr Listen */ private int sectionType = 0; /** Clipboard-Objekt (SOS_Clipboard) */ // var $clipboard; /** Aktion der Zwischenablage: copy, paste */ private String clipboardAction = ""; private HashMap record = new HashMap(); private boolean err = false; private String errMsg = ""; private String msg = ""; private String errLocation = ""; private boolean enableDocuTemplateCss = false; private String inputQuery = ""; private String replaceQuery = ""; private String inputExport = ""; private String inputImport = ""; private Vector entriesLongValues = new Vector(); /** Leserecht */ private boolean hasReadRight = true; /** Schreibrecht */ private boolean hasWriteRight = true; /** Recht zum Lschen */ private boolean hasDeleteRight = true; /** Create Recht */ private boolean hasCreateRight = true; /** * Attribute von Eingabefeldern (kein Schreibrecht -> this.disabled = " * disabled ") */ private String disabled = ""; /** Tabelle ACL */ private String tableAcls = "ACL"; /** Settings benutzt ACL's */ private boolean hasAcls = false; /** ACL-Betrieb mit Datenbank */ private boolean hasAclDb = true; /** Alle ACL's mit Settingszuordnung */ private HashMap allAcls = new HashMap(); /** Bereich der ACL */ private String aclRange = "application"; /** Zeichen fr alle Applikationen|Sektionen|Entries fr eine ACL */ private String allAclNote = "*"; /** * ACL zum Schutzt der Anzeige von allen Applikationen bzw "neue * Applikation" */ private String topLevelAcl = ""; /** Schreibrecht der this.topLevelAcl */ private boolean hasTopLevelWriteRight = true; /** Create Recht der this.topLevelAcl */ private boolean hasTopLevelCreateRight = true; /** Leserecht der this.topLevelAcl */ private boolean hasTopLevelReadRight = true; /** FCK Web Editor benutzen */ private boolean enableEditor = false; /** Names des Editors - Request variable */ private String editorName = "sos_fckeditor"; /** FCK Web Editor Hhe */ private String editorHeight = "300px"; /** FCK Web Editor Breite - wird an td Element angewandt, daswegen in % */ //private String editorWidth = "800px"; private String editorWidth = "100%"; private Locale locale = Locale.UK; private SOSResourceBundle rb = null; /** Name der Properties Datei */ //private String bundleName = // this.getClass().getPackage().getName()+".sos_settings"; private String bundleName = "sos_settings"; /** Sprache der Anwendung */ protected String sosLang; /** * Automatisches Setzen in der DB von gerade aktiven LONG_VALUE bzw VALUE * zulassen (Funktion - set_dialog_entries_long_values) */ private boolean enableAutoSetLongValues = false; /** * Upload Element fr Document binary anzeigen, benutzt wird als * style="display:none" */ private String displayBinaryUpload = "none"; /** long_value bei binary Dokumenten */ private Hashtable hasBinaryValue = new Hashtable(); /** Fleck fr show_dialog_value */ private boolean isShowEntries = false; /** aktuelle Request, Session Daten anzeigen */ private boolean enableShowDevelopmentData = false; private String divDevelopmentDataLeft = "850px"; private String divDevelopmentDataTop = "10px"; private String importOriginalFileName = ""; private boolean isSourceDownloaded = false; /** * Konstruktor * * @param sosConnection * ein SOSConnection-Objekt * @param source * Name der Tabelle fr Einstellungen * @param servletRequest * Request Objekt * @param servletResponse * response Objekt * @param out * JspWriter Objekt * @throws Exception * @see #SOSSettingsDialog( SOSConnection, String) */ public SOSSettingsDialog(SOSConnection sosConnection, String source, HttpServletRequest servletRequest, HttpServletResponse servletResponse, JspWriter out) throws Exception { this.connection = sosConnection; SOSLogger logger = new SOSStandardLogger(SOSStandardLogger.DEBUG9); this.settings = new SOSConnectionSettings(sosConnection, source, logger); this.request = servletRequest; this.response = servletResponse; this.out = out; this.site = this.request.getRequestURI(); this.session = this.request.getSession(false); this.setDefaultLanguage(); } /** * Konstruktor * * @param sosConnection * ein SOSConnection-Objekt * @param source * Name der Tabelle fr Einstellungen * @param logger * Das Logger-Objekt * @param servletRequest * Request Objekt * @param servletResponse * response Objekt * @param out * JspWriter Objekt * @throws Exception * @see #SOSSettingsDialog( SOSConnection, String,SOSLogger ) */ public SOSSettingsDialog(SOSConnection sosConnection, String source, SOSLogger logger, HttpServletRequest servletRequest, HttpServletResponse servletResponse, JspWriter out) throws Exception { this.connection = sosConnection; this.settings = new SOSConnectionSettings(sosConnection, source, logger); this.request = servletRequest; this.response = servletResponse; this.out = out; this.site = this.request.getRequestURI(); this.session = this.request.getSession(false); this.setDefaultLanguage(); } /** * Konstruktor * * @param sosConnection * DBConnection * @param source * Name der Tabelle * @param application * Name der Anwendung * @param logger * Das Logger-Objekt * @param servletRequest * Request Objekt * @param servletResponse * response Objekt * @param out * JspWriter Objekt * @throws Exception * @see #SOSSettingsDialog( SOSConnection, String,String, SOSLogger ) */ public SOSSettingsDialog(SOSConnection sosConnection, String source, String application, SOSLogger logger, HttpServletRequest servletRequest, HttpServletResponse servletResponse, JspWriter out) throws Exception { this.connection = sosConnection; this.settings = new SOSConnectionSettings(sosConnection, source, application, logger); this.request = servletRequest; this.response = servletResponse; this.out = out; this.site = this.request.getRequestURI(); this.session = this.request.getSession(false); this.setDefaultLanguage(); } /** * @param sosConnection * DBConnection * @param source * Name der Tabelle * @param application * Name der Anwendung * @param section * Name der Sektion * @param logger * Das Logger-Objekt * @param servletRequest * Request Objekt * @param servletResponse * response Objekt * @param out * JspWriter Objekt * @throws Exception * @see #SOSSettingsDialog( SOSConnection, String, String, String, SOSLogger ) */ public SOSSettingsDialog(SOSConnection sosConnection, String source, String application, String section, SOSLogger logger, HttpServletRequest servletRequest, HttpServletResponse servletResponse, JspWriter out) throws Exception { this.connection = sosConnection; this.settings = new SOSConnectionSettings(sosConnection, source, application, section, logger); this.request = servletRequest; this.response = servletResponse; this.out = out; this.site = this.request.getRequestURI(); this.session = this.request.getSession(false); this.setDefaultLanguage(); } /** * @throws Exception */ private void setFeaturesLabels() throws Exception { /* Titel der Liste aller Applikationen */ this.dialogApplicationsTitle = this.rb.getMessage("sos.settings.dialog.dialog_applications_title"); /* Titel fr neue Applikation */ this.dialogApplicationsNewTitle = this.rb.getMessage("sos.settings.dialog.dialog_applications_new_title"); /* Titel fr Export einer Applikation */ this.dialogApplicationsExportTitle = this.rb .getMessage("sos.settings.dialog.dialog_applications_export_title"); /* Titel der Liste aller Sektionen */ this.dialogSectionsTitle = this.rb.getMessage("sos.settings.dialog.dialog_sections_title"); /* Titel fr neue Sektion */ this.dialogSectionsNewTitle = this.rb.getMessage("sos.settings.dialog.dialog_sections_new_title"); /* Titel fr Export einer Sektion */ this.dialogSectionsExportTitle = this.rb.getMessage("sos.settings.dialog.dialog_sections_export_title"); /* Titel fr neue Zhler-Sektion */ this.dialogSectionsCounterTitle = this.rb.getMessage("sos.settings.dialog.dialog_sections_counter_title"); /* Titel fr neue Schema-Sektion */ this.dialogSectionsSchemaTitle = this.rb.getMessage("sos.settings.dialog.dialog_sections_schema_title"); /* Titel der Liste aller Eintrge */ this.dialogEntriesTitle = this.rb.getMessage("sos.settings.dialog.dialog_entries_title"); /* Titel fr neuen Eintrag */ this.dialogEntriesNewTitle = this.rb.getMessage("sos.settings.dialog.dialog_entries_new_title"); } /** * @throws Exception */ private void setDefaultLanguage() throws Exception { this.rb = new SOSResourceBundle(); this.rb.setBundle(this.bundleName, this.locale); this.sosLang = this.locale.getLanguage().toLowerCase(); SOSDate.locale = this.locale; } /** * @param locale * The locale to set. */ public void setLocale(Locale locale) throws Exception { if (locale != null) { this.locale = locale; } if (this.rb == null) { this.rb = new SOSResourceBundle(); } this.rb.setBundle(this.bundleName, this.locale); SOSDate.locale = this.locale; this.sosLang = this.locale.getLanguage().toLowerCase(); } /** * @param locale * The locale to set. */ public void setLanguage(String language) throws Exception { if (language != null && language.length() != 0) { if (language.equalsIgnoreCase("en")) { this.locale = Locale.UK; } else if (language.equalsIgnoreCase("de")) { this.locale = Locale.GERMANY; } } if (this.locale == null) { this.locale = Locale.UK; } if (this.rb == null) { this.rb = new SOSResourceBundle(); } this.rb.setBundle(this.bundleName, this.locale); SOSDate.locale = this.locale; this.sosLang = this.locale.getLanguage().toLowerCase(); } /** * Aktionssteuerung * * @throws Exception * @see #switchAction(String, String, String) */ public void switchAction() throws Exception { this.switchAction(null, null, null); } /** * Aktionssteuerung * * @throws Exception * @see #switchAction(String, String, String) */ public void switchAction(String action, String range) throws Exception { this.switchAction(action, range, null); } /** * Aktionssteuerung * * @param action * Aktion * @param range * Bereich der Aktion * @param item * Transaktion * @throws Exception * @see #switchAction(String, String, String) */ public void switchAction(String action, String range, String item) throws Exception { this.sessionUseTransSID = this.request.isRequestedSessionIdFromCookie(); if (this.session != null) { this.sessionID = this.session.getId(); } this.setFeaturesLabels(); if (action != null) { this.action = action; } if (range != null) { this.range = range; } if (item != null) { this.item = item; } this.checkRequest(); String switchAction = this.action.toLowerCase() + "_" + this.range.toLowerCase(); if (switchAction.equals("download_source")) { this.downloadSource(this.settings.application, this.settings.section, this.getRequestValue("download_entry")); } System.out.println("action = " + this.action + " range = " + this.range); this.debug(3, "switchAction : action = " + this.action + " range = " + this.range + " item = " + item); this.debug(3, "switchAction : application = " + this.settings.application + " section = " + this.settings.section + " entry = " + this.settings.entry); // Begin Aktionssteuerung if (switchAction.equals("show_applications")) { this.setDialogApplications(false); this.showDialogHeader(null); this.showDialogApplications(null, null); } else if (switchAction.equals("show_application")) { this.showDialogHeader(null); this.settings.section = this.settings.application; this.settings.entry = this.settings.application; this.setDialogApplications(false); if (this.recordGetKey(true)) { this.showDialogApplication(); } else { this.showDialogApplications(null, null); } } else if (switchAction.equals("new_application")) { this.showDialogHeader(null); this.isNew = true; this.dialogApplicationIndex = new Integer(-1); this.setDialogApplications(false); if (this.recordCreate()) { this.showDialogApplication(); } else { this.showDialogApplications(null, null); } } else if (switchAction.equals("insert_application")) { this.showDialogHeader(null); this.isNew = true; if (this.recordInsert()) { this.settings.application = this.record.get("application").toString(); if (this.setDialogApplications(true)) { this.setDialogSections(); this.showDialogSections(null, null); } } else { this.showDialogApplication(); //this.setDialogApplications(false); //this.showDialogApplications(null, null); } } else if (switchAction.equals("store_application")) { this.showDialogHeader(null); if (this.recordStore()) { this.settings.application = this.record.get("application").toString(); this.settings.section = this.record.get("section").toString(); this.setDialogApplications(true); this.setDialogSections(); this.showDialogSections(null, null); } else { this.setDialogApplications(false); this.showDialogApplications(null, null); } } else if (switchAction.equals("delete_application")) { this.showDialogHeader(null); this.recordDeleteKey(); this.setDialogApplications(true); if (this.enableApplicationNavigation) { this.settings.application = ""; this.settings.section = ""; this.settings.entry = ""; this.showDialogApplications(null, null); } else { this.isNew = true; this.dialogApplicationIndex = new Integer(-1); if (this.recordCreate()) { this.showDialogApplication(); } else { this.showDialogApplications(null, null); } } } else if (switchAction.equals("show_sections")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.showDialogSections(null, null); } else if (switchAction.equals("show_section")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.settings.entry = this.settings.section; if (this.recordGetKey(true)) { this.showDialogApplication(); } else { //this.setDialogSections(); this.showDialogSections(null, null); } } else if (switchAction.equals("new_section")) { this.showDialogHeader(null); this.isNew = true; this.setDialogApplications(false); this.setDialogSections(); if (this.recordCreate()) { this.showDialogApplication(); } else { this.showDialogSections(null, null); } } else if (switchAction.equals("insert_section")) { this.showDialogHeader(null); this.isNew = true; this.setDialogApplications(false); this.recordInsert(); this.setDialogSections(); this.showDialogSections(null, null); } else if (switchAction.equals("store_section")) { this.showDialogHeader(null); this.recordStore(); this.setDialogApplications(false); this.setDialogSections(); this.showDialogSections(null, null); } else if (switchAction.equals("delete_section")) { this.showDialogHeader(null); this.recordDeleteKey(); this.setDialogApplications(false); this.setDialogSections(); this.showDialogSections(null, null); } else if (switchAction.equals("schema_section")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.recordGetKey(true)) { this.recordStore(); } else { this.resetError(); this.isNew = true; if (this.recordInsert()) { this.isNew = false; } } this.showDialogEntry(1, 1); } else if (switchAction.equals("store_list")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); //this.setDialogEntries(); this.recordStoreList(); this.setDialogEntries(); this.showDialogEntries(null, null); /* if (this.error()) { this.showDialogEntries(null, null); } */ } else if (switchAction.equals("show_entries")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); this.showDialogEntries(null, null); } else if (switchAction.equals("show_entry")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.recordGetKey(true)) { this.showDialogEntry(0, 0); } else { this.showDialogEntries(null, null); } } else if (switchAction.equals("schema_entry")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.recordGetKey(true)) { this.showDialogEntry(1, 0); } else { this.showDialogEntries(null, null); } } else if (switchAction.equals("new_entry")) { this.showDialogHeader(null); this.isNew = true; this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.recordCreate()) { this.showDialogEntry(1, 0); } else { this.showDialogEntries(null, null); } } else if (switchAction.equals("insert_entry")) { this.showDialogHeader(null); this.isNew = true; this.recordInsert(); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); this.showDialogEntries(null, null); } else if (switchAction.equals("store_entry")) { this.showDialogHeader(null); this.recordStore(); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); this.showDialogEntries(null, null); } else if (switchAction.equals("delete_entry")) { this.showDialogHeader(null); this.recordDeleteKey(); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); this.showDialogEntries(null, null); } else if (switchAction.equals("query_entries")) { this.showDialogHeader(null); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.queryEntries(this.inputQuery, 0, this.replaceQuery) != 0) { this.showDialogEntries(null, null); } else { if (!this.settings.section.equals("")) { this.showDialogEntries(null, null); } else if (!this.settings.application.equals("")) { this.showDialogSections(null, null); } else { this.showDialogApplications(null, null); } this.setError(" " + this.rb.getMessage("sos.settings.dialog.err_not_found_entries"), null); } } else if (switchAction.equals("duplicate_entries")) { this.showDialogHeader(null); inputQuery = ""; if (this.getRequestValue("name") != null) { inputQuery = this.getRequestValue("name").trim(); } //this.setDialogApplications(true); this.setDialogApplications(false); this.setDialogSections(); this.setDialogEntries(); if (this.queryEntries(inputQuery, 1, null) != 0) { this.showDialogEntries(null, null); } else { if (!this.settings.section.equals("")) { this.showDialogEntries(null, null); } else if (!this.settings.application.equals("")) { this.showDialogSections(null, null); } else { this.showDialogApplications(null, null); } this.setError(" " + this.rb.getMessage("sos.settings.dialog.err_not_found_entries"), null); } } else if (switchAction.equals("export_entries")) { this.exportEntries(this.inputExport, null); } else if (switchAction.equals("import_entries")) { String error = ""; this.importEntries(this.inputImport, null); if (this.error()) { error = this.getError(); } this.setDialogApplications(true); this.showDialogHeader(null); this.showDialogApplications(null, null); if (error.equals("")) { this.showMsg(" " + this.rb.getMessage("sos.settings.dialog.msg_import")); } } else if (switchAction.equals("show_help")) { this.showHelp(); } else if (switchAction.equals("show_helps")) { this.showHelps(); } else if (switchAction.equals("show_documentation")) { this.showDocumentation(); } else { this.showDialogHeader(null); this.setDialogApplications(false); this.showDialogApplications(null, null); } // Ende Aktionssteuerung this.destroy(); if (this.msg != null && this.msg.length() > 0) { this.showMsg(this.msg); this.msg = ""; } if (this.error()) { this.showError(this.getError()); this.resetError(); } } /** * Eintrge im Profil suchen * * @param query * Suchstring * @param range * @param replaceQuery Replacement * @return int Grsse der dialogEntries * @throws Exception * @see #queryEntries(String, int) */ private int queryEntries(String query, int range, String replaceQuery) throws Exception { boolean isReplaceQuery = this.item.equals("replace") ? true : false; if (replaceQuery == null) { replaceQuery = ""; } this.dialogEntryIndex = new Integer(-1); this.dialogEntries = new Vector(); StringBuffer sqlStmt = new StringBuffer("select * from " + this.settings.source + " ") .append(" where (\"" + this.settings.entryApplication + "\" <> \"" + this.settings.entrySection + "\" and ") .append(" \"" + this.settings.entrySection + "\" <> \"" + this.settings.entryName + "\" and ") .append(" \"" + this.settings.entrySection + "\" <> '" + this.settings.entrySchemaSection + "')"); if (range == 0) { if (!this.settings.application.equals("")) { sqlStmt.append( " and \"" + this.settings.entryApplication + "\" ='" + this.settings.application + "'"); } if (!this.settings.section.equals("")) { sqlStmt.append(" and \"" + this.settings.entrySection + "\" ='" + this.settings.section + "'"); } if (!query.equals("")) { if (isReplaceQuery) { } else { sqlStmt.append(" and ( %lcase(\"" + this.settings.entryName + "\") like '%" + query.toLowerCase() + "%'") .append(" or %lcase(\"" + this.settings.entrySection + "\") like '%" + query.toLowerCase() + "%'") .append(" or %lcase(\"" + this.settings.entryValue + "\") like '%" + query.toLowerCase() + "%'") .append(" or %lcase(\"" + this.settings.entryTitle + "\") like '%" + query.toLowerCase() + "%' )"); } } } else if (!query.equals("")) { if (isReplaceQuery) { } else { sqlStmt.append( " and %lcase(\"" + this.settings.entryName + "\") like '" + query.toLowerCase() + "%'"); } } sqlStmt.append(" order by \"" + this.settings.entryApplication + "\",\"" + this.settings.entrySection + "\",\"" + this.settings.entryName + "\""); this.debug(3, "queryEntries: " + sqlStmt.toString()); try { if (isReplaceQuery && query.length() > 0) { this.dialogEntries = new Vector(); Vector dialog_entries = this.connection.getArrayAsVector(sqlStmt.toString()); int j = 0; for (int i = 0; i < dialog_entries.size(); i++) { HashMap hm = new HashMap(); hm = (HashMap) dialog_entries.get(i); String value = hm.get("value").toString(); Pattern p = Pattern.compile(query); Matcher matcher = p.matcher(value); if (matcher.find()) { if (replaceQuery.length() > 0) { hm.put("value", value.replaceAll(query, replaceQuery)); } this.dialogEntries.add(j, hm); j++; } } } else { this.dialogEntries = this.connection.getArrayAsVector(sqlStmt.toString()); } return this.dialogEntries.size(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return 0; } } /** * Datensatz entfernen * * @return boolean Fehlerzustand * @throws Exception */ private boolean recordDeleteKey() throws Exception { this.debug(3, "record_delete_key"); try { this.connection.execute("delete from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); if (this.range.equals("application")) { try { this.connection.execute("delete from " + this.settings.source + " where \"" + this.settings.entryApplication + "\"=" + this.dbQuoted(this.settings.application)); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } else if (this.range.equals("section")) { try { this.connection.execute("delete from " + this.settings.source + " where \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application)); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } else { if (this.applicationType > 0) { try { Vector results = this.connection.getArrayAsVector("select \"SECTION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\"= " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" <> '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = \"" + this.settings.entrySection + "\" and \"" + this.settings.entryName + "\" <> \"" + this.settings.entryApplication + "\""); for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); try { this.connection.execute("delete from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); } catch (Exception e) { //this.setError(e.getMessage(),SOSClassUtil.getMethodName()); break; } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } if (this.error()) { this.connection.rollback(); return false; } else { this.connection.commit(); } return true; } /** * Record vorbereiten * */ private void createRecord() throws Exception { this.debug(3, "createRecord"); this.record = new HashMap(); Date date = new Date(); this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.settings.section); this.record.put(this.settings.entryName.toLowerCase(), this.settings.entry); this.record.put("value", ""); this.record.put("default_value", ""); this.record.put("documentation", ""); this.record.put("long_value", ""); this.record.put("title", ""); this.record.put("input_type", ""); this.record.put("input_size", ""); this.record.put("display_type", ""); this.record.put("display_size", ""); this.record.put("forced", ""); this.record.put("created", this.dateFormat.format(date)); this.record.put("created_by", this.settings.author); this.record.put("modified", this.dateFormat.format(date)); this.record.put("modified_by", this.settings.author); this.record.put("entry_type", ""); } /** * Datensatz einfgen * * @return boolean Fehlerzustand * @throws Exception */ private boolean recordInsert() throws Exception { this.debug(3, "record_insert"); // document binary boolean enableUploadFile = false; byte[] backUpLongValue = null; this.createRecord(); Iterator it = this.record.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String param = entry.getKey().toString(); String value = entry.getValue().toString(); if (this.getRequestValue(param) != null) { if (param.equals("application") || param.equals("section") || param.equals("name")) { if (this.getIgnoreCase()) { this.record.put(param, this.getRequestValue(param).trim()); } else { this.record.put(param, this.getRequestValue(param).trim().toLowerCase()); } } else { this.record.put(param, this.getRequestValue(param).trim()); } } } boolean isSaveAs = false; this.record.put("original_name", ""); String origName = this.getRequestValue("original_name"); if (origName != null && origName.trim().length() > 0) { this.record.put("original_name", origName.trim()); isSaveAs = true; } HashMap backupRecord = (HashMap) this.record.clone(); int entryType = 0; try { entryType = Integer.parseInt(this.record.get("entry_type").toString()); } catch (Exception e) { this.record.put("entry_type", "0"); } try { Integer.parseInt(this.record.get("input_type").toString()); } catch (Exception e) { this.record.put("input_type", "0"); } try { if (Integer.parseInt(this.record.get("input_size").toString()) <= 0) { this.record.put("input_size", this.defaultInputSize); } } catch (Exception e) { this.record.put("input_size", this.defaultInputSize); } try { Integer.parseInt(this.record.get("display_type").toString()); } catch (Exception e) { this.record.put("display_type", "0"); } try { if (Integer.parseInt(this.record.get("display_size").toString()) <= 0) { this.record.put("display_size", this.defaultDisplaySize); } } catch (Exception e) { this.record.put("display_size", this.defaultDisplaySize); } StringBuffer sqlStmt = null; if (this.range.equalsIgnoreCase("application")) { this.record.put(this.settings.entryApplication.toLowerCase(), this.record.get("name").toString()); this.record.put(this.settings.entrySection.toLowerCase(), this.record.get("name").toString()); try { int forced = Integer.parseInt(this.record.get("forced").toString()); if (forced != 1 && forced != -1) { this.record.put("forced", "0"); } } catch (Exception e) { this.record.put("forced", "0"); } boolean isInserted = false; /* !!!!!!!!!!!schema ist nicht bercksichtigt try{ String count = this.connection.getSingleValue("select count(\"APPLICATION\") from "+this.settings.source+" where \"APPLICATION\" = "+this.dbQuoted(this.record.get("name").toString())+" and \"SECTION\" = \"APPLICATION\" and \"NAME\" = \"APPLICATION\""); if(!count.equals("0")){ this.setError(this.rb.getMessage("sos.settings.dialog.err_available_application"), SOSClassUtil.getMethodName()); return false; } } catch(Exception e){ this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } */ if (entryType == 1) { sqlStmt = new StringBuffer(" insert into " + this.settings.source + "(\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") ") .append(" values (" + this.dbQuoted(this.record.get("name").toString()) + ",'" + this.settings.entrySchemaSection + "','" + this.settings.entrySchemaSection + "',0,'" + this.dialogSectionsSchemaTitle + "', 1, 0, 0, 10, 0, 0, %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sqlStmt.toString()); isInserted = true; } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { if (!this.settings.application.equals("")) { sqlStmt = new StringBuffer( "select \"SECTION\",\"NAME\", \"VALUE\", \"TITLE\", \"DEFAULT_VALUE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\" from " + this.settings.source + " ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application)); try { Vector results = this.connection.getArrayAsVector(sqlStmt.toString()); for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); if (isInserted && result.get("section").toString().equals(this.settings.entrySchemaSection) && result.get("name").toString().equals(this.settings.entrySchemaSection)) { continue; } StringBuffer sql = new StringBuffer("insert into " + this.settings.source + " (\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"DEFAULT_VALUE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") "); String i_s = ""; String e_v = ""; String d_v = ""; if (result.get("input_size").toString().equals("")) { i_s = "NULL"; } else { i_s = result.get("input_size").toString(); } if (result.get("value").toString().equals("")) { e_v = "NULL"; } else { e_v = this.dbQuoted(result.get("value").toString()); } if (result.get("default_value").toString().equals("")) { d_v = "NULL"; } else { d_v = this.dbQuoted(result.get("default_value").toString()); } sql.append("values (" + this.dbQuoted(this.record.get("name").toString()) + "," + this.dbQuoted(result.get("section").toString()) + ", " + this.dbQuoted(result.get("name").toString()) + ", " + e_v + ", " + this.dbQuoted(result.get("title").toString()) + ", " + d_v + ", " + result.get("input_type").toString() + ", " + i_s + ", ") .append(result.get("display_type").toString() + ", " + result.get("display_size").toString() + ", " + result.get("forced").toString() + ", " + result.get("entry_type").toString() + ", %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sql.toString()); byte[] longValue = this.connection.getBlob("select \"LONG_VALUE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString()) + " "); if (longValue != null && longValue.length != 0) { this.connection.updateBlob(this.settings.source, "LONG_VALUE", longValue, " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString()) + " "); } byte[] documentation = this.connection.getBlob("select \"DOCUMENTATION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString()) + " "); if (documentation != null && documentation.length != 0) { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", documentation, " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString()) + " "); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } // Enumeration String sqlDel = " delete from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.application); try { this.connection.execute(sqlDel); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } else if (this.range.equalsIgnoreCase("section")) { this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.record.get("name").toString()); try { int forced = Integer.parseInt(this.record.get("forced").toString()); if (forced != 1 && forced != -1) { this.record.put("forced", "0"); } } catch (Exception e) { this.record.put("forced", "0"); } if (entryType == 1) { sqlStmt = new StringBuffer(" insert into " + this.settings.source + " (\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") ") .append(" values ('" + this.settings.entryCounterApplication + "','" + this.settings.entryCounterSection + "','" + (this.settings.source + "." + this.record.get("name").toString()) .toLowerCase() + "',0,'" + this.dialogSectionsCounterTitle + " " + this.record.get("name").toString() + "', 1, 0, 0, 10, 0, 0, %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { String entryValue = "value"; boolean ok = (!this.settings.section.equals("")); // .. // Speichern // unter if (!ok) { ok = (this.applicationType > 0); // bernahme aus einer // Schema-Sektion if (ok) { this.settings.section = this.settings.entrySchemaSection; entryValue = "default_value"; } } if (ok) { sqlStmt = new StringBuffer( " select \"NAME\", \"VALUE\", \"TITLE\", \"DEFAULT_VALUE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\" from " + this.settings.source + " ") .append(" where \"" + this.settings.entryApplication + "\"=" + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\"=" + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entrySection + "\"<>\"" + this.settings.entryName + "\""); try { Vector results = this.connection.getArrayAsVector(sqlStmt.toString()); if (results.size() > 0) { for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); sqlStmt = new StringBuffer(" insert into " + this.settings.source + " (\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"DEFAULT_VALUE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") "); String i_s = ""; String e_v = ""; String d_v = ""; if (result.get("input_size").toString().equals("")) { i_s = "NULL"; } else { i_s = result.get("input_size").toString(); } if (result.get(entryValue).toString().equals("")) { e_v = "NULL"; } else { e_v = this.dbQuoted(result.get(entryValue).toString()); } if (result.get("default_value").toString().equals("")) { d_v = "NULL"; } else { d_v = this.dbQuoted(result.get("default_value").toString()); } String db_application = (this.getIgnoreCase()) ? this.settings.application : this.settings.application.toLowerCase(); String db_name = (this.getIgnoreCase()) ? result.get("name").toString() : result.get("name").toString().toLowerCase(); sqlStmt.append(" values (" + this.dbQuoted(db_application) + "," + this.dbQuoted(this.record.get("name").toString()) + "," + this.dbQuoted(db_name) + ", " + e_v + ", " + this.dbQuoted(result.get("title").toString()) + "," + d_v + "," + result.get("input_type").toString() + "," + i_s + ", ") .append(result.get("display_type").toString() + ", " + result.get("display_size").toString() + ", " + result.get("forced").toString() + ", " + result.get("entry_type").toString() + ", %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sqlStmt.toString()); byte[] longValue = this.connection.getBlob("select \"LONG_VALUE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString())); if (longValue != null && longValue.length != 0) { this.connection.updateBlob(this.settings.source, "LONG_VALUE", longValue, " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString())); } byte[] documentation = this.connection.getBlob("select \"DOCUMENTATION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString())); if (documentation != null && documentation.length != 0) { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", documentation, " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(result.get("name").toString())); } } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } else { this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.settings.section); String inputType = this.record.get("input_type").toString(); String displayType = this.record.get("display_type").toString(); if (inputType.equals("5")) {// Dokument if (displayType.equals("4")) {// Vestreckt . Behandlung wie bei case 6 this.record.put("input_size", ""); this.record.put("display_type", "4"); // Hidden this.record.put("value", ""); if (this.item.equals("upload")) { if (this.inputImport != null && this.inputImport.length() > 0 && this.importOriginalFileName != null && this.importOriginalFileName.length() > 0) { backupRecord.put("long_value", this.inputImport); //this.record.put("default_value",this.importOriginalFileName); enableUploadFile = true; } else { return false; } } } else {// Textarea this.record.put("input_size", ""); this.record.put("display_type", "3"); // Textarea if (this.record.get("value").toString().trim().length() > 0) { if (this.record.get("name").toString().trim().length() > 0) { backupRecord.put("long_value", this.record.get("value").toString()); } } this.record.put("value", ""); } } else if (inputType.equals("6")) {// Dokument binr this.record.put("input_size", ""); this.record.put("display_type", "4"); // Hidden this.record.put("value", ""); if (this.item.equals("upload")) { if (this.inputImport != null && this.inputImport.length() > 0 && this.importOriginalFileName != null && this.importOriginalFileName.length() > 0) { backupRecord.put("long_value", this.inputImport); //this.record.put("default_value",this.importOriginalFileName); enableUploadFile = true; } else { return false; } } } if (isSaveAs && !enableUploadFile) { if (inputType.equals("5") || inputType.equals("6")) { backUpLongValue = this.connection.getBlob("select \"LONG_VALUE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("application").toString()) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.record.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.record.get("original_name").toString())); if (backUpLongValue != null && backUpLongValue.length > 0) { //backupRecord.put("long_value",backUpLongValue); } else { backupRecord.put("long_value", ""); } } } ////////////////////////// if (this.applicationType > 0) { try { Vector results = this.connection.getArrayAsVector(" select \"SECTION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("application").toString()) + " and \"" + this.settings.entrySection + "\" <> '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = \"" + this.settings.entrySection + "\" and \"" + this.settings.entryName + "\" <> \"" + this.settings.entryApplication + "\""); if (results.size() > 0) { for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); String i_s = ""; String d_v = ""; String e_v = ""; if (this.record.get("input_size").toString().equals("")) { i_s = "NULL"; } else { i_s = this.record.get("input_size").toString(); } if (this.record.get("default_value").toString().equals("")) { d_v = "NULL"; } else { d_v = this.dbQuoted(this.record.get("default_value").toString()); } String input_type = this.record.get("input_type").toString(); if (input_type.equals("5") || input_type.equals("6")) { // dokument oder dokument binr e_v = "NULL"; } else { e_v = d_v; } String db_application = (this.getIgnoreCase()) ? this.record.get("application").toString() : this.record.get("application").toString().toLowerCase(); String db_section = (this.getIgnoreCase()) ? result.get("section").toString() : result.get("section").toString().toLowerCase(); String db_name = (this.getIgnoreCase()) ? this.record.get("name").toString() : this.record.get("name").toString().toLowerCase(); sqlStmt = new StringBuffer(" insert into " + this.settings.source + " (\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"DEFAULT_VALUE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") ") .append(" values ( " + this.dbQuoted(db_application) + "," + this.dbQuoted(db_section) + ", " + this.dbQuoted(db_name) + "," + e_v + ", " + this.dbQuoted(this.record.get("title").toString()) + ", " + d_v + "," + this.record.get("input_type").toString() + ", " + i_s + ", " + this.record.get("display_type").toString() + ", " + this.record.get("display_size").toString() + "," + this.record.get("forced").toString() + ", " + this.record.get("entry_type").toString() + ", %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { if (this.sectionType > 0) { try { int sequence = this.settings.getSequence(this.settings.entryCounterApplication, this.settings.entryCounterSection, (this.settings.source + "." + this.settings.section).toLowerCase()); this.record.put(this.settings.entryName.toLowerCase(), new Integer(sequence)); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } this.record.put("forced", "0"); if (this.error()) { return false; } } } } Date date = new Date(); this.record.put("created", this.dateFormat.format(date)); this.record.put("created_by", this.settings.author); this.record.put("modified", this.dateFormat.format(date)); this.record.put("modified_by", this.settings.author); //backupRecord.put("documentation",this.record.get("documentation").toString()); //this.record.put("documentation",""); // insert(); // Kommt aus dem FKC Editor if (this.getRequestValue(this.editorName) != null) { this.record.put("documentation", ""); backupRecord.put("documentation", ""); String editorValue = this.getRequestValue(this.editorName).trim(); if (!editorValue.equals("")) { // \z - endet damit String copy = editorValue.toLowerCase(); //String pattern = "^(<p>( )+[\\s]*</p>[\\s]*)+\\z"; String pattern = "^(<p>( )*((<[a-zA-Z]*>)*(</[a-zA-Z]*>)*)*[\\s]*</p>[\\s]*)+\\z"; Pattern p = Pattern.compile(pattern); Matcher matcher = p.matcher(copy); if (!matcher.find()) { this.record.put("documentation", editorValue); backupRecord.put("documentation", editorValue); } } } if (!this.error()) { String value = ""; String defaultValue = ""; String inputSize = ""; if (this.record.get("value").toString().equals("")) { value = "NULL"; } else { value = this.dbQuoted(this.record.get("value").toString()); } if (this.record.get("default_value").toString().equals("")) { defaultValue = "NULL"; } else { defaultValue = this.dbQuoted(this.record.get("default_value").toString()); } if (this.record.get("input_size").toString().equals("")) { inputSize = "NULL"; } else { inputSize = this.record.get("input_size").toString(); } String db_application = (this.getIgnoreCase()) ? this.record.get("application").toString() : this.record.get("application").toString().toLowerCase(); String db_section = (this.getIgnoreCase()) ? this.record.get("section").toString() : this.record.get("section").toString().toLowerCase(); String db_name = (this.getIgnoreCase()) ? this.record.get("name").toString() : this.record.get("name").toString().toLowerCase(); String created = this.record.get("created").toString(); if (created.length() > 19) { created = created.substring(0, 19); } String modified = this.record.get("modified").toString(); if (modified.length() > 19) { modified = modified.substring(0, 19); } sqlStmt = new StringBuffer("insert into " + this.settings.source + " ") .append("(\"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DEFAULT_VALUE\",\"TITLE\",") .append("\"INPUT_TYPE\",\"INPUT_SIZE\",\"DISPLAY_TYPE\",\"DISPLAY_SIZE\",\"FORCED\",") .append("\"ENTRY_TYPE\",\"CREATED\",\"CREATED_BY\",\"MODIFIED\",\"MODIFIED_BY\")") .append(" values(" + this.dbQuoted(db_application) + "," + this.dbQuoted(db_section) + "," + this.dbQuoted(db_name) + "," + value + "," + defaultValue + "," + this.dbQuoted(this.record.get("title").toString()) + ",") .append(this.record.get("input_type").toString() + "," + inputSize + "," + this.record.get("display_type").toString() + "," + this.record.get("display_size").toString() + "," + this.record.get("forced").toString() + ",") .append(this.record.get("entry_type").toString() + ",%timestamp_iso('" + created + "'),'" + this.record.get("created_by").toString() + "',%timestamp_iso('" + modified + "'),'" + this.record.get("modified_by").toString() + "')"); try { this.connection.execute(sqlStmt.toString()); String documentation = backupRecord.get("documentation").toString(); byte[] longValue = null; if (backUpLongValue != null && backUpLongValue.length > 0) { longValue = backUpLongValue; } else { longValue = backupRecord.get("long_value").toString().getBytes(); } if (!documentation.trim().equals("")) { try { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", documentation.getBytes(), "\"APPLICATION\"=" + this.dbQuoted(this.record.get("application").toString()) + " and \"SECTION\" = " + this.dbQuoted(this.record.get("section").toString()) + " and \"NAME\" = " + this.dbQuoted(this.record.get("name").toString())); //this.record.put("documentation",documentation); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (longValue != null && longValue.length > 0) { try { if (enableUploadFile) { // document binary //this.connection.update_blob_from_file($this->source,'"LONG_VALUE"',$backup_record['long_value'],'where "'.$this->entry_application.'"=\''.$this->db->str_quoted($this->record['application']).'\' and "'.$this->entry_section.'" = \''.$this->db->str_quoted($this->record['section']).'\' and "'.$this->entry_name.'" = \''.$this->db->str_quoted($this->record['name']).'\''); //update from file this.connection.updateBlob(this.settings.source, "LONG_VALUE", backupRecord.get("long_value").toString(), "\"APPLICATION\"=" + this.dbQuoted(this.record.get("application").toString()) + " and \"SECTION\" = " + this.dbQuoted(this.record.get("section").toString()) + " and \"NAME\" = " + this.dbQuoted(this.record.get("name").toString())); } else { // document this.connection.updateBlob(this.settings.source, "LONG_VALUE", longValue, "\"APPLICATION\"=" + this.dbQuoted(this.record.get("application").toString()) + " and \"SECTION\" = " + this.dbQuoted(this.record.get("section").toString()) + " and \"NAME\" = " + this.dbQuoted(this.record.get("name").toString())); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } if (this.error()) { this.connection.rollback(); this.record = backupRecord; return false; } else { this.connection.commit(); } } else { return false; } this.msg = this.rb.getMessage("sos.settings.dialog.msg_store"); return true; } /** * Datensatz speichern * * @return boolean Fehlerzustand * @throws Exception */ private boolean recordStore() throws Exception { this.debug(3, "recordStore"); StringBuffer sqlStmt = null; sqlStmt = new StringBuffer("select ") .append("\"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DEFAULT_VALUE\",\"TITLE\",") .append("\"INPUT_TYPE\",\"INPUT_SIZE\",\"DISPLAY_TYPE\",\"DISPLAY_SIZE\",\"FORCED\",") .append("\"ENTRY_TYPE\",\"CREATED\",\"CREATED_BY\",\"MODIFIED\",\"MODIFIED_BY\" ") .append(" from " + this.settings.source + " ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); try { this.record = this.connection.getSingle(sqlStmt.toString()); sqlStmt = new StringBuffer("select \"DOCUMENTATION\"").append(" from " + this.settings.source + " ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); try { byte[] documentation = this.connection.getBlob(sqlStmt.toString()); if (documentation != null) { this.record.put("documentation", new String(documentation)); } else { this.record.put("documentation", ""); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } if (this.error()) { return false; } Iterator it = this.record.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); String param = entry.getKey().toString(); String value = entry.getValue().toString(); if (this.getRequestValue(param) != null) { if (param.equals("application") || param.equals("section") || param.equals("name")) { if (this.getIgnoreCase()) { this.record.put(param, this.getRequestValue(param).trim()); } else { this.record.put(param, this.getRequestValue(param).trim().toLowerCase()); } } else { this.record.put(param, this.getRequestValue(param).trim()); } } } // Kommt aus dem FKC Editor if (this.getRequestValue(this.editorName) != null) { this.record.put("documentation", ""); String editorValue = this.getRequestValue(this.editorName).trim(); if (!editorValue.equals("")) { // \z - endet damit String copy = editorValue.toLowerCase(); //String pattern = "^(<p>( )+[\\s]*</p>[\\s]*)+\\z"; String pattern = "^(<p>( )*((<[a-zA-Z]*>)*(</[a-zA-Z]*>)*)*[\\s]*</p>[\\s]*)+\\z"; Pattern p = Pattern.compile(pattern); Matcher matcher = p.matcher(copy); if (!matcher.find()) { this.record.put("documentation", editorValue); } } } HashMap backupRecord = (HashMap) this.record.clone(); int entryType = 0; try { entryType = Integer.parseInt(this.record.get("entry_type").toString()); } catch (Exception e) { this.record.put("entry_type", "0"); } try { Integer.parseInt(this.record.get("input_type").toString()); } catch (Exception e) { this.record.put("input_type", "0"); } try { if (Integer.parseInt(this.record.get("input_size").toString()) <= 0) { this.record.put("input_size", this.defaultInputSize); } } catch (Exception e) { this.record.put("input_size", this.defaultInputSize); } try { Integer.parseInt(this.record.get("display_type").toString()); } catch (Exception e) { this.record.put("display_type", "0"); } try { if (Integer.parseInt(this.record.get("display_size").toString()) <= 0) { this.record.put("display_size", this.defaultDisplaySize); } } catch (Exception e) { this.record.put("display_size", this.defaultDisplaySize); } boolean isDocumentationUpdated = false; boolean emptyLongValue = false; if (this.range.equalsIgnoreCase("application")) { this.record.put(this.settings.entryApplication.toLowerCase(), this.record.get("name").toString()); this.record.put(this.settings.entrySection.toLowerCase(), this.record.get("name").toString()); try { int forced = Integer.parseInt(this.record.get("forced").toString()); if (forced != 1 && forced != -1) { this.record.put("forced", "0"); } } catch (Exception e) { this.record.put("forced", "0"); } String recordDocumentation = this.record.get("documentation").toString(); backupRecord.put("documentation", ""); if (!recordDocumentation.trim().equals("")) { if (!this.record.get("name").toString().equals("")) { try { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", recordDocumentation.getBytes(), "\"APPLICATION\"=" + this.dbQuoted(this.settings.application) + " and \"SECTION\" = " + this.dbQuoted(this.settings.section) + " and \"NAME\" = " + this.dbQuoted(this.record.get("name").toString())); backupRecord.put("documentation", recordDocumentation); //this.record.remove("documentation"); // wegen BLOB // beim this->db->update($this->record) isDocumentationUpdated = true; } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } if (!this.error()) { if (this.record.get("entry_type").toString().equals("1")) { try { String hasSchema = this.connection.getSingleValue("select count(*) from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = '" + this.settings.entrySchemaSection + "'"); if (hasSchema.equals("") || hasSchema.equals("0")) { sqlStmt = new StringBuffer("insert into " + this.settings.source + " (\"APPLICATION\", \"SECTION\", \"NAME\", \"VALUE\", \"TITLE\", \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"CREATED\", \"CREATED_BY\", \"MODIFIED\", \"MODIFIED_BY\") ") .append(" values (" + this.dbQuoted(this.record.get("name").toString()) + ",'" + this.settings.entrySchemaSection + "','" + this.settings.entrySchemaSection + "',0,'" + this.dialogSectionsSchemaTitle + "', 1, 0, 0, 10, 0, 0, %now, '" + this.settings.author + "', %now, '" + this.settings.author + "')"); try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { // break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { sqlStmt = new StringBuffer("update " + this.settings.source + " set \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application)); } } } else if (this.range.equalsIgnoreCase("section")) { this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.record.get("name").toString()); try { int forced = Integer.parseInt(this.record.get("forced").toString()); if (forced != 1 && forced != -1) { this.record.put("forced", "0"); } } catch (Exception e) { this.record.put("forced", "0"); } String recordDocumentation = this.record.get("documentation").toString(); backupRecord.put("documentation", ""); if (!recordDocumentation.trim().equals("")) { if (!this.record.get("name").toString().equals("")) { try { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", recordDocumentation.getBytes(), "\"APPLICATION\"=" + this.dbQuoted(this.settings.application) + " and \"SECTION\" = " + this.dbQuoted(this.settings.section) + " and \"NAME\" = " + this.dbQuoted(this.settings.entry)); backupRecord.put("documentation", recordDocumentation); //this.record.remove("documentation"); // wegen BLOB // beim this->db->update($this->record) isDocumentationUpdated = true; } catch (Exception e) { //break(); this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } if (!this.error()) { if (this.record.get("entry_type").toString().equals("1")) { sqlStmt = new StringBuffer("update " + this.settings.source + " set \"INPUT_TYPE\" = " + this.record.get("input_type").toString() + ", \"INPUT_SIZE\" = " + this.record.get("input_size").toString() + ", \"DISPLAY_TYPE\" = " + this.record.get("display_type").toString() + ", \"DISPLAY_SIZE\" = " + this.record.get("display_size").toString() + ", \"FORCED\" = " + this.record.get("forced").toString() + ", \"ENTRY_TYPE\" = " + this.record.get("entry_type").toString() + ", \"DEFAULT_VALUE\" = " + this.dbQuoted(this.record.get("default_value").toString())) .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section)); try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { // break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { sqlStmt = new StringBuffer( "update " + this.settings.source + " set \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.record.get("name").toString()) + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section)); } } } // end section else { if (this.getRequestValue("binary_value") != null) { // checkbox binre inhalt leeren this.record.put("value", ""); emptyLongValue = true; } ////////////////////////////// String input_type = this.record.get("input_type").toString(); String display_type = this.record.get("display_type").toString(); if (input_type.equals("5")) { // Dokument if (display_type.equals("4")) {// Versteckt . Behandlung wie bei input_type = 6 this.record.put("value", ""); this.record.put("input_size", ""); this.record.put("display_type", "4"); // Hidden if (this.item.equals("upload")) { if (this.inputImport != null && this.inputImport.length() > 0 && this.importOriginalFileName != null && this.importOriginalFileName.length() > 0) { //this.record.put("default_value",this.importOriginalFileName); try { this.connection.updateBlob(this.settings.source, "LONG_VALUE", this.inputImport, "\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.record.get("name").toString())); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } else { return false; } } } // display_type = 4 else { // textarea this.record.put("input_size", ""); this.record.put("display_type", "3"); // Textarea if (this.record.get("value").toString().trim().length() > 0) { if (this.record.get("name").toString().length() > 0) { try { this.connection.updateBlob(this.settings.source, "LONG_VALUE", this.record.get("value").toString().getBytes(), "\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.record.get("name").toString())); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } } else { this.record.put("long_value", ""); emptyLongValue = true; } this.record.put("value", ""); } } // input_type = 5 else if (input_type.equals("6")) { // Dokument binr this.record.put("value", ""); this.record.put("input_size", ""); this.record.put("display_type", "4"); // Hidden if (this.item.equals("upload")) { if (this.inputImport != null && this.inputImport.length() > 0 && this.importOriginalFileName != null && this.importOriginalFileName.length() > 0) { //this.record.put("default_value",this.importOriginalFileName); try { this.connection.updateBlob(this.settings.source, "LONG_VALUE", this.inputImport, "\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.record.get("name").toString())); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } else { return false; } } } // input_type = 6 else { emptyLongValue = true; } ///////////////////////////////////// sqlStmt = new StringBuffer(""); this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.settings.section); String recordDocumentation = this.record.get("documentation").toString(); if (!recordDocumentation.trim().equals("")) { if (!this.record.get("name").toString().equals("")) { try { this.connection.updateBlob(this.settings.source, "DOCUMENTATION", recordDocumentation.getBytes(), "\"APPLICATION\"=" + this.dbQuoted(this.settings.application) + " and \"SECTION\" = " + this.dbQuoted(this.settings.section) + " and \"NAME\" = " + this.dbQuoted(this.settings.entry)); //this.record.remove("documentation"); // wegen BLOB // beim this->db->update($this->record) isDocumentationUpdated = true; } catch (Exception e) { //break(); this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } if (!this.error()) { if (this.applicationType > 0) { try { // wir sind nicht direkt in Schema, sondern in Sektions die Schema benutzen if (!this.settings.section.equals(this.settings.entrySchemaSection)) { // file_name aus schema if (display_type.equals("4") && (input_type.equals("5") || input_type.equals("6"))) { String sql_def_value = "select \"DEFAULT_VALUE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.record.get("name").toString()); String def_value = this.connection.getSingleValue(sql_def_value); this.record.put("default_value", def_value); } } Vector results = this.connection.getArrayAsVector(" select \"SECTION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" <> '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = \"" + this.settings.entrySection + "\" and \"" + this.settings.entryName + "\" <> \"" + this.settings.entryApplication + "\""); if (results.size() > 0) { for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); String sqlAdd = ""; String i_s = "NULL"; String input_size = this.record.get("input_size").toString(); if (input_type.equals("5") || input_type.equals("6")) { //document & document binary sqlAdd = ", \"DEFAULT_VALUE\" = " + this.dbQuoted(this.record.get("default_value").toString()); } else { sqlAdd = ", \"DEFAULT_VALUE\"= " + this.dbQuoted(this.record.get("default_value").toString()) + " "; sqlAdd += ", \"LONG_VALUE\" = NULL "; } if (input_size.length() > 0) { i_s = input_size; } sqlStmt = new StringBuffer(" update " + this.settings.source + " set \"NAME\" = " + this.dbQuoted(this.record.get("name").toString()) + ", \"TITLE\" = " + this.dbQuoted(this.record.get("title").toString()) + ", \"INPUT_TYPE\" = " + this.record.get("input_type").toString() + ", \"INPUT_SIZE\" = " + i_s + ", \"DISPLAY_TYPE\" = " + this.record.get("display_type").toString() + ", \"DISPLAY_SIZE\" = " + this.record.get("display_size").toString() + ", \"FORCED\" = " + this.record.get("forced").toString() + ", \"ENTRY_TYPE\" = " + this.record.get("entry_type").toString() + " " + sqlAdd + " ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" =" + this.dbQuoted(result.get("section").toString()) + " and \"" + this.settings.entryName + "\" =" + this.dbQuoted(this.settings.entry)); try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } catch (Exception e) { //break; this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } } Date date = new Date(); this.record.put("modified", this.dateFormat.format(date)); this.record.put("modified_by", this.settings.author); if (!this.error()) { String sqlDocumentation = ""; String sqlLongValue = ""; if (isDocumentationUpdated == false) { sqlDocumentation = ", \"DOCUMENTATION\" = NULL "; } if (emptyLongValue == true) { sqlLongValue = ", \"LONG_VALUE\" = NULL "; } String created = this.record.get("created").toString(); if (created.length() > 19) { created = created.substring(0, 19); } String modified = this.record.get("modified").toString(); if (modified.length() > 19) { modified = modified.substring(0, 19); } String value = ""; String defaultValue = ""; String inputSize = ""; if (this.record.get("value").toString().equals("")) { value = "NULL"; } else { value = this.dbQuoted(this.record.get("value").toString()); } if (this.record.get("default_value").toString().equals("")) { defaultValue = "NULL"; } else { defaultValue = this.dbQuoted(this.record.get("default_value").toString()); } if (this.record.get("input_size").toString().equals("")) { inputSize = "NULL"; } else { inputSize = this.record.get("input_size").toString(); } StringBuffer sql = new StringBuffer("update " + this.settings.source + " ") .append(" set \"APPLICATION\" = " + this.dbQuoted(this.record.get("application").toString()) + ",") .append(" \"SECTION\" = " + this.dbQuoted(this.record.get("section").toString()) + ",") .append(" \"NAME\" = " + this.dbQuoted(this.record.get("name").toString()) + ",") .append(" \"VALUE\" = " + value + ",") .append(" \"DEFAULT_VALUE\" = " + defaultValue + ",") .append(" \"TITLE\" = " + this.dbQuoted(this.record.get("title").toString()) + ",") .append(" \"INPUT_TYPE\" = " + this.record.get("input_type").toString() + ",") .append(" \"INPUT_SIZE\" = " + inputSize + ",") .append(" \"DISPLAY_TYPE\" = " + this.record.get("display_type").toString() + ",") .append(" \"DISPLAY_SIZE\" = " + this.record.get("display_size").toString() + ",") .append(" \"FORCED\" = " + this.record.get("forced").toString() + ",") .append(" \"ENTRY_TYPE\" = " + this.record.get("entry_type").toString() + ",") .append(" \"CREATED\" = %timestamp_iso('" + created + "'),") .append(" \"CREATED_BY\" = '" + this.record.get("created_by").toString() + "',") .append(" \"MODIFIED\" = %timestamp_iso('" + modified + "'),") .append(" \"MODIFIED_BY\" = '" + this.record.get("modified_by").toString() + "' ") .append(sqlDocumentation).append(sqlLongValue) .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); try { this.connection.execute(sql.toString()); if (!sqlStmt.toString().equals("")) { try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } if (!this.error()) { this.connection.commit(); this.msg = this.rb.getMessage("sos.settings.dialog.msg_store"); } if (this.error()) { this.connection.rollback(); this.record = backupRecord; return false; } return true; } /** * Liste von Datenstzen speichern * * @return boolean Fehlerzustand * @throws Exception */ private boolean recordStoreList() throws Exception { this.debug(3, "recordStoreList"); HashMap applications = new HashMap(); HashMap sections = new HashMap(); HashMap names = new HashMap(); HashMap values = new HashMap(); HashMap binary_values = new HashMap(); int cnt = 0; int numOfEntries = 100; if (this.getRequestValue("num_of_entries") != null) { try { numOfEntries = Integer.parseInt(this.getRequestValue("num_of_entries").toString()); } catch (Exception e) { numOfEntries = 100; } } for (int i = 0; i < numOfEntries; i++) { if (this.getRequestValue("application_" + i) == null) { continue; } if (this.getRequestValue("section_" + i) == null) { continue; } if (this.getRequestValue("name_" + i) == null) { continue; } boolean has_value = false; boolean has_binary_value = false; // !!! Binary zuerst if (this.getRequestValue("binary_value_" + i) != null) { has_binary_value = true; } else if (this.getRequestValue("value_" + i) != null) { has_value = true; } if (!has_value && !has_binary_value) { continue; } applications.put(new Integer(cnt), this.getRequestValue("application_" + i)); sections.put(new Integer(cnt), this.getRequestValue("section_" + i)); names.put(new Integer(cnt), this.getRequestValue("name_" + i)); // binre dokumente leeren if (has_binary_value) { binary_values.put(new Integer(cnt++), "1"); } else { values.put(new Integer(cnt++), this.getRequestValue("value_" + i)); } } if (names.size() == 0 || (values.size() == 0 && binary_values.size() == 0)) { this.setError(this.rb.getMessage("sos.settings.dialog.err_not_found_list"), SOSClassUtil.getMethodName()); return false; } StringBuffer error = new StringBuffer(); for (int i = 0; i < names.size(); i++) { if (names.get(new Integer(i)).toString().equals("")) { continue; } try { StringBuffer sqlStmt = new StringBuffer("update " + this.settings.source + " "); if (binary_values.containsKey(new Integer(i))) { sqlStmt.append(" set \"LONG_VALUE\" = NULL, "); } else { sqlStmt.append(" set \"" + this.settings.entryValue + "\" = " + this.dbQuoted(values.get(new Integer(i)).toString()) + ", "); } sqlStmt.append("\"MODIFIED\" = %now, ").append("\"MODIFIED_BY\" = '" + this.settings.author + "' ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(applications.get(new Integer(i)).toString()) + " and ") .append("\"" + this.settings.entrySection + "\" = " + this.dbQuoted(sections.get(new Integer(i)).toString()) + " and ") .append("\"" + this.settings.entryName + "\" = " + this.dbQuoted(names.get(new Integer(i)).toString())); String title = ""; if (this.getRequestValue("title_" + i) != null) { title = this.getRequestValue("title_" + i); } else { title = names.get(new Integer(i)).toString(); } try { this.connection.execute(sqlStmt.toString()); } catch (Exception e) { error.append(title + " - " + e.getMessage() + "<br>"); break; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } if (error.length() == 0) { this.connection.commit(); this.msg = this.rb.getMessage("sos.settings.dialog.msg_store"); } else { this.setError(error.toString(), SOSClassUtil.getMethodName()); this.connection.rollback(); return false; } return true; } /** * Debugging setzen * * @param level * Debug Level * @param msg * Message * @see #debug(int, String) */ private void debug(int level, String msg) throws Exception { if (level <= this.debugLevel) { this.out.println("<font style=\"color: #009933;\">[debug" + level + "] [" + this.getClass().getName() + "] " + msg + "</font><br>"); } } /** * Dokumentation anzeigen * * @throws Exception */ private void showHelps() throws Exception { this.debug(3, "showHelps"); String orderBy = ""; if (this.documentationSort != null && !this.documentationSort.equals("")) { orderBy = " order by " + this.documentationSort; } String applicationsTitle = this.rb.getMessage("sos.settings.dialog.label_all_apps_title"); String sectionsTitle = " "; StringBuffer sql = new StringBuffer(); sql.append( " select s.\"APPLICATION\", s.\"SECTION\", s.\"NAME\", s.\"VALUE\",s.\"DEFAULT_VALUE\",s.\"TITLE\", s.\"INPUT_TYPE\",s.\"INPUT_SIZE\",s.\"DISPLAY_TYPE\",s.\"DISPLAY_SIZE\", s.\"ENTRY_TYPE\", s.\"FORCED\" "); sql.append(" from " + this.settings.source + " s "); StringBuffer appSql = new StringBuffer(); appSql.append(" select s.\"TITLE\" "); appSql.append(" from " + this.settings.source + " s "); String section = ""; String function = ""; if (this.item.equalsIgnoreCase("application")) { sql.append(" where s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entrySection + "\" and "); sql.append(" s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entryName + "\" "); sql.append(orderBy); function = "application"; } else if (this.item.equalsIgnoreCase("section")) { sql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" s.\"" + this.settings.entryApplication + "\" <> s.\"" + this.settings.entrySection + "\" and "); sql.append(" s.\"" + this.settings.entrySection + "\" = s.\"" + this.settings.entryName + "\" "); sql.append(orderBy); appSql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); appSql.append(" s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entrySection + "\" and "); appSql.append(" s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entryName + "\" "); try { applicationsTitle = this.connection.getSingleValue(appSql.toString()); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } function = "section"; } else if (this.item.equalsIgnoreCase("entry")) { section = this.settings.section; if (this.settings.section.equals(this.settings.entrySchemaSection)) { section = this.settings.entrySchemaSection; } else { this.setDialogSections(); if (this.dialogSections != null && this.dialogSections.size() != 0) { HashMap hs = (HashMap) this.dialogSections.firstElement(); if (hs.containsKey("section")) { if (hs.get("section").toString().equals(this.settings.entrySchemaSection)) { section = this.settings.entrySchemaSection; } } } } sql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" s.\"" + this.settings.entrySection + "\" = " + this.dbQuoted(section) + " and "); sql.append(" s.\"" + this.settings.entrySection + "\" <> s.\"" + this.settings.entryName + "\" "); sql.append(orderBy); appSql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); appSql.append(" s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entrySection + "\" and "); appSql.append(" s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entryName + "\" "); try { applicationsTitle = this.connection.getSingleValue(appSql.toString()); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } StringBuffer secSql = new StringBuffer(); secSql.append(" select s.\"TITLE\" "); secSql.append(" from " + this.settings.source + " s "); secSql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); secSql.append( " s.\"" + this.settings.entrySection + "\" = " + this.dbQuoted(section) + " and "); secSql.append(" s.\"" + this.settings.entrySection + "\" = s.\"" + this.settings.entryName + "\" "); try { sectionsTitle = this.connection.getSingleValue(secSql.toString()); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } function = "entry"; } Vector items = null; try { items = this.connection.getArrayAsVector(sql.toString()); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } if (items != null) { for (Enumeration el = items.elements(); el.hasMoreElements();) { HashMap item = (HashMap) el.nextElement(); byte[] documentation = null; try { documentation = this.connection.getBlob("select \"DOCUMENTATION\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(item.get("application").toString()) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(item.get("section").toString()) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(item.get("name").toString()) + " "); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } if (documentation != null) { item.put("documentation", new String(documentation)); } else { item.put("documentation", ""); } if (item.get("documentation").equals("")) { item.put("documentation", " "); } if (item.get("value").equals("")) { item.put("value", " "); } if (item.get("default_value").equals("")) { item.put("default_value", " "); } if (item.get("input_type").equals("")) { item.put("input_type", " "); } if (item.get("input_size").equals("")) { item.put("input_size", " "); } if (item.get("display_type").equals("")) { item.put("display_type", " "); } if (item.get("display_size").equals("")) { item.put("display_size", " "); } if (item.get("entry_type").equals("")) { item.put("entry_type", " "); } if (item.get("forced").equals("")) { item.put("forced", " "); } item.put("application_title", applicationsTitle); item.put("section_title", sectionsTitle); //kein schema /* * if (!item.get("section").toString().equals( * this.settings.entrySchemaSection) && * !item.get("name").toString().equals( * this.settings.entrySchemaSection)) { */ if (function.equals("application")) { this.docuApplication(item); } else if (function.equals("section")) { this.docuSection(item); } else if (function.equals("entry")) { this.docuEntry(item); } //} } } } /** * Dokumentation anzeigen * * @throws Exception */ private void showDocumentation() throws Exception { this.debug(3, "showDocumentation"); StringBuffer sqlStmt = new StringBuffer( "select \"TITLE\",\"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DISPLAY_TYPE\",\"INPUT_TYPE\" from " + this.settings.source); String sqlAnd = " where "; String[] display_type_entries = this.rb.getMessage("sos.settings.dialog.listbox_display_type_entries") .split(";"); String[] input_type_entries = this.rb.getMessage("sos.settings.dialog.listbox_input_type_entries") .split(";"); if (this.settings.section.equals(this.settings.entrySchemaSection)) { this.settings.section = this.settings.entrySchemaSection; } if (!this.settings.application.equals("")) { sqlStmt.append(sqlAnd + " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application)); sqlAnd = " and "; } if (!this.settings.section.equals("")) { sqlStmt.append( sqlAnd + " \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section)); sqlAnd = " and "; } sqlStmt.append(" order by \"" + this.settings.entryApplication + "\",\"" + this.settings.entrySection + "\",\"" + this.settings.entryName + "\""); try { Vector results = this.connection.getArrayAsVector(sqlStmt.toString()); LinkedHashMap applications = new LinkedHashMap(); LinkedHashMap sections = new LinkedHashMap(); LinkedHashMap entries = new LinkedHashMap(); for (Enumeration el = results.elements(); el.hasMoreElements();) { HashMap result = (HashMap) el.nextElement(); if (result.get("application").toString().equals(result.get("section").toString()) && result.get("application").toString().equals(result.get("name").toString())) { applications.put(result.get("application").toString(), result); } else if (result.get("section").toString().equals(result.get("name").toString()) && !result.get("section").toString().equals(result.get("application").toString())) { String key = result.get("application").toString(); LinkedHashMap section = new LinkedHashMap(); if (sections.containsKey(key)) { section = (LinkedHashMap) sections.get(key); } section.put(result.get("section").toString(), result); sections.put(key, section); } else { String appKey = result.get("application").toString(); String secKey = result.get("section").toString(); LinkedHashMap section = new LinkedHashMap(); LinkedHashMap entry = new LinkedHashMap(); if (entries.containsKey(appKey)) { section = (LinkedHashMap) entries.get(appKey); if (section.containsKey(secKey)) { entry = (LinkedHashMap) section.get(secKey); } } entry.put(result.get("name").toString(), result); section.put(secKey, entry); entries.put(appKey, section); } } //out.print(entries); results = null; this.styleBorder = "1\" bgcolor=\"#ffffff\" bordercolorlight=\"#D2D2D2\" bordercolordark=\"#ffffff"; this.showTableBegin(); if (applications.size() != 0) { Iterator appIt = applications.entrySet().iterator(); while (appIt.hasNext()) { Map.Entry application = (Map.Entry) appIt.next(); String app_key = application.getKey().toString(); HashMap app_value = (HashMap) application.getValue(); this.out.println("<tr>"); this.out.println(" <td colspan=\"3\" nowrap style=\"color:#808080;font-weight:bold;\">" + app_value.get("title") + "</td>"); this.out.println(" <td nowrap>" + app_value.get("name") + "</td>"); this.out.println(" <td nowrap> </td>"); this.out.println("</tr>"); if (sections.containsKey(app_key)) { HashMap appSections = (HashMap) sections.get(app_key); Iterator secIt = appSections.entrySet().iterator(); while (secIt.hasNext()) { Map.Entry section = (Map.Entry) secIt.next(); String sec_key = section.getKey().toString(); HashMap sec_value = (HashMap) section.getValue(); if (!sec_value.get("name").toString().equals(this.settings.entrySchemaSection)) { this.out.println("<tr>"); this.out.println(" <td nowrap> </td>"); this.out.println( " <td colspan=\"2\" nowrap style=\"color:#808080;font-weight:bold;\">" + sec_value.get("title") + "</td>"); this.out.println(" <td nowrap>" + sec_value.get("name") + "</td>"); this.out.println(" <td nowrap> </td>"); this.out.println("</tr>"); if (entries.containsKey(app_key)) { HashMap secEntrie = (HashMap) entries.get(app_key); if (secEntrie.containsKey(sec_key)) { HashMap secEntries = (HashMap) secEntrie.get(sec_key); Iterator entIt = secEntries.entrySet().iterator(); while (entIt.hasNext()) { Map.Entry entry = (Map.Entry) entIt.next(); String ent_key = entry.getKey().toString(); HashMap ent_value = (HashMap) entry.getValue(); this.out.println("<tr>"); this.out.println(" <td width=\"20\" nowrap> </td>"); this.out.println(" <td width=\"20\" nowrap> </td>"); this.out.println(" <td width=\"35%\" nowrap valign=\"top\">" + ent_value.get("title") + "</td>"); this.out.println(" <td width=\"10%\" nowrap valign=\"top\">" + ent_value.get("name") + "</td>"); this.out.println(" <td nowrap valign=\"top\">"); if (ent_value.get("input_type").toString().equals("5")) { // long_value this.out.println("[ " + this.rb.getMessage( "sos.settings.dialog.dialog_long_value_title") + " ]"); if (ent_value.get("display_type").toString().equals("4")) { this.out.println(" " + display_type_entries[4]); } } else if (ent_value.get("input_type").toString().equals("6")) { // binary versteckt this.out.println("[ " + input_type_entries[6] + " ]"); } else { if (ent_value.get("display_type").toString().endsWith("3")) { this.out.println("<pre>" + this.htmlSpecialChars( ent_value.get("value").toString()) + "</pre>"); } else { this.out.println( this.htmlSpecialChars(ent_value.get("value").toString()) + " "); } } this.out.println(" </td>"); this.out.println("</tr>"); } } } } } } } } // if applications else if (sections.size() != 0) { try { HashMap application = this.connection.getSingle("select \"TITLE\",\"NAME\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.application)); Iterator secIt = sections.entrySet().iterator(); if (sections.containsKey(this.settings.application)) { HashMap appSections = (HashMap) sections.get(this.settings.application); Iterator secI = appSections.entrySet().iterator(); while (secI.hasNext()) { Map.Entry section = (Map.Entry) secI.next(); String sec_key = section.getKey().toString(); HashMap sec_value = (HashMap) section.getValue(); this.out.println("<tr>"); this.out.println( " <td colspan=\"3\" nowrap style=\"color:#808080;font-weight:bold;\">" + application.get("title") + "</td>"); this.out.println(" <td nowrap>" + application.get("name") + "</td>"); this.out.println(" <td nowrap> </td>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println(" <td nowrap> </td>"); this.out.println( " <td colspan=\"2\" nowrap style=\"color:#808080;font-weight:bold;\">" + sec_value.get("title") + "</td>"); this.out.println(" <td nowrap>" + sec_value.get("name") + "</td>"); this.out.println(" <td nowrap> </td>"); this.out.println("</tr>"); if (entries.containsKey(this.settings.application)) { HashMap secEntrie = (HashMap) entries.get(this.settings.application); if (secEntrie.containsKey(sec_key)) { HashMap secEntries = (HashMap) secEntrie.get(sec_key); Iterator entI = secEntries.entrySet().iterator(); while (entI.hasNext()) { Map.Entry entry = (Map.Entry) entI.next(); String ent_key = entry.getKey().toString(); HashMap ent_value = (HashMap) entry.getValue(); this.out.println("<tr>"); this.out.println(" <td width=\"3%\" nowrap> </td>"); this.out.println(" <td width=\"3%\" nowrap> </td>"); this.out.println(" <td width=\"35%\" nowrap valign=\"top\">" + ent_value.get("title") + "</td>"); this.out.println(" <td width=\"10%\" nowrap valign=\"top\">" + ent_value.get("name") + "</td>"); this.out.println(" <td nowrap valign=\"top\">"); if (ent_value.get("input_type").toString().equals("5")) { // long_value this.out.println("[ " + this.rb.getMessage( "sos.settings.dialog.dialog_long_value_title") + " ]"); if (ent_value.get("display_type").toString().equals("4")) { this.out.println(" " + display_type_entries[4]); } } else if (ent_value.get("input_type").toString().equals("6")) { // binary versteckt this.out.println("[ " + input_type_entries[6] + " ]"); } else { if (ent_value.get("display_type").toString().endsWith("3")) { this.out.println("<pre>" + this.htmlSpecialChars(ent_value.get("value").toString()) + "</pre>"); } else { this.out.println( this.htmlSpecialChars(ent_value.get("value").toString())); } } this.out.println(" </td>"); this.out.println("</tr>"); } } } } //out.print(section); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } } this.showTableEnd(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } } /** * Sourcecode bei binren Dokumenten * * @return boolean Fehlerzustand * @access public * @author Robert Ehrlich <re@sos-berlin.com> * @version 1.0-2004/03/17 */ private void downloadSource(String application, String section, String entry) throws Exception { this.debug(3, "download_source : application = " + application + " section = " + section + " entry = " + entry); if (application == null || application.length() == 0) { this.setError("application for download is empty", SOSClassUtil.getMethodName()); return; } if (section == null || section.length() == 0) { this.setError("section for download is empty", SOSClassUtil.getMethodName()); return; } if (entry == null || entry.length() == 0) { this.setError("entry for download is empty", SOSClassUtil.getMethodName()); return; } byte[] data; try { String sql = "select \"LONG_VALUE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(entry); data = this.connection.getBlob(sql); if (data == null || data.length == 0) { this.setError("no data found for application <b>" + application + "</b> section <br>" + section + "</b> entry <b>" + entry + "</b>", SOSClassUtil.getMethodName()); return; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } String r_file_name = this.getRequestValue("file_name"); String file_name = (r_file_name != null && r_file_name.length() > 0) ? r_file_name : this.settings.defaultDocumentFileName; String header_ext = "application/octet-stream"; // da beim Download getOutputStream benutz wird(damit schreibt man binre Sachen) // kommt es ohne aufzurumen zu einer Exception (nur in Tomcate LOGs), // weil out bereits aktiv ist(es kann entweder OutputStream oder Writer geben) // muss auch in der jsp Datei gesetzt werden this.out.clear(); // keine Header mehr !!! this.response.setContentType(header_ext); this.response.setIntHeader("Content-length", data.length); this.response.setHeader("Content-Disposition", "attachment; filename=" + file_name); //this.response.flushBuffer(); //this.response.getWriter().write(new String(data)); //this.response.getWriter().close(); this.isSourceDownloaded = false; try { javax.servlet.ServletOutputStream os = response.getOutputStream(); os.write(data); os.flush(); os.close(); this.isSourceDownloaded = true; System.out.println("--------------- Downloaded -----------------"); } catch (Exception e) { System.out.println("EXCEPTION : " + e); } } /** * */ private String htmlSpecialChars(String htmltext) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < htmltext.length(); i++) { char elem = htmltext.charAt(i); if (elem == '<') sb.append("<"); else if (elem == '>') sb.append(">"); else if (elem == '&') sb.append("&"); else if (elem == '"') sb.append("""); else sb.append(elem); } return sb.toString(); } /** * Template fr die Anzeige der Applikationsdoku * * @param settings * Werte fr die Doku * @see #docuApplication(HashMap) */ private void docuApplication(HashMap settings) throws Exception { this.debug(3, "docuApplication"); if (!settings.get("documentation").toString().equals(" ")) { this.out.println("<p class=\"sos-doc-content\">"); this.out.println(" <table class=\"sos-application-table\" cellpadding=\"1\" cellspacing=\"1\">"); this.out.println(" <tr>"); this.out.println(" <th align=\"left\" class=\"sos-application-th\">" + settings.get("title").toString() + "</th>"); this.out.println(" </tr>"); this.out.println(" <tr>"); this.out.println( " <td class=\"sos-application-td\">" + settings.get("documentation").toString() + "</td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println("</p>"); } } /** * Template fr die Anzeige der Sektionsdoku * * @param settings * Werte fr die Doku * @see #docuSection(HashMap) */ private void docuSection(HashMap settings) throws Exception { this.debug(3, "docuSection"); if (!settings.get("documentation").toString().equals(" ")) { this.out.println("<table class=\"sos-doc-table\" cellpadding=\"1\" cellspacing=\"1\">"); this.out.println("<tr>"); this.out.println(" <th align=\"left\" class=\"sos-section-th\">"); this.out.println(" <a class=\"sos-keyword\" name=\"" + settings.get("title").toString() + "\">"); //this.out.println(" <a // href=\""+settings.get("title").toString()+"_doc.htm\">"+settings.get("application_title").toString()+"/"+settings.get("title").toString()+"</a>"); this.out.println(" " + settings.get("application_title").toString() + "/" + settings.get("title").toString()); this.out.println(" </a>"); this.out.println(" </th>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println( " <td class=\"sos-section-td\">" + settings.get("documentation").toString() + "</td>"); this.out.println("</tr>"); this.out.println("</table>"); } } /** * Template fr die Anzeige der Entriesdoku * * @param settings * Werte fr die Doku * @see #docuEntry(HashMap) */ private void docuEntry(HashMap settings) throws Exception { this.debug(3, "docuEntry"); if (!settings.get("documentation").toString().equals(" ")) { String sectionTitle = ""; if (!settings.get("section").toString().equals(this.settings.entrySchemaSection)) { sectionTitle = settings.get("section_title") + "/"; } this.out.println("<table class=\"sos-entry-table\" cellpadding=\"1\" cellspacing=\"1\">"); this.out.println("<tr>"); this.out.println(" <th align=\"left\" class=\"sos-entry-th\">"); this.out.println(settings.get("application_title").toString() + "/" + sectionTitle + settings.get("title").toString()); if (settings.get("forced").toString().equals("1")) { this.out.println(" : " + this.rb.getMessage("sos.settings.dialog.label_mandatory_field")); } this.out.println(" </th>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println( " <td class=\"sos-section-td\">" + settings.get("documentation").toString() + "</td>"); this.out.println("</tr>"); this.out.println("</table>"); } } /** * Hilfetexte anzeigen * * @throws Exception */ private void showHelp() throws Exception { this.debug(3, "showHelp"); if (this.settings.application.equals("")) { this.setError(this.rb.getMessage("sos.settings.dialog.err_missing_apps"), SOSClassUtil.getMethodName()); return; } if (this.settings.section.equals("")) { this.setError(this.rb.getMessage("sos.settings.dialog.err_missing_section"), SOSClassUtil.getMethodName()); return; } else { if (this.settings.section.equals(this.settings.entrySchemaSection)) { this.settings.section = this.settings.entrySchemaSection; } } if (this.settings.entry.equals("")) { this.setError(this.rb.getMessage("sos.settings.dialog.err_missing_entry"), SOSClassUtil.getMethodName()); return; } String title = ""; byte[] help = null; String helpText = ""; try { title = this.connection.getSingleValue("select \"TITLE\" from " + this.settings.source + " where \"APPLICATION\" = " + this.dbQuoted(this.settings.application) + " and \"SECTION\" = " + this.dbQuoted(this.settings.section) + " and \"NAME\" = " + this.dbQuoted(this.settings.entry)); try { help = this.connection.getBlob("select \"DOCUMENTATION\" from " + this.settings.source + " where \"APPLICATION\" = " + this.dbQuoted(this.settings.application) + " and \"SECTION\" = " + this.dbQuoted(this.settings.section) + " and \"NAME\" = " + this.dbQuoted(this.settings.entry)); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return; } if (help == null || help.length == 0) { helpText = this.rb.getMessage("sos.settings.dialog.msg_helps"); } else { helpText = new String(help); } this.showTableBegin(); this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <th align=\"left\" valign=\"top\" class=\"" + this.styleTh + "\">"); this.out.println(" " + title); this.out.println(" </th>"); this.out.println("</tr>"); this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <td valign=\"top\" class=\"" + this.styleTdLabel + "\">"); this.out.println(" " + helpText + " "); this.out.println(" </td>"); this.out.println("</tr>"); this.showTableEnd(); this.out.println("<table width=\"97%\" border=\"0\" align=\"center\">"); this.out.println(" <tr>"); this.out.println(" <td align=\"right\"><a href=\"javascript:window.close();\">" + this.rb.getMessage("sos.settings.dialog.label_close_window") + "</br></td>"); this.out.println(" </tr>"); this.out.println("</table>"); } /** * Alle Eintrge einer Sektion anzeigen * * @param entriesTitle * Titel * @param entries * Werte(siehe getDialogEntries) * @return boolean Fehlerzustand * @throws Exception * @see #showDialogEntries(String, Vector) */ private boolean showDialogEntries(String entriesTitle, Vector entries) throws Exception { this.debug(3, "showDialogEntries : entriesTitle = " + entriesTitle + " entries = " + entries); // Fleck fr showDialogValues() this.isShowEntries = true; if (entriesTitle != null) { this.dialogEntriesTitle = entriesTitle; } if (entries != null) { this.dialogEntries = entries; } String imgLink = "<img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"4\" vspace=\"1\">"; String thisCon = (this.site.indexOf('?') != -1) ? "&" : "?"; String querySession = "?"; if (!this.sessionUseTransSID && !this.sessionVAR.equals("")) { querySession = thisCon + this.sessionVAR + "=" + this.sessionID + "&"; } else { querySession = thisCon; } this.showTableBegin(); int columnCount = this.enableEntryNames ? 3 : 2; try { this.showNavigation(new Integer(columnCount), this.dialogApplicationIndex, this.dialogSectionIndex, null); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } this.aclRange = "section"; try { this.getRights(this.settings.application, this.settings.section, null); } catch (Exception e) { this.setError("ACL : " + e.getMessage(), SOSClassUtil.getMethodName()); } if (this.applicationType == 1) { if (this.hasCreateRight) { this.hasWriteRight = true; this.disabled = ""; } } // JS Code schreiben this.openHelpWin(); if (this.enableEntryValues == true) { this.out.println("<form name=\"" + this.form + "\" action=\"" + this.site + "\" method=\"post\" onSubmit=\"return " + this.form + "_check_onSubmit()\">"); } if (this.dialogSectionIndex.intValue() >= 0 && this.enableEntryManager == true) { boolean showNew = false; if (this.applicationType == 1) { if (this.settings.section.equals(this.settings.entrySchemaSection)) { if (this.hasCreateRight == true) { showNew = true; } } } else { if (this.hasCreateRight == true) { showNew = true; } } if (showNew == true) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); String link = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + querySession + "action=new&range=entry&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(this.settings.section) + "&application_type=" + this.applicationType; if (this.sectionType > 0) { link += "§ion_type=" + this.sectionType; } link += "\">"; this.out.println(" <td class=\"" + this.styleTd + "\">" + link + imgLink + this.dialogEntriesNewTitle + "</a> </td>"); if (this.enableEntryNames == true) { this.out.println(" <td class=\"" + this.styleTd + "\"> </td>"); } this.out.println(" <td class=\"" + this.styleTd + "\"> </td>"); this.out.println(" </tr>"); } } String linkEntry = "<a href=\"" + this.site + querySession + "action=show"; String linkSchema = (this.enableEntryManager == true) ? "<a href=\"" + this.site + querySession + "action=schema" : linkEntry; int cnt = 0; String lastApplication = ""; String lastSection = ""; boolean hasTitle = false; if (this.action.equals("query") || this.action.equals("duplicate")) { hasTitle = true; } HashMap application = new HashMap(); HashMap section = new HashMap(); application.put("entry_type", new Integer(this.applicationType)); section.put("entry_type", new Integer(this.sectionType)); String aclApplication = ""; StringBuffer sql = new StringBuffer(); StringBuffer sqlHelp = new StringBuffer(); StringBuffer sqlBinary = new StringBuffer(); if (this.sectionType > 0 || this.applicationType > 0) { // aus der // Schema sql.append(" select s.\"" + this.settings.entryApplication + "\",s.\"" + this.settings.entrySection + "\", s.\"" + this.settings.entryName + "\" "); sql.append(" from " + this.settings.source + " s "); sql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" s.\"" + this.settings.entrySection + "\" = '" + this.settings.entrySchemaSection + "' and "); sql.append(" s.\"" + this.settings.entrySection + "\" <> s.\"" + this.settings.entryName + "\" and "); sqlBinary.append(" select s.\"" + this.settings.entryApplication + "\",s.\"" + this.settings.entrySection + "\", s.\"" + this.settings.entryName + "\" "); sqlBinary.append(" from " + this.settings.source + " s "); sqlBinary.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sqlBinary.append(" s.\"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and "); sqlBinary.append(" s.\"" + this.settings.entrySection + "\" <> s.\"" + this.settings.entryName + "\" and "); } else { sql.append(" select s.\"" + this.settings.entryApplication + "\",s.\"" + this.settings.entrySection + "\", s.\"" + this.settings.entryName + "\" "); sql.append(" from " + this.settings.source + " s "); sql.append(" where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" s.\"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and "); sql.append(" s.\"" + this.settings.entrySection + "\" <> s.\"" + this.settings.entryName + "\" and "); sqlBinary = new StringBuffer(sql.toString()); } sqlBinary.append(" s.\"LONG_VALUE\" is not null"); sqlHelp = sql.append(" s.\"DOCUMENTATION\" is not null"); Hashtable helpTexts = new Hashtable(); try { Vector helpText = this.connection.getArrayAsVector(sqlHelp.toString()); if (helpText.size() > 0) { for (Enumeration el = helpText.elements(); el.hasMoreElements();) { HashMap hm = (HashMap) el.nextElement(); helpTexts.put(hm.get("application").toString() + hm.get("section").toString() + hm.get("name").toString(), "Help"); } this.hasHelps = true; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } this.hasBinaryValue = new Hashtable(); try { Vector binaryValues = this.connection.getArrayAsVector(sqlBinary.toString()); if (binaryValues.size() > 0) { for (Enumeration el = binaryValues.elements(); el.hasMoreElements();) { HashMap hm = (HashMap) el.nextElement(); this.hasBinaryValue.put(hm.get("application").toString() + hm.get("section").toString() + hm.get("name").toString(), "1"); } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } Vector checkEntries = new Vector(); int ce = 0; int index = 0; boolean isNotAllDisabled = false; String[] display_type_entries = this.rb.getMessage("sos.settings.dialog.listbox_display_type_entries") .split(";"); if (display_type_entries.length != 5) { this.setError("\"sos.settings.dialog.listbox_display_type_entries\" expected 5 values, given : " + display_type_entries.length, SOSClassUtil.getMethodName()); return false; } String[] input_type_entries = this.rb.getMessage("sos.settings.dialog.listbox_input_type_entries") .split(";"); if (input_type_entries.length != 7) { this.setError("\"sos.settings.dialog.listbox_input_type_entries\" expected 7 values, given : " + input_type_entries.length, SOSClassUtil.getMethodName()); return false; } for (Enumeration el = this.dialogEntries.elements(); el.hasMoreElements();) { HashMap entry = (HashMap) el.nextElement(); this.aclRange = "entry"; try { this.getRights(entry.get("application").toString(), entry.get("section").toString(), entry.get("name").toString()); if (this.hasReadRight == false && this.hasCreateRight == false) { continue; } } catch (Exception e) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td valign=\"middle\" class=\"" + this.styleTd + "\" colspan=\"3\">"); this.out.println(" <table width=\"100%\" border =\"0\" cellspacing=\"0\" cellpadding=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td>"); this.out.println( " " + entry.get(this.settings.entryTitle.toLowerCase()).toString() + " "); this.out.println(" </td>"); this.out.println(" <td align=\"right\" nowrap>"); this.showError("ACL : " + e.getMessage()); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" </tr>"); continue; } // Acls end cnt++; String link = ""; if ((hasTitle == true) && (!entry.get(this.settings.entryApplication.toLowerCase()).toString() .equals(lastApplication))) { try { application = this.connection.getSingle("select \"NAME\",\"TITLE\",\"ENTRY_TYPE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + " and \"" + this.settings.entryApplication + "\"= \"" + this.settings.entrySection + "\" and \"" + this.settings.entrySection + "\"= \"" + this.settings.entryName + "\""); if (application.size() == 0) { continue; } } catch (Exception e) { continue; } try { section = this.connection.getSingle("select \"NAME\",\"TITLE\",\"ENTRY_TYPE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + " and \"" + this.settings.entrySection + "\"= " + this.dbQuoted(entry.get(this.settings.entrySection.toLowerCase()).toString()) + " and \"" + this.settings.entrySection + "\"= \"" + this.settings.entryName + "\""); if (section.size() == 0) { continue; } } catch (Exception e) { continue; } lastApplication = entry.get(this.settings.entryApplication.toLowerCase()).toString(); lastSection = entry.get(this.settings.entrySection.toLowerCase()).toString(); this.out.println(" <tr class=\"" + this.styleTr + "\">"); link = linkEntry + "&range=sections&application=" + this.response.encodeURL(lastApplication) + "\" class=\"" + this.styleLinkNavigation + "\">"; this.out.println(" <th class=\"" + this.styleTh + "\" align=\"left\">" + link + imgLink + application.get("title").toString() + "</a></th>"); link = linkEntry + "&range=entries&application=" + this.response.encodeURL(lastApplication) + "§ion=" + this.response.encodeURL(lastSection) + "&application_type=" + application.get("entry_type").toString() + "§ion_type=" + section.get("entry_type").toString() + "\" class=\"" + this.styleLinkNavigation + "\">"; this.out.println(" <th class=\"" + this.styleTh + "\" align=\"left\" colspan=\"" + (columnCount - 1) + "\">" + link + imgLink + section.get("title").toString() + "</th>"); this.out.println(" </tr>"); } if ((hasTitle == true) && (!entry.get(this.settings.entrySection.toLowerCase()).toString().equals(lastSection))) { section = this.connection.getSingle("select \"NAME\",\"TITLE\",\"ENTRY_TYPE\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + " and \"" + this.settings.entrySection + "\"= " + this.dbQuoted(entry.get(this.settings.entrySection.toLowerCase()).toString()) + " and \"" + this.settings.entrySection + "\"= \"" + this.settings.entryName + "\""); lastSection = entry.get(this.settings.entrySection.toLowerCase()).toString(); this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <th class=\"" + this.styleTh + "\" align=\"left\"> </th>"); link = linkEntry + "&range=entries&application=" + this.response.encodeURL(lastApplication) + "§ion=" + this.response.encodeURL(lastSection) + "&application_type=" + application.get("entry_type").toString() + "§ion_type=" + section.get("entry_type").toString() + "\" class=\"" + this.styleLinkNavigation + "\">"; this.out.println(" <th class=\"" + this.styleTh + "\" align=\"left\" colspan=\"" + (columnCount - 1) + "\">" + link + imgLink + section.get("title").toString() + "</th>"); this.out.println(" </tr>"); } String linkHelp = ""; ///////////// this.out.println(" <tr class=\"" + this.styleTr + "\">"); if (entry.get(this.settings.entrySection.toLowerCase()).toString() .equals(this.settings.entrySchemaSection)) { linkHelp = " "; String k = entry.get(this.settings.entryApplication.toLowerCase()).toString() + this.settings.entrySchemaSection + entry.get(this.settings.entryName.toLowerCase()).toString(); if (helpTexts.containsKey(k)) { String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } String helpHref = "source=" + this.settings.source + "&application=" + this.response .encodeURL(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL(this.settings.entrySchemaSection) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()); linkHelp = "<a href=\"javascript:openHelpWin('" + helpHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.imgHelp + "\" border=\"0\" title=\"" + this.rb.getMessage("sos.settings.dialog.label_help") + "\"></a>"; } String linkQuery = "&range=entry&application=" + this.response.encodeURL( entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL(entry.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()) + "&application_type=" + application.get("entry_type").toString() + "\">"; this.out.println(" <td valign=\"middle\" class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border =\"0\" cellspacing=\"0\" cellpadding=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td>"); this.out.println(" " + linkSchema + linkQuery + imgLink + "</a>"); link = (entry.get(this.settings.entrySection.toLowerCase()).toString() .equals(this.settings.entrySchemaSection)) ? linkSchema : linkEntry; this.out.println(" " + link + linkQuery + entry.get(this.settings.entryTitle.toLowerCase()).toString() + "</a> "); this.out.println(" </td>"); this.out.println(" <td align=\"right\" nowrap>"); this.out.println(" " + linkHelp); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); } else if (this.sectionType > 0 || this.applicationType > 0) { // schema linkHelp = " "; if (this.hasCreateRight) { // bei Schema reicht CREATE Recht this.hasWriteRight = true; this.disabled = ""; } String k = entry.get(this.settings.entryApplication.toLowerCase()).toString() + this.settings.entrySchemaSection + entry.get(this.settings.entryName.toLowerCase()).toString(); if (helpTexts.containsKey(k)) { String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } String helpHref = "source=" + this.settings.source + "&application=" + this.response .encodeURL(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL(this.settings.entrySchemaSection) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()); linkHelp = "<a href=\"javascript:openHelpWin('" + helpHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.imgHelp + "\" border=\"0\" title=\"" + this.rb.getMessage("sos.settings.dialog.label_help") + "\"></a>"; } String linkQuery = "&range=entry&application=" + this.response.encodeURL( entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL(entry.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()) + "&application_type=" + application.get("entry_type").toString() + "§ion_type=" + section.get("entry_type").toString() + "\">"; this.out.println(" <td valign=\"middle\" class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border =\"0\" cellspacing=\"0\" cellpadding=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td nowrap>"); if (this.enableEntryValues == true) { this.out.println(" " + linkEntry + linkQuery + imgLink + "</a>" + linkEntry + linkQuery + entry.get(this.settings.entryTitle.toLowerCase()).toString() + "</a> "); } else { this.out.println( " " + entry.get(this.settings.entryTitle.toLowerCase()).toString() + " "); } this.out.println(" </td>"); this.out.println(" <td align=\"right\" nowrap>"); this.out.println(" " + linkHelp); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); } else { linkHelp = " "; String k = entry.get(this.settings.entryApplication.toLowerCase()).toString() + entry.get(this.settings.entrySection.toLowerCase()).toString() + entry.get(this.settings.entryName.toLowerCase()).toString(); if (helpTexts.containsKey(k)) { String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } String helpHref = "source=" + this.settings.source + "&application=" + this.response .encodeURL(entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL( entry.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()); linkHelp = "<a href=\"javascript:openHelpWin('" + helpHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.imgHelp + "\" border=\"0\" title=\"" + this.rb.getMessage("sos.settings.dialog.label_help") + "\"></a>"; } String linkQuery = "&range=entry&application=" + this.response.encodeURL( entry.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response.encodeURL(entry.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response.encodeURL(entry.get(this.settings.entryName.toLowerCase()).toString()) + "&application_type=" + application.get("entry_type").toString() + "\">"; this.out.println(" <td valign=\"middle\" class=\"" + this.styleTd + "\" nowrap>"); this.out.println(" <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td>"); if (this.enableEntryValues == true) { this.out.println(" " + linkSchema + linkQuery + imgLink + "</a>"); link = (entry.get(this.settings.entrySection.toLowerCase()).toString() .equals(this.settings.entrySchemaSection)) ? linkSchema : linkEntry; this.out.println(" " + link + linkQuery + entry.get(this.settings.entryTitle.toLowerCase()) + "</a> "); } else { this.out.println(" " + entry.get(this.settings.entryTitle.toLowerCase()) + " "); } this.out.println(" </td>"); this.out.println(" <td align=\"right\" nowrap>"); this.out.println(" " + linkHelp); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); } if (this.enableEntryNames == true) { this.out.println(" <td valign=\"top\" class=\"" + this.styleTd + "\">" + entry.get(this.settings.entryName.toLowerCase()) + " </td>"); } if ((this.enableEntryValues == true) && (!entry.get(this.settings.entrySection.toLowerCase()).toString() .equals(this.settings.entrySchemaSection))) { if (this.disabled.equals("")) { isNotAllDisabled = true; } this.out.println(" <td valign=\"top\" class=\"" + this.styleTd + "\">"); /* * if (entry.get("input_type").toString().equals("5")) { * this.out.println("[ " + this.rb * .getMessage("sos.settings.dialog.dialog_long_value_title") + " * ]"); } else { this.showDialogValue(entry, 1, index); if * (!entry.get("forced").toString().equals("0") && * !entry.get("forced").toString().equals("") && * entry.get("display_type").toString().equals("0")) { * checkEntries.add(ce, "value_" + index); ce++; } } * this.out.println(" </td> "); */ this.out.println("<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); this.out.println(" <tr>"); String hbv = ""; if (this.hasBinaryValue.containsKey(entry.get("application").toString() + entry.get("section").toString() + entry.get("name").toString())) { hbv = this.hasBinaryValue.get(entry.get("application").toString() + entry.get("section").toString() + entry.get("name").toString()).toString(); } if ((hbv != null && hbv.length() > 0 && !hbv.equals("0")) || (entry.get("input_type").toString().equals("5") || entry.get("input_type").toString().equals("6"))) { if (entry.get("input_type").toString().equals("5")) { // Dokument this.out.println(" <td>"); this.out.println("[ " + this.rb.getMessage("sos.settings.dialog.dialog_long_value_title") + " ] "); if (entry.get("display_type").toString().equals("4")) { // versteckt this.out.println(display_type_entries[4] + "</td>"); this.out.println(" <td align=\"right\">"); this.showDialogValue(entry, 1, index); this.out.println(" </td>"); } else { this.out.println(" </td>"); this.out.println(" <td align=\"right\"> </td>"); } } else { // Dokument binr oder wir machen zum Dokument // binr this.out.println(" <td>"); this.out.println("[ " + input_type_entries[6] + " ]"); this.out.println(" </td>"); entry.put("input_type", "6"); entry.put("display_type", "4"); this.out.println(" <td align=\"right\">"); this.showDialogValue(entry, 1, index); this.out.println(" </td>"); } } else { this.out.println(" <td colspan=\"2\">"); this.showDialogValue(entry, 1, index); this.out.println(" </td>"); if (!entry.get("forced").toString().equals("0") && !entry.get("forced").toString().equals("") && entry.get("display_type").toString().equals("0")) { checkEntries.add(ce, "value_" + index); ce++; } } this.out.println("</tr>"); this.out.println("</table>"); this.out.println("</td>"); } else { this.out.println(" <td valign=\"middle\" class=\"" + this.styleTd + "\">" + entry.get(this.settings.entryValue.toLowerCase()).toString() + " </td>"); } this.out.println(" </tr>"); index++; } // foreach this.out.println("<script language=\"JavaScript\" type=\"text/javascript\">"); this.out.println(" function " + this.form + "_check_onSubmit() {"); this.out.println(" "); this.out.print(" var entries = Array("); for (int i = 0; i < checkEntries.size(); i++) { if (i > 0) { this.out.print(","); } this.out.print("\"" + checkEntries.get(i) + "\""); } this.out.println(" );"); this.out.println(" for(var i=0; i<entries.length; i++) {"); this.out.println(" if ( document." + this.form + ".elements[entries[i]].value == null || document." + this.form + ".elements[entries[i]].value == \"\" ) {"); this.out.println( " alert( \"" + this.rb.getMessage("sos.settings.dialog.alert_entry_empty") + "\");"); this.out.println(" document." + this.form + ".elements[entries[i]].focus();"); this.out.println(" return false;"); this.out.println(" }"); this.out.println(" }"); this.out.println(" return true;"); this.out.println(" }"); this.out.println("</script>"); if (this.enableEntryValues == true) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td valign=\"middle\" colspan=\"" + columnCount + "\" class=\"" + this.styleTd + "\"> "); if (isNotAllDisabled) { this.out.println(" <input type=\"image\" name=\"btn_store\" src=\"" + this.imgDir + this.sosLang + "/btn_store.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_store_alt") + "\" onClick=\"document.sos_settings.button.value=\'store\';\"> "); this.out.println(" <input type=\"image\" name=\"btn_cancel\" src=\"" + this.imgDir + this.sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\" onClick=\"document.sos_settings.button.value=\'cancel\';\"> "); this.out.println(" <input type=\"image\" name=\"btn_reset\" src=\"" + this.imgDir + this.sosLang + "/btn_reset.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_reset_alt") + "\" onClick=\"document.sos_settings.reset(); return false;\"> "); } else { this.out.println(" <input type=\"image\" name=\"btn_cancel\" src=\"" + this.imgDir + this.sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\" onClick=\"document.sos_settings.button.value=\'cancel\';\"> "); } this.out.println("<input type=\"hidden\" name=\"button\">"); this.out.println( "<input type=\"hidden\" name=\"application\" value=\"" + this.settings.application + "\">"); this.out.println( "<input type=\"hidden\" name=\"section\" value=\"" + this.settings.section + "\">"); this.out.println("<input type=\"hidden\" name=\"entry\" value=\"\">"); this.out.println("<input type=\"hidden\" name=\"range\" value=\"list\">"); this.out.println("<input type=\"hidden\" name=\"section_type\" value=\"" + this.sectionType + "\">"); this.out.println( "<input type=\"hidden\" name=\"application_type\" value=\"" + this.applicationType + "\">"); this.out.println("<input type=\"hidden\" name=\"num_of_entries\" value=\"" + cnt + "\">"); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </form>"); } this.showActions(new Integer(columnCount), this.dialogApplicationIndex, this.dialogSectionIndex, null); this.showTableEnd(); return true; } /** */ private void showUpload() throws Exception { this.out.println("<script language=\"javascript\">"); this.out.println(" "); this.out.println(" function importOnChange(){"); this.out.println(" "); this.out.println(" var file_value = document.getElementById('input_import');"); this.out.println(" var default_value = document." + this.form + ".default_value;"); this.out.println(" "); this.out.println(" if(typeof default_value != 'undefined'){"); this.out.println(" var arr = file_value.value.split('\\\\');"); this.out.println(" var el = arr.length-1;"); this.out.println(" default_value.value = arr[el];"); this.out.println(" }"); this.out.println(" }"); this.out.println(" "); this.out.println("</script>"); this.out.println(" "); this.out.println("<span id=\"sos_settings_import\" style=\"display:" + this.displayBinaryUpload + "\">"); this.out.println( " <input onchange=\"importOnChange()\" id=\"input_import\" valign=\"middle\" type=\"file\" style=\"height:20px;width:400px;alpha(opacity=0);\" name=\"input_import\" value=\"\">"); this.out.println("</span>"); } /** * Eintrag anzeigen * * @param displayMode * Flag zur Darstellung mit/ohne Schema * @param displayType * 0=Eintrag, 1=Sektion, 2=Applikation * @return boolean Fehlerzustand * @throws Exception * @see #showDialogEntry(int, int) */ private boolean showDialogEntry(int displayMode, int displayType) throws Exception { this.debug(3, "showDialogEntry : displayMode = " + displayMode + " displayType = " + displayType); StringBuffer defaultJavascript = new StringBuffer(); String labelDocument = ""; String displayRange = (this.record.get(this.settings.entrySection.toLowerCase()).toString() .equals(this.record.get(this.settings.entryName.toLowerCase()).toString())) ? "section" : "entry"; boolean readRight = true; this.aclRange = "entry"; try { if (this.getRights(this.record.get("application").toString(), this.record.get("section").toString(), this.record.get("name").toString()) == false) { readRight = false; } } catch (Exception e) { this.setError("ACL : " + e.getMessage(), SOSClassUtil.getMethodName()); readRight = false; } if (this.settings.entrySchemaSection.equals(this.settings.section)) { if (this.hasCreateRight) { readRight = true; if (this.isNew) { this.hasReadRight = true; this.hasWriteRight = true; this.disabled = ""; } } } if (this.applicationType == 1 || this.isNew == true) { if (this.hasCreateRight) { this.hasWriteRight = true; this.disabled = ""; } } String formOnSubmit = " onSubmit=\"return sos_settings_onSubmit()\""; if (this.hasWriteRight == false) { formOnSubmit = ""; } this.out.println("<form enctype=\"multipart/form-data\" name=\"" + this.form + "\" action=\"" + this.site + "\" method=\"post\"" + formOnSubmit + ">"); this.out.println("<input type=\"hidden\" name=\"button\">"); this.out.println("<input type=\"hidden\" name=\"application\" value=\"" + this.record.get(this.settings.entryApplication.toLowerCase()).toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"section\" value=\"" + this.record.get(this.settings.entrySection.toLowerCase()).toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"entry\" value=\"" + this.record.get(this.settings.entryName.toLowerCase()).toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"range\" value=\"" + displayRange + "\">"); this.out.println("<input type=\"hidden\" name=\"section_type\" value=\"" + this.sectionType + "\">"); this.out.println( "<input type=\"hidden\" name=\"application_type\" value=\"" + this.applicationType + "\">"); String lastAction = (this.getRequestValue("last_action") != null && !this.action.equals("schema")) ? this.getRequestValue("last_action").trim() : this.action; this.out.println("<input type=\"hidden\" name=\"last_action\" value=\"" + lastAction + "\">"); if (!this.isNew && this.record.containsKey("original_name")) { this.out.println("<input type=\"hidden\" name=\"original_name\" value=\"" + this.record.get("original_name").toString() + "\" />"); } if (displayMode != 1 || this.sectionType > 0) { if (this.sectionType == 0) { this.out.println("<input type=\"hidden\" name=\"title\" value=\"" + this.record.get("title").toString() + "\">"); } this.out.println("<input type=\"hidden\" name=\"default_value\" value=\"" + this.record.get("default_value").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"entry_type\" value=\"" + this.record.get("entry_type").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"input_type\" value=\"" + this.record.get("input_type").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"input_size\" value=\"" + this.record.get("input_size").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"display_type\" value=\"" + this.record.get("display_type").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"display_size\" value=\"" + this.record.get("display_size").toString() + "\">"); this.out.println("<input type=\"hidden\" name=\"forced\" value=\"" + this.record.get("forced").toString() + "\">"); } this.showTableBegin(); this.showNavigation(new Integer(2), this.dialogApplicationIndex, this.dialogSectionIndex, null); if (readRight == false) { this.showTableEnd(); return false; } this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <th align=\"left\" valign=\"top\" class=\"" + this.styleTh + "\" colspan=\"2\">" + this.record.get("title").toString() + " </th>"); this.out.println("</tr>"); if (displayType == 0 && (!this.settings.section.equals(this.settings.entrySchemaSection))) { this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_value") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); this.showDialogValue(this.record, 0, 0); this.showUpload(); this.out.println(" </td>"); this.out.println("</tr>"); if (this.record.get("display_type").toString().equals("0")) { defaultJavascript.append("document." + this.form + ".value.focus();"); } } this.out.println("<tr class=\"" + this.styleTr + "\">"); if (this.applicationType == 0 || this.settings.section.equals(this.settings.entrySchemaSection)) { if (this.sectionType == 0) { this.out.println( " <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">Name </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); if (this.enableEntryManager == true) { this.out.println(" <input " + this.disabled + " name=\"name\" type=\"text\" size=\"80\" maxlength=\"100\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("name").toString() + "\">"); if (defaultJavascript.length() == 0) { defaultJavascript.append("document." + this.form + ".name.focus();"); } } else { this.out.println(" <input name=\"name\" type=\"hidden\" value=\"" + this.record.get("name") + "\">" + this.record.get("name").toString()); } this.out.println(" </td>"); } else { this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_title") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); this.out.println(" <input " + this.disabled + " name=\"title\" type=\"text\" size=\"80\" maxlength=\"100\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("title").toString() + "\">"); this.out.println(" <input type=\"hidden\" name=\"name\" value=\"" + this.record.get("name").toString() + "\">"); this.out.println(" </td>"); if (defaultJavascript.length() == 0) { defaultJavascript.append("document." + this.form + ".title.focus();"); } } } this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_modified") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">" + SOSDate.getLocaleDateTimeAsString(this.record.get("modified").toString()) + " " + this.record.get("modified_by").toString() + " </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_created") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">" //+this.record.get("created").toString() + SOSDate.getLocaleDateTimeAsString(this.record.get("created").toString()) + " " + this.record.get("created_by") + " </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); if (displayMode == 1 && (this.sectionType == 0 || displayType == 1 || (this.settings.section.equals(this.settings.entrySchemaSection) && this.sectionType == 1))) { this.out.println(" <th align=\"left\" valign=\"top\" class=\"" + this.styleTh + "\" colspan=\"2\">"); if (displayType == 2) { this.out.println(this.rb.getMessage("sos.settings.dialog.label_schema_range") + " </th>"); } else if (displayType == 1) { this.out.println(this.rb.getMessage("sos.settings.dialog.label_schema_section") + " </th>"); } else { this.out.println(this.rb.getMessage("sos.settings.dialog.label_schema_entry") + " </th>"); } this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_title") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\"><input " + this.disabled + " type=\"text\" name=\"title\" size=\"80\" maxlength=\"100\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("title").toString() + "\">" + " </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_default") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\"><input " + this.disabled + " type=\"text\" name=\"default_value\" size=\"80\" maxlength=\"250\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("default_value").toString() + "\">" + " </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); if (displayType > 0) { String[] input_type_apps = this.rb.getMessage("sos.settings.dialog.listbox_input_type_apps") .split(";"); if (input_type_apps.length != 2) { throw new Exception( "\"sos.settings.dialog.listbox_input_type_apps\" expected two values, given : " + input_type_apps.length); } this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_input_entries") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">" + this.rb.getMessage("sos.settings.dialog.label_format") + " <select " + this.disabled + " name=\"entry_type\" size=\"1\" class=\"" + this.styleInput + "\">"); this.out.println(" <option value=\"0\""); if (!this.record.get("entry_type").toString().equals("1")) { this.out.println(" selected"); } this.out.println(">" + input_type_apps[0].trim() + " "); this.out.println(" <option value=\"1\""); if (this.record.get("entry_type").toString().equals("1")) { this.out.println(" selected"); } this.out.println(">" + input_type_apps[1].trim() + " </select></td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); } if (displayType < 2) { String[] input_type_entries = this.rb.getMessage("sos.settings.dialog.listbox_input_type_entries") .split(";"); if (input_type_entries.length != 7) { throw new Exception( "\"sos.settings.dialog.listbox_input_type_entries\" expected 7 values, given : " + input_type_entries.length); } labelDocument = input_type_entries[5]; String[] display_type_entries = this.rb .getMessage("sos.settings.dialog.listbox_display_type_entries").split(";"); if (display_type_entries.length != 5) { throw new Exception( "\"sos.settings.dialog.listbox_display_type_entries\" expected 5 values, given : " + display_type_entries.length); } this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_input") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">" + this.rb.getMessage("sos.settings.dialog.label_format") + " <select " + this.disabled + " name=\"input_type\" class=\"" + this.styleInput + "\" onChange=\"sos_settings_input_type_onChange()\">"); this.out.println(" <option value=\"0\""); if (this.record.get("input_type").toString().equals("0")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[0].trim() + " "); this.out.println(" <option value=\"1\""); if (this.record.get("input_type").toString().equals("1")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[1].trim() + " "); this.out.println(" <option value=\"2\""); if (this.record.get("input_type").toString().equals("2")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[2].trim() + " "); this.out.println(" <option value=\"3\""); if (this.record.get("input_type").toString().equals("3")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[3].trim() + " "); this.out.println(" <option value=\"4\""); if (this.record.get("input_type").toString().equals("4")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[4].trim() + " "); this.out.println(" <option value=\"5\""); if (this.record.get("input_type").toString().equals("5")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[5].trim() + " "); this.out.println(" <option value=\"6\""); if (this.record.get("input_type").toString().equals("6")) { this.out.println(" selected"); } this.out.println(">" + input_type_entries[6].trim() + " "); this.out.println("</select>"); this.out.println(" " + this.rb.getMessage("sos.settings.dialog.label_number_of_tokens") + " <input " + this.disabled + " type=\"text\" name=\"input_size\" size=\"10\" maxlength=\"4\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("input_size").toString() + "\">"); String checked = (!this.record.get("forced").toString().equals("0")) ? " checked" : ""; String unchecked = (!checked.equals("")) ? "" : " checked"; this.out.println( " " + this.rb.getMessage("sos.settings.dialog.label_mandatory") + " "); this.out.println("<input " + this.disabled + " type=\"radio\" name=\"forced\" class=\"" + this.styleInput + "\" value=\"1\" " + checked + ">" + this.rb.getMessage("sos.settings.dialog.label_yes") + " "); this.out.println("<input " + this.disabled + " type=\"radio\" name=\"forced\" class=\"" + this.styleInput + "\" value=\"0\" " + unchecked + ">" + this.rb.getMessage("sos.settings.dialog.label_no") + " "); this.out.println(" </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_display") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">Format <select " + this.disabled + " name=\"display_type\" class=\"" + this.styleInput + "\" onChange=\"sos_settings_display_type_onChange()\">"); this.out.println(" <option value=\"0\""); if (this.record.get("display_type").toString().equals("0")) { this.out.println(" selected"); } this.out.println(">" + display_type_entries[0].trim() + " "); this.out.println(" <option value=\"1\""); if (this.record.get("display_type").toString().equals("1")) { this.out.println(" selected"); } this.out.println(">" + display_type_entries[1].trim() + " "); this.out.println(" <option value=\"2\""); if (this.record.get("display_type").toString().equals("2")) { this.out.println(" selected"); } this.out.println(">" + display_type_entries[2].trim() + " "); this.out.println(" <option value=\"3\""); if (this.record.get("display_type").toString().equals("3")) { this.out.println(" selected"); } this.out.println(">" + display_type_entries[3].trim() + " "); this.out.println(" <option value=\"4\""); if (this.record.get("display_type").toString().equals("4")) { this.out.println(" selected"); } this.out.println(">" + display_type_entries[4].trim() + " "); this.out.println("</select>"); this.out.println(" " + this.rb.getMessage("sos.settings.dialog.label_number_of_pixel") + " <input " + this.disabled + " type=\"text\" name=\"display_size\" size=\"10\" maxlength=\"4\" class=\"" + this.styleInput + "\" value=\"" + this.record.get("display_size").toString() + "\">"); this.out.println(" </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); } if (displayType == 0 || displayType == 1) { if (this.hasWriteRight) { String height = (this.enableEditor) ? "height=\"" + this.editorHeight + "\"" : ""; this.out.println( " <td width=\"20%\" " + height + " valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_description") + " </td>"); this.out.println( " <td width=\"80%\" " + height + " valign=\"top\" class=\"" + this.styleTd + "\">"); if (this.enableEditor) { this.showEditor(this.record.get("documentation").toString()); } else { this.out.println( " <textarea rows=\"5\" cols=\"70\" wrap=\"off\" name=\"documentation\" class=\"" + this.styleInput + "\">" + this.htmlSpecialChars(this.record.get("documentation").toString()) + "</textarea> "); } this.out.println("</td>"); this.out.println("</tr>"); this.out.println("<tr class=\"" + this.styleTr + "\">"); } else { this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_description") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); this.out.println(this.record.get("documentation").toString()); this.out.println(" </td>"); this.out.println("</tr>"); this.out.println("<tr class=\"" + this.styleTr + "\">"); } } } this.out.println(" <td width=valign=\"top\" class=\"" + this.styleTd + "\"> </td>"); this.out.println(" <td valign=\"top\" class=\"" + this.styleTd + "\">"); boolean isBreak = false; if (this.hasWriteRight == true) { this.out.println("<script language=\"javascript\">"); this.out.println(" "); this.out.println(" function checkImportFile(id){"); this.out.println(" "); this.out.println(" var btn_store = document.getElementById(id);"); this.out.println(" "); this.out.println(" var file_span = document.getElementById('sos_settings_import');"); this.out.println(" var file_value = document.getElementById('input_import');"); this.out.println(" var default_value = document." + this.form + ".default_value;"); this.out.println(" "); this.out.println( " if(typeof file_span == 'undefined' || typeof file_value == 'undefined' || file_span == null){"); this.out.println(" // kein file upload"); this.out.println(" }"); this.out.println(" else{"); this.out.println(" var display_style = file_span.style.display;"); this.out.println(" if(typeof display_style != 'undefined' && display_style != 'none'){"); this.out.println(" if(file_value.value != ''){"); this.out.println(" btn_store.name = 'btn_import_file';"); this.out.println(" if(id == 'btn_store_as'){"); this.out.println(" document." + this.form + ".last_action.value = 'new';"); this.out.println(" }"); this.out.println(" }"); this.out.println(" }"); this.out.println(" }"); this.out.println(" }"); this.out.println(" "); this.out.println("</script>"); if (this.isNew == true) { this.out.println(" <input id=\"btn_store\" type=\"image\" name=\"btn_insert\" src=\"" + this.imgDir + this.sosLang + "/btn_insert.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_insert_alt") + "\" onClick=\"document.sos_settings.button.value=\'insert\';checkImportFile('btn_store');\"> "); } else { this.out.println(" <input id=\"btn_store\" type=\"image\" name=\"btn_store\" src=\"" + this.imgDir + this.sosLang + "/btn_store.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_store_alt") + "\" onClick=\"document.sos_settings.button.value=\'store\';checkImportFile('btn_store');\"> "); if ((this.enableEntryManager == true) && (this.applicationType == 0 || this.settings.section.equals(this.settings.entrySchemaSection))) { this.out.println(" <input id=\"btn_store_as\" type=\"image\" name=\"btn_insert\" src=\"" + this.imgDir + this.sosLang + "/btn_insert.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_store_as_alt") + "\" onClick=\"document.sos_settings.button.value=\'insert\';checkImportFile('btn_store_as');\"> "); if (this.hasDeleteRight == true) { this.out.println(" <input type=\"image\" name=\"btn_delete\" src=\"" + this.imgDir + this.sosLang + "/btn_delete.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_delete_alt") + "\" onClick=\"document.sos_settings.button.value=\'delete\'; return confirm(\'" + this.rb.getMessage("sos.settings.dialog.confirm_delete_entry") + "\');\"> "); } if (this.sectionType == 0) { this.out.println(" <input type=\"image\" name=\"btn_schema\" src=\"" + this.imgDir + this.sosLang + "/btn_schema.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_schema_alt") + "\" onClick=\"document.sos_settings.button.value=\'schema\';\"> "); } this.out.println(" <input type=\"image\" name=\"btn_duplicate\" src=\"" + this.imgDir + this.sosLang + "/btn_duplicate.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_duplicate_alt") + "\" onClick=\"document.sos_settings.button.value=\'duplicate\';\"> "); isBreak = true; } } this.out.println(" <input type=\"image\" name=\"btn_cancel\" src=\"" + this.imgDir + this.sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\" onClick=\"document.sos_settings.button.value=\'cancel\';\"> "); this.out.println(" <input type=\"image\" name=\"btn_reset\" src=\"" + this.imgDir + this.sosLang + "/btn_reset.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_reset_alt") + "\" onClick=\"document.sos_settings.reset(); return false;\"> "); } else { this.out.println(" <input type=\"image\" name=\"btn_cancel\" src=\"" + this.imgDir + this.sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\"> "); } this.out.println(" </td>"); this.out.println("</tr>"); this.showTableEnd(); this.out.println("</form>"); if (this.hasWriteRight == true) { StringBuffer confirm = new StringBuffer(); StringBuffer confirm_vals = new StringBuffer(); boolean hasEntriesLongValues = false; if (this.entriesLongValues != null && this.entriesLongValues.size() > 0) { hasEntriesLongValues = true; for (int v = 0; v < this.entriesLongValues.size(); v++) { HashMap hm = (HashMap) this.entriesLongValues.get(v); confirm_vals .append(this.rb.getMessage("sos.settings.dialog.confirm_change_schema_long_value_sub", hm.get("section").toString(), hm.get("name").toString())); } confirm.append(this.rb.getMessage("sos.settings.dialog.confirm_change_schema_long_value", labelDocument.trim(), confirm_vals.toString())); } this.out.println("<script language=\"JavaScript\" type=\"text/javascript\">"); if (defaultJavascript.length() != 0) { this.out.println(defaultJavascript.toString()); } ///////////////////////////////////////////////// this.out.println("function sos_settings_input_type_onChange() {"); this.out.println(" "); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document." + this.form + ".value.style.display = '';"); this.out.println(" document.getElementById(\"sos_settings_import\").style.display = 'none';"); this.out.println(" }"); this.out.println(" "); this.out.println(" var it = document.sos_settings.input_type;"); this.out.println(" var is = document.sos_settings.input_size;"); this.out.println(" var iv = it.options[it.selectedIndex].value;"); this.out.println(" var dt = document.sos_settings.display_type;"); this.out.println(" var ds = document.sos_settings.display_size;"); this.out.println(" var dv = dt.options[dt.selectedIndex].value;"); this.out.println(" "); this.out.println(" //alert(iv+\"=\"+dv);"); this.out.println(" "); this.out.println(" switch (iv) {"); this.out.println(" case '0' : if (dv == '2' || dv == '4' ) { "); this.out.println(" dt.value = '0';"); this.out.println(" }"); this.out.println(" else if (dv == '3') {"); this.out.println(" ds.value = '" + this.defaultDisplaySize + "';"); this.out.println(" is.value = '" + this.defaultInputSize + "';"); this.out.println(" }"); if (hasEntriesLongValues) { this.out.println(" if(confirm('" + confirm.toString() + "') == false){"); if (this.record.get("input_type").toString().equals("5")) { this.out.println(" it.value = '5';"); this.out.println(" dt.value = '3';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '100';"); } else { this.out.println(" it.value = '6';"); this.out.println(" dt.value = '4';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '';"); } this.out.println(" }"); this.out.println(" "); } this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '1' :"); this.out.println(" case '2' :"); this.out.println(" case '4' : if (dv == '2' || dv == '4') { dt.value = '0'; }"); if (hasEntriesLongValues) { this.out.println(" if(confirm('" + confirm.toString() + "') == false){"); if (this.record.get("input_type").toString().equals("5")) { this.out.println(" it.value = '5';"); this.out.println(" dt.value = '3';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '100';"); } else { this.out.println(" it.value = '6';"); this.out.println(" dt.value = '4';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '';"); } this.out.println(" }"); } this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '3' : dt.value = '2';"); if (hasEntriesLongValues) { this.out.println(" if(confirm('" + confirm.toString() + "') == false){"); if (this.record.get("input_type").toString().equals("5")) { this.out.println(" it.value = '5';"); this.out.println(" dt.value = '3';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '100';"); } else { this.out.println(" it.value = '6';"); this.out.println(" dt.value = '4';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '';"); } this.out.println(" }"); } this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '5' :"); this.out.println(" if(dt.value == '4'){"); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document.getElementById(\"sos_settings_import\").style.display = '';"); this.out.println(" document." + this.form + ".value.style.display = 'none';"); this.out.println(" }"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '';"); this.out.println(" }"); this.out.println(" else{"); this.out.println(" dt.value = '3';"); this.out.println(" is.value = '';"); this.out.println(" ds.value = '100';"); this.out.println(" "); this.out.println(" //!!!!!!!!!!!!!"); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document." + this.form + ".value.style.display = '';"); this.out.println( " document.getElementById(\"sos_settings_import\").style.display = 'none';"); this.out.println(" }"); this.out.println(" }"); this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '6' :"); this.out.println(" dt.value = '4';"); this.out.println(" "); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document.getElementById(\"sos_settings_import\").style.display = '';"); this.out.println(" document." + this.form + ".value.style.display = 'none';"); this.out.println(" }"); this.out.println(" "); this.out.println(" is.value = '';"); this.out.println(" ds.value = '';"); this.out.println(" "); this.out.println(" break;"); this.out.println(" }// switch"); this.out.println("}//function"); this.out.println(" "); this.out.println(" "); this.out.println(" "); this.out.println("function sos_settings_display_type_onChange() {"); this.out.println(" "); this.out.println(" var it = document.sos_settings.input_type;"); this.out.println(" var iv = it.options[it.selectedIndex].value;"); this.out.println(" var dt = document.sos_settings.display_type;"); this.out.println(" var dv = dt.options[dt.selectedIndex].value;"); this.out.println(" var ds = document.sos_settings.display_size;"); this.out.println(" var is = document.sos_settings.input_size;"); this.out.println(" "); this.out.println(" //alert(dv+'='+it.value);"); this.out.println(" "); this.out.println(" switch (dv) {"); this.out.println(" case '0' :"); this.out.println(" case '1' :"); this.out.println(" case '3' :"); this.out.println(" if(it.value == '6'){"); this.out.println(" dt.selectedIndex = 4;"); this.out.println(" }"); this.out.println(" else if(it.value == '5'){"); this.out.println(" //!!!!!!!!!!!"); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document." + this.form + ".value.style.display = '';"); this.out.println( " document.getElementById(\"sos_settings_import\").style.display = 'none';"); this.out.println(" }"); this.out.println(" dt.selectedIndex = 3;"); this.out.println(" ds.value = '100';"); this.out.println(" is.value = '';"); this.out.println(" }"); this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '2' :"); this.out.println(" if(it.value == '6'){"); this.out.println(" dt.selectedIndex = 4;"); this.out.println(" }"); this.out.println(" else if(it.value == '5'){"); this.out.println(" dt.selectedIndex = 3;"); this.out.println(" }"); this.out.println(" else{"); this.out.println(" it.value = '3';"); this.out.println(" }"); this.out.println(" "); this.out.println(" break;"); this.out.println(" "); this.out.println(" case '4' :"); this.out.println(" "); this.out.println(" if(it.value == '6' || it.value == '5'){"); this.out.println(" dt.selectedIndex = 4;"); this.out.println(" ds.value = '';"); this.out.println(" is.value = '';"); this.out.println(" }"); this.out.println(" else{"); this.out.println(" it.value = '6';"); this.out.println(" }"); this.out.println(" if(typeof document." + this.form + ".value != \"undefined\"){"); this.out.println( " document.getElementById(\"sos_settings_import\").style.display = '';"); this.out.println(" document." + this.form + ".value.style.display = 'none';"); this.out.println(" }"); this.out.println(" "); this.out.println(" break;"); this.out.println(" } // switch"); this.out.println("}// function"); this.out.println(" "); this.out.println(" "); this.out.println("function sos_settings_onSubmit() {"); this.out.println(" var submitFlag = true;"); this.out.println(" var checkFlag = false;"); this.out.println(" "); this.out.println(" var dt = document.sos_settings.display_type;"); this.out.println(" if(typeof dt.options != 'undefined'){"); this.out.println(" var dv = dt.options[dt.selectedIndex];"); this.out.println(" }"); this.out.println(" "); this.out.println(" switch(document.sos_settings.button.value) {"); this.out.println(" case 'import' :"); this.out.println(" case 'schema' :"); this.out.println(" case 'clipboard_copy' :"); this.out.println(" case 'clipboard_paste' :"); this.out.println(" case 'cancel' :"); this.out.println(" case 'reset' : return submitFlag;"); this.out.println(" }"); this.out.println(" "); if (this.applicationType == 0 || this.settings.section.equals(this.settings.entrySchemaSection)) { if (this.sectionType == 0) { this.out.println( " if(submitFlag && ( document.sos_settings.name.value == null || document.sos_settings.name.value == '' )){"); this.out.println(" alert(\"" + this.rb.getMessage("sos.settings.dialog.alert_name_empty") + "\");"); this.out.println(" document.sos_settings.name.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); this.out.println( " if(submitFlag && ( document.sos_settings.title.value == null || document.sos_settings.title.value == '')){"); this.out.println(" alert(\"" + this.rb.getMessage("sos.settings.dialog.alert_title_empty") + "\");"); this.out.println(" document.sos_settings.title.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); this.out.println(" "); this.out.println(" if(typeof dv != 'undefined'){"); this.out.println( " if(submitFlag && ( dv.value == '4' && document.sos_settings.default_value.value == '')){"); this.out.println(" alert(\"" + this.rb.getMessage("sos.settings.dialog.alert_binary_default_value_empty") + "\");"); this.out.println(" document.sos_settings.default_value.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); this.out.println(" }"); this.out.println(" "); } } this.out.println(" if(document.sos_settings.forced.type == 'hidden' ){"); this.out.println(" checkFlag = (document.sos_settings.forced.value == '1' );"); this.out.println(" }"); this.out.println(" else{"); this.out.println(" checkFlag = document.sos_settings.forced[0].checked;"); this.out.println(" }"); if (displayType == 0 && !this.settings.section.equals(this.settings.entrySchemaSection)) { this.out.println( " if(submitFlag && checkFlag && ( document.sos_settings.value.value == null || document.sos_settings.value.value == '')){"); this.out.println( " alert('" + this.rb.getMessage("sos.settings.dialog.alert_value_empty") + "');"); this.out.println(" document.sos_settings.value.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); } this.out.println("return submitFlag;"); this.out.println("}"); this.out.println("</script>"); ////////////////////////////////777 } return true; } /** * Datensatz anlegen * * @return boolean Fehlerzustand * @throws Exception */ private boolean recordCreate() throws Exception { this.debug(3, "recordCreate"); this.record = new HashMap(); Date date = new Date(); this.record.put(this.settings.entryApplication.toLowerCase(), this.settings.application); this.record.put(this.settings.entrySection.toLowerCase(), this.settings.section); this.record.put("name", ""); this.record.put("value", ""); this.record.put("default_value", ""); this.record.put("documentation", ""); this.record.put("long_value", ""); this.record.put("title", ""); this.record.put("forced", "0"); this.record.put("entry_type", "0"); this.record.put("created", this.dateFormat.format(date)); this.record.put("created_by", this.settings.author); this.record.put("modified", this.dateFormat.format(date)); this.record.put("modified_by", this.settings.author); int ok = 0; if (!this.range.equals("application")) { ok = 1; } if (ok == 1) { if (!this.settings.section.equals(this.settings.entrySchemaSection)) { ok = 1; } else { ok = 0; } } if (ok == 1) { StringBuffer sql = new StringBuffer(); sql.append( " select \"INPUT_TYPE\", \"INPUT_SIZE\", \"DISPLAY_TYPE\", \"DISPLAY_SIZE\", \"FORCED\", \"ENTRY_TYPE\", \"DEFAULT_VALUE\" "); sql.append(" from " + this.settings.source + " "); sql.append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and "); sql.append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.section)); try { HashMap defaults = this.connection.getSingle(sql.toString()); if (defaults.size() > 0) { this.record.put("input_type", defaults.get("input_type").toString()); this.record.put("input_size", defaults.get("input_size").toString()); this.record.put("display_type", defaults.get("display_type").toString()); this.record.put("display_size", defaults.get("display_size").toString()); this.record.put("forced", defaults.get("forced").toString()); this.record.put("entry_type", defaults.get("entry_type").toString()); } else { ok = 0; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } if (ok == 0) { this.record.put("input_type", "0"); this.record.put("input_size", this.defaultInputSize); this.record.put("display_type", "0"); this.record.put("display_size", this.defaultDisplaySize); this.record.put("forced", "0"); } return true; } /** * Alle Sektionen einer Applikation anzeigen * * @param sectionsTitle * Titel * @param sections * Werte (siehe getDialogSections) * @return boolean Fehlerzustand * @throws Exception * @see #showDialogSections(String, Vector) */ private boolean showDialogSections(String sectionsTitle, Vector sections) throws Exception { this.debug(3, "showDialogSections : sectionsTitle = " + sectionsTitle + " sections = " + sections); if (sectionsTitle != null) { this.dialogSectionsTitle = sectionsTitle; } if (sections != null) { this.dialogSections = sections; } if (this.dialogSections == null) { this.dialogSections = new Vector(); } if (this.dialogSections.size() == 0) { if (this.error() == false) { this.setError(this.rb.getMessage("sos.settings.dialog.err_not_found_sections"), SOSClassUtil.getMethodName()); } } String imgLink = "<img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"4\" vspace=\"1\">"; String thisCon = (this.site.indexOf('?') != -1) ? "&" : "?"; String querySession = "?"; if (!this.sessionUseTransSID && !this.sessionVAR.equals("")) { querySession = thisCon + this.sessionVAR + "=" + this.sessionID + "&"; } else { querySession = thisCon; } this.showTableBegin(); this.showNavigation(new Integer(1), this.dialogApplicationIndex, null, null); this.aclRange = "application"; try { this.getRights(this.settings.application, null, null); } catch (Exception e) { this.setError("ACL : " + e.getMessage(), SOSClassUtil.getMethodName()); } // JS Code fir's Help schreiben this.openHelpWin(); String link = ""; if (this.dialogApplicationIndex.intValue() >= 0 && this.enableSectionManager == true) { if (this.applicationType == 1) { // Schema if (this.hasReadRight == true || this.hasWriteRight == true || this.hasCreateRight == true) { this.out.println("<tr class=\"" + this.styleTr + "\">"); link = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + querySession + "action=new&range=section&application=" + this.response.encodeURL(this.settings.application) + "&application_type=" + this.applicationType + "\">"; this.out.println(" <td class=\"" + this.styleTd + "\">" + link + imgLink + this.dialogSectionsNewTitle + "</a></td>"); this.out.println(" </tr>"); } } else { if (this.hasCreateRight == true) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); link = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + querySession + "action=new&range=section&application=" + this.response.encodeURL(this.settings.application) + "&application_type=" + this.applicationType + "\">"; this.out.println(" <td class=\"" + this.styleTd + "\">" + link + imgLink + this.dialogSectionsNewTitle + "</a></td>"); this.out.println(" </tr>"); } } } String sqlHelp = " select \"APPLICATION\",\"SECTION\", \"NAME\" "; sqlHelp += " from " + this.settings.source + " s "; sqlHelp += " where s.\"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "; sqlHelp += " s.\"" + this.settings.entryApplication + "\" <> s.\"" + this.settings.entrySection + "\" and "; sqlHelp += " s.\"" + this.settings.entrySection + "\" = s.\"" + this.settings.entryName + "\" and "; sqlHelp += " s.\"DOCUMENTATION\" is not null "; Hashtable helpTexts = new Hashtable(); try { Vector helpText = this.connection.getArrayAsVector(sqlHelp); if (helpText.size() > 0) { for (Enumeration el = helpText.elements(); el.hasMoreElements();) { HashMap hm = (HashMap) el.nextElement(); helpTexts.put(hm.get("application").toString() + hm.get("section").toString() + hm.get("name").toString(), "Help"); } this.hasHelps = true; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } for (Enumeration el = this.dialogSections.elements(); el.hasMoreElements();) { HashMap section = (HashMap) el.nextElement(); String linkHelp = " "; String linkEntries = ""; String linkSection = ""; boolean hasRights = true; boolean isSchema = false; if (section.get("name").toString().equals(this.settings.entrySchemaSection)) { isSchema = true; if (this.hasCreateRight == true) { // Schema bearbeiten linkEntries = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + querySession + "action=show&range=entries&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response .encodeURL(section.get(this.settings.entrySection.toLowerCase()).toString()) + "&application_type=" + this.applicationType + "§ion_type=" + section.get("entry_type").toString() + "\">"; linkSection = linkEntries; } else { hasRights = false; } } else { String k = this.settings.application + section.get(this.settings.entrySection.toLowerCase()).toString() + section.get(this.settings.entrySection.toLowerCase()).toString(); if (helpTexts.containsKey(k)) { String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } String helpHref = "source=" + this.settings.source + "&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response .encodeURL(section.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response .encodeURL(section.get(this.settings.entrySection.toLowerCase()).toString()); linkHelp = "<a href=\"javascript:openHelpWin('" + helpHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.imgHelp + "\" border=\"0\" title=\"" + this.rb.getMessage("sos.settings.dialog.label_help") + "\"></a>"; } linkEntries = "<a href=\"" + this.site + querySession + "action=show&range=entries&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(section.get(this.settings.entrySection.toLowerCase()).toString()) + "&application_type=" + this.applicationType + "§ion_type=" + section.get("entry_type").toString() + "\">"; linkSection = (this.enableSectionManager == true) ? "<a href=\"" + this.site + querySession + "action=show&range=section&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL( section.get(this.settings.entrySection.toLowerCase()).toString()) + "\">" : linkEntries; } this.aclRange = "section"; try { this.getRights(section.get("application").toString(), section.get("section").toString(), null); if (this.hasReadRight == false && this.hasCreateRight == false) { continue; } } catch (Exception e) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"50%\">"); this.out.println(" " + section.get(this.settings.entrySettingTitle.toLowerCase()).toString()); this.out.println(" </td>"); this.out.println(" <td>"); this.showError("ACL : " + e.getMessage()); this.out.println(" </td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" </tr>"); continue; } if (hasRights) { String sectionTitle = (isSchema) ? this.rb.getMessage("sos.settings.dialog.dialog_sections_schema_title") : section.get(this.settings.entrySettingTitle.toLowerCase()).toString(); this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"50%\">"); this.out.println(" " + linkSection + imgLink + "</a>" + linkEntries + sectionTitle + "</a>"); this.out.println(" </td>"); this.out.println(" <td>" + linkHelp + "</td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" </tr>"); } } // enumeration this.showActions(new Integer(1), this.dialogApplicationIndex, null, null); this.showTableEnd(); return true; } /** * Datensatz lesen * * @param readDocumentation * true-Blob lesen * @return boolean Fehlerzustand * @throws Exception * @see #recordGetKey(boolean) */ private boolean recordGetKey(boolean readDocumentation) throws Exception { this.debug(3, "recordGetKey : readDocumentation = " + readDocumentation); boolean autoSetLongValues = false; if (this.enableAutoSetLongValues && this.range.equals("entry")) { autoSetLongValues = true; } StringBuffer sql = new StringBuffer(); sql.append( " select \"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DEFAULT_VALUE\",\"TITLE\",\"INPUT_TYPE\",\"INPUT_SIZE\",\"DISPLAY_TYPE\",\"DISPLAY_SIZE\",\"FORCED\",\"ENTRY_TYPE\",\"CREATED\",\"CREATED_BY\",\"MODIFIED\",\"MODIFIED_BY\" "); sql.append(" from " + this.settings.source + " "); sql.append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sql.append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and "); sql.append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); try { this.record = this.connection.getSingle(sql.toString()); this.record.put("original_name", this.record.get("name").toString()); this.record.put("long_value", ""); this.record.put("documentation", ""); if (this.record.size() == 0) { return false; } else { if (readDocumentation == true) { try { byte[] documentation = this.connection .getBlob("select \"DOCUMENTATION\" from " + this.settings.source + " where \"APPLICATION\"=" + this.dbQuoted(this.settings.application) + " and \"SECTION\"=" + this.dbQuoted(this.settings.section) + " and \"NAME\" =" + this.dbQuoted(this.settings.entry)); if (documentation != null) { this.record.put("documentation", new String(documentation)); } else { this.record.put("documentation", ""); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } if (autoSetLongValues) { this.setDialogEntriesLongValues(); } else { if (this.record.get("input_type").toString().equals("5")) { // Dokument try { byte[] longValue = this.connection .getBlob("select \"LONG_VALUE\" from " + this.settings.source + " where \"APPLICATION\"=" + this.dbQuoted(this.settings.application) + " and \"SECTION\"=" + this.dbQuoted(this.settings.section) + " and \"NAME\" =" + this.dbQuoted(this.settings.entry)); if (longValue != null && longValue.length > 0) { this.record.put("value", new String(longValue)); if (this.record.get("display_type").toString().equals("4")) { // hidden this.hasBinaryValue.put(this.record.get("application").toString() + this.record.get("section").toString() + this.record.get("name").toString(), "1"); } } else { this.record.put("value", ""); } this.record.put("long_value", ""); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } else if (this.record.get("input_type").toString().equals("6")) { // Dokument binr String bv = this.connection.getSingleValue("select count(\"APPLICATION\") from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry) + " and \"LONG_VALUE\" is not null"); this.hasBinaryValue.put(this.record.get("application").toString() + this.record.get("section").toString() + this.record.get("name").toString(), bv); } } this.entriesLongValues = new Vector(); if (this.applicationType > 0 && this.action.equals("schema")) { this.entriesLongValues = this.connection.getArrayAsVector("select \"SECTION\",\"NAME\" from " + this.settings.source + " where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and \"" + this.settings.entrySection + "\" <> '" + this.settings.entrySchemaSection + "' and \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry) + " and \"" + this.settings.entryName + "\" <> \"" + this.settings.entryApplication + "\" and \"LONG_VALUE\" is not null "); } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } return true; } /** * Anzeige des Seitenkopfes * * @param content * Inhalt des Headers * @see #showDialogHeader(String) */ private void showDialogHeader(String content) throws Exception { this.debug(3, "showDialogHeader : content = " + content); if (content != null) { this.headerContent = content; } this.out.println(this.headerContent); } /** * Alle Applikationen anzeigen * * @param applicationsTitle * Titel * @param applications * Werte (siehe getDialogApplications) * @return boolean Fehlerzustand * @throws Exception * @see #showDialogApplications(String, Vector) */ private boolean showDialogApplications(String applicationsTitle, Vector applications) throws Exception { this.debug(3, "showDialogApplications : applicationsTitle = " + applicationsTitle + " applications = " + applications); if (applicationsTitle != null) { this.dialogApplicationsTitle = applicationsTitle; } if (applications != null) { this.dialogApplications = applications; } if (this.dialogApplications == null) { this.dialogApplications = new Vector(); } if (this.dialogApplications.size() == 0) { if (this.error() == false) { this.setError(this.rb.getMessage("sos.settings.dialog.err_not_found_apps"), SOSClassUtil.getMethodName()); } } this.showTableBegin(); this.showNavigation(new Integer(1), null, null, null); try { this.getTopLevelRights(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); this.showTableEnd(); return false; } if (!this.hasTopLevelReadRight && !this.hasTopLevelCreateRight) { this.showTableEnd(); return false; } // JS Code fir's Help schreiben this.openHelpWin(); //$normalize_field_name = $this->normalize_field_name; String imgLink = "<img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"4\" vspace=\"1\">"; String thisCon = (this.site.indexOf('?') != -1) ? "&" : "?"; String querySession = "?"; if (!this.sessionUseTransSID && !this.sessionVAR.equals("")) { querySession = thisCon + this.sessionVAR + "=" + this.sessionID + "&"; } else { querySession = thisCon; } if (this.enableApplicationManager == true && this.hasTopLevelCreateRight) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); String link = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + querySession + "action=new&range=application\">"; this.out.println(" <td class=\"" + this.styleTd + "\">"); if (this.hasCreateRight == true) { this.out.println(link + imgLink + this.dialogApplicationsNewTitle + "</a>"); } this.out.println(" </td>"); this.out.println(" </tr>"); } String sqlHelp = " select \"APPLICATION\",\"SECTION\", \"NAME\" "; sqlHelp += " from " + this.settings.source + " s "; sqlHelp += " where s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entrySection + "\" and "; sqlHelp += " s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entryName + "\" and "; sqlHelp += " s.\"DOCUMENTATION\" is not null "; Hashtable helpTexts = new Hashtable(); try { Vector helpText = this.connection.getArrayAsVector(sqlHelp); if (helpText.size() > 0) { for (Enumeration el = helpText.elements(); el.hasMoreElements();) { HashMap hm = (HashMap) el.nextElement(); helpTexts.put(hm.get("application").toString() + hm.get("section").toString() + hm.get("name").toString(), "Help"); } this.hasHelps = true; } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } try { for (Enumeration el = this.dialogApplications.elements(); el.hasMoreElements();) { HashMap application = (HashMap) el.nextElement(); String linkSections = "<a href=\"" + this.site + querySession + "action=show&range=sections&application=" + this.response .encodeURL(application.get(this.settings.entryApplication.toLowerCase()).toString()) + "&application_type=" + application.get("entry_type") + "\">"; String linkApplication = ""; if (this.enableApplicationManager == true) { linkApplication = "<a href=\"" + this.site + querySession + "action=show&range=application&application=" + this.response.encodeURL( application.get(this.settings.entryApplication.toLowerCase()).toString()) + "\">"; } else { linkApplication = linkSections; } String k = application.get(this.settings.entryApplication.toLowerCase()).toString() + application.get(this.settings.entrySection.toLowerCase()).toString() + application.get(this.settings.entryName.toLowerCase()).toString(); String linkHelp = " "; if (helpTexts.containsKey(k)) { String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } String helpHref = "source=" + this.settings.source + "&application=" + this.response.encodeURL( application.get(this.settings.entryApplication.toLowerCase()).toString()) + "§ion=" + this.response .encodeURL(application.get(this.settings.entrySection.toLowerCase()).toString()) + "&entry=" + this.response .encodeURL(application.get(this.settings.entryName.toLowerCase()).toString()); linkHelp = "<a href=\"javascript:openHelpWin('" + helpHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.imgHelp + "\" border=\"0\" title=\"" + this.rb.getMessage("sos.settings.dialog.label_help") + "\"></a>"; } try { this.getRights(application.get("application").toString(), null, null); if (this.hasReadRight == false && this.hasCreateRight == false) { continue; } } catch (Exception e) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"50%\">"); this.out.println(" " + application.get(this.settings.entrySettingTitle.toLowerCase())); this.out.println(" </td>"); this.out.print(" <td>"); this.showError("ACL : " + e.getMessage()); this.out.println("</td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" </tr>"); continue; } this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\">"); this.out.println(" <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">"); this.out.println(" <tr>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"50%\">"); this.out.println(linkApplication + imgLink + "</a>" + linkSections + application.get(this.settings.entrySettingTitle.toLowerCase()) + "</a>"); this.out.println(" </td>"); this.out.println(" <td>" + linkHelp + "</td>"); this.out.println(" </tr>"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" </tr>"); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } this.showActions(new Integer(1), null, null, null); this.showTableEnd(); return true; } /** * JS Code zum ffnen von Hifsfenster * */ private void openHelpWin() throws Exception { this.debug(3, "openHelpWin"); this.out.println("<script language=\"JavaScript\">"); this.out.println(" function openHelpWin(href,jsessionid){"); this.out.println(" var session_str = \"\";"); this.out.println(" if(jsessionid){"); this.out.println(" session_str = \"&" + this.sessionVAR + "=\"+jsessionid;"); this.out.println(" }"); //this.out.println(" href = href.replace(\"\\\",\"\\\\\"); "); this.out.println(" helpWin = window.open(\"" + this.helpFile + "?action=show&range=help&locale=" + this.locale + "&\"+href+session_str,\"_blank\",\"width=" + this.helpWinWidth + ",height=" + this.helpWinHeight + ",status=no,toolbar=no,menubar=no,resizable=yes,directories=no,location=no,scrollbars\");"); this.out.println(" }"); this.out.println("</script>"); } /** * JS Code zum ffnen von Hilfetexten Fenster * */ private void openHelpsWin() throws Exception { this.debug(3, "openHelpsWin"); this.out.println("<script language=\"JavaScript\">"); this.out.println(" function openHelpsWin(href,jsessionid){"); this.out.println(" var session_str = \"\";"); this.out.println(" if(jsessionid){"); this.out.println(" session_str = \"&" + this.sessionVAR + "=\"+jsessionid;"); this.out.println(" }"); this.out.println(" helpsWin = window.open(\"" + this.documentationFile + "?locale=" + this.locale + "&action=show&range=helps&\"+href+session_str,\"_blank\",\"width=" + this.helpsWinWidth + ",height=" + this.helpsWinHeight + ",status=no,toolbar=no,menubar=no,resizable=yes,directories=no,location=no,scrollbars\");"); this.out.println(" }"); this.out.println("</script>"); } /** * JS Code zum ffnen von Hilfetexten Fenster * */ private void openDocumentationWin() throws Exception { this.debug(3, "openDocumentationWin"); this.out.println("<script language=\"JavaScript\">"); this.out.println(" function openDocumentationWin(href,jsessionid){"); this.out.println(" var session_str = \"\";"); this.out.println(" if(jsessionid){"); this.out.println(" session_str = \"&" + this.sessionVAR + "=\"+jsessionid;"); this.out.println(" }"); this.out.println(" documentationWin = window.open(\"" + this.documentationFile + "?locale=" + this.locale + "&action=show&range=documentation&\"+href+session_str,\"_blank\",\"width=" + this.docuWinWidth + ",height=" + this.docuWinHeight + ",status=no,toolbar=no,menubar=no,resizable=yes,directories=no,location=no,scrollbars\");"); this.out.println(" }"); this.out.println("</script>"); } /** * Werte aller Applickationen lesen * * @param refresh * true Werte aus der Batenbank lesen * @return boolean Fehlerzustand * @throws Exception * @see #setDialogApplications(boolean) * */ private boolean setDialogApplications(boolean refresh) throws Exception { this.debug(3, "setDialogApplications : refresh = " + refresh); if (this.dialogApplications == null || this.dialogApplications.size() == 0 || refresh == true) { try { this.getDialogApplications(null); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } if (!this.settings.application.equals("") && this.dialogApplications != null) { for (int i = 0; i < this.dialogApplications.size(); i++) { HashMap hm = new HashMap(); hm = (HashMap) this.dialogApplications.get(i); if (this.settings.application .equals(hm.get(this.settings.entryApplication.toLowerCase()).toString())) { try { this.applicationType = Integer.parseInt((String) hm.get("entry_type")); } catch (Exception e) { this.applicationType = 0; } this.dialogApplicationIndex = new Integer(i); break; } } } else { this.dialogApplicationIndex = new Integer(-1); } return true; } /** * Werte aller Sectionen einer Applikation lesen und die Indexes setzen * * @return boolean Fehlerzustand * @throws Exception */ private boolean setDialogSections() throws Exception { this.debug(3, "setDialogSections"); if (!this.settings.application.equals("")) { try { this.getDialogSections(this.settings.application, null); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } } return true; } /** * Werte aller Entries einer Sektion lesen und die Indexes setzen * * @return boolean Fehlerzustand * @throws Exception */ private boolean setDialogEntries() throws Exception { this.debug(3, "setDialogEntries"); if (!this.settings.section.equals("") && this.dialogSections != null) { for (int i = 0; i < this.dialogSections.size(); i++) { HashMap hm = new HashMap(); hm = (HashMap) this.dialogSections.get(i); if (this.settings.section.equals(hm.get(this.settings.entrySection.toLowerCase()).toString())) { try { this.sectionType = Integer.parseInt((String) hm.get("entry_type")); } catch (Exception e) { this.sectionType = 0; } this.dialogSectionIndex = new Integer(i); break; } } } else { this.dialogSectionIndex = new Integer(-1); } if (!this.settings.application.equals("") && !this.settings.section.equals("")) { try { /* * if (this.enableAutoSetLongValues) { * this.setDialogEntriesLongValues(); } */ this.getDialogEntries(this.settings.application, this.settings.section, null); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); this.connection.rollback(); return false; } } if (!this.settings.entry.equals("") && this.dialogEntries != null) { for (int i = 0; i < this.dialogEntries.size(); i++) { HashMap hm = new HashMap(); hm = (HashMap) this.dialogEntries.get(i); if (this.settings.entry.equals(hm.get(this.settings.entryName.toLowerCase()).toString())) { this.dialogEntryIndex = new Integer(i); break; } } } else { this.dialogEntryIndex = new Integer(-1); } return true; } /** * Diese Funktion vermeidet Inhalt von inkonsistenten Daten. * * Hintergrund : da es als Wert entweder "VALUE" oder "LONG_VALUE" benutzt * werden knnen, dient "INPUT_TYPE" Feld als Flag , um zu unterscheiden - * welches von den beiden Felder gerade aktiv ist. bei "LONG_VALUE" mssen * "INPUT_TYPE" = 5(Dokument) oder 6(Dokument binr) und "VALUE" = null * gesetzt werden. und ausserdem "DISPLAY_TYPE" 3(Textarea) bzw 4(Versteckt) * sein * * bei Settingsaktualisierung durch die fremden Schnittstellen, kann * vorkommen , dass die "LONG_VALUE"s aktualisiert werden, ohne das * "INPUT_TYPE" auf 5,6 und "DISPLAY_TYPE" auf 3(Textarea) bzw 4(Versteckt) * zu setzen : das wird dazu fhren, dass die BLOBs dann (ohne diese * Funktion) als eine Zeichenkette betrachtet werden und verloren gehen. * */ private void setDialogEntriesLongValues() throws Exception { StringBuffer sqlLongValue = new StringBuffer("select \"LONG_VALUE\" from " + this.settings.source) .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); StringBuffer sql; try { byte[] longValue = this.connection.getBlob(sqlLongValue.toString()); if (longValue != null && longValue.length > 0) { String defaultValue = (this.record.get("default_value").toString().indexOf('.') != -1) ? this.record.get("default_value").toString() : this.settings.defaultDocumentFileName; String inputType = this.record.get("input_type").toString(); String displayType = this.record.get("display_type").toString(); if (inputType.equals("5")) { // Dokument if (displayType.equals("3") || displayType.equals("4")) { //Textarea oder Versteckt - alles in Ordnung } else { sql = new StringBuffer(" update " + this.settings.source + " ") .append(" set \"" + this.settings.entryValue + "\" = null , ") .append(" \"INPUT_TYPE\" = 5 , ") .append(" \"DISPLAY_TYPE\" = 4 , ") .append(" \"DEFAULT_VALUE\" = '" + defaultValue + "' ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); this.connection.execute(sql.toString()); this.connection.commit(); this.record.put("input_type", "5"); this.record.put("display_type", "4"); this.record.put("default_value", defaultValue); } this.record.put("value", new String(longValue)); this.record.put("long_value", ""); if (displayType.equals("4")) { this.hasBinaryValue.put(this.record.get("application").toString() + this.record.get("section").toString() + this.record.get("name").toString(), "1"); } } //inputType = 5 else if (inputType.equals("6")) { // Dokument binr if (displayType.equals("4")) { //Versteckt - alles in Ordnung } else { sql = new StringBuffer(" update " + this.settings.source + " ") .append(" set \"" + this.settings.entryValue + "\" = null , ") .append(" \"INPUT_TYPE\" = 6 , ") .append(" \"DISPLAY_TYPE\" = 4 , ") .append(" \"DEFAULT_VALUE\" = '" + defaultValue + "' ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); this.connection.execute(sql.toString()); this.connection.commit(); this.record.put("input_type", "6"); this.record.put("display_type", "4"); this.record.put("default_value", defaultValue); } this.record.put("value", ""); this.hasBinaryValue.put(this.record.get("application").toString() + this.record.get("section").toString() + this.record.get("name").toString(), "1"); } else {// wir machen Dokument Binr Versteckt sql = new StringBuffer(" update " + this.settings.source + " ") .append(" set \"" + this.settings.entryValue + "\" = null , ") .append(" \"INPUT_TYPE\" = 6 , ") .append(" \"DISPLAY_TYPE\" = 4 , ") .append(" \"DEFAULT_VALUE\" = '" + defaultValue + "' ") .append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and ") .append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and ") .append(" \"" + this.settings.entryName + "\" = " + this.dbQuoted(this.settings.entry)); this.connection.execute(sql.toString()); this.connection.commit(); this.record.put("value", ""); this.record.put("input_type", "6"); this.record.put("display_type", "4"); this.record.put("default_value", defaultValue); this.hasBinaryValue.put(this.record.get("application").toString() + this.record.get("section").toString() + this.record.get("name").toString(), "1"); } } // if long value else { } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } /** * Aktionen anzeigen: Suchen, Export, Import * * @param columnIndex * Anzahl Spalten der Darstellung * @param applicationIndex * Index der aktuellen Applikation in dialog_applications() * @param sectionIndex * Index der aktuellen Sektion in dialog_sections() * @param entryIndex * Index des aktuellen Eintrags in dialog_entries() * @return boolean Fehlerzustand * @see #showActions(Integer, Integer, Integer, Integer) */ private boolean showActions(Integer columnIndex, Integer applicationIndex, Integer sectionIndex, Integer entryIndex) throws Exception { this.debug(3, "showActions : columnIndex = " + columnIndex + " applicationIndex = " + applicationIndex + " sectionIndex = " + sectionIndex + " entryIndex = " + entryIndex); if (this.settings.section.equals(this.settings.entrySchemaSection)) { if (this.hasCreateRight == false) { this.enableExport = false; this.enableImport = false; this.enableDocumentation = false; } } else { if (this.aclRange.equals("application")) { // Alle Applicationen if (this.hasTopLevelWriteRight == false) { this.enableExport = false; this.enableImport = false; this.enableDocumentation = false; //this.enableHelps = false; } } else { if (this.hasWriteRight == false) { this.enableExport = false; this.enableImport = false; this.enableDocumentation = false; //this.enableHelps = false; } } } if (this.action.equals("query") && this.settings.application.equals("")) { // Suche // bei // allen // Applikationen try { this.getTopLevelRights(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } if (this.hasTopLevelWriteRight == false) { this.enableExport = false; this.enableImport = false; this.enableDocumentation = false; //this.enableHelps = false; } } String inputQuery = ""; String inputQueryReplace = ""; String inputExport = ""; String inputImport = ""; String selected_meta = " selected "; String selected_value = ""; String span_replace_style = " style=\"display:none\" "; int query_select_range = 1; if (this.request != null) { if (this.getRequestValue("input_query") != null) { inputQuery = this.getRequestValue("input_query"); } // kein trim wegen regul.ausdr usw if (this.getRequestValue("input_query_replace") != null) { inputQueryReplace = this.getRequestValue("input_query_replace"); } if (this.getRequestValue("input_export") != null) { inputExport = this.getRequestValue("input_export").trim(); } if (this.getRequestValue("input_import") != null) { inputImport = this.getRequestValue("input_import").trim(); } try { if (this.getRequestValue("query_select_range") != null) { query_select_range = Integer.parseInt(this.getRequestValue("query_select_range").trim()); } } catch (Exception e) { } } switch (query_select_range) { case 2: selected_value = " selected "; selected_meta = ""; span_replace_style = ""; break; } String[] listbox_translation = { "all settings", "values" }; try { String[] listbox_translation_msg = this.rb.getMessage("sos.settings.dialog.listbox_query_select_range") .split(";"); listbox_translation[0] = listbox_translation_msg[0]; listbox_translation[1] = listbox_translation_msg[1]; } catch (Exception e) { } this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\" colspan=\"" + columnIndex + "\">"); this.out.println(" <table width=\"100%\" border=\"0\"><tr>"); this.out.println( " <form name=\"" + this.form + "_query\" action=\"" + this.site + "\" method=\"post\">"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\">"); this.out.println(" <input type=\"image\" name=\"btn_query\" src=\"" + this.imgDir + this.sosLang + "/btn_query.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_query_alt") + "\">"); this.out.println(" </td>"); this.out.println(" <td>"); this.out.println( " <select name=\"query_select_range\" onchange=\"document.getElementById('span_query_replace').style.display = (this.selectedIndex == 1) ? '' : 'none';\">"); this.out.println( " <option value=\"1\" " + selected_meta + ">" + listbox_translation[0] + "</option>"); this.out.println( " <option value=\"2\" " + selected_value + ">" + listbox_translation[1] + "</option>"); this.out.println(" </select>"); this.out.println(" </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\" colspan=\"2\" nowrap>"); this.out.println(" <input type=\"text\" name=\"input_query\" class=\"" + this.styleInput + "\" value=\"" + inputQuery + "\">"); this.out.println(" <span id=\"span_query_replace\" " + span_replace_style + ">"); this.out.println(this.rb.getMessage("sos.settings.dialog.label_query_replace")); this.out.println(" <input type=\"text\" name=\"input_query_replace\" class=\"" + this.styleInput + "\" value=\"" + inputQueryReplace + "\">"); this.out.println(" " + this.rb.getMessage("sos.settings.dialog.label_query_replace_store")); this.out.println(" </span>"); boolean hasEntries = false; if (applicationIndex != null) { if (applicationIndex.intValue() == 0 || applicationIndex.intValue() > 0) { this.out.println(" " + this.rb.getMessage("sos.settings.dialog.label_search_range")); hasEntries = true; } } if (sectionIndex != null && hasEntries == false) { if (sectionIndex.intValue() == 0 || sectionIndex.intValue() > 0) { this.out.println(" " + this.rb.getMessage("sos.settings.dialog.label_search_range")); } } this.out.println( " <input type=\"hidden\" name=\"application\" value=\"" + this.settings.application + "\">"); this.out.println( " <input type=\"hidden\" name=\"section\" value=\"" + this.settings.section + "\">"); this.out.println(" </td></form></tr>"); if (this.enableExport == true) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <form name=\"" + this.form + "_export\" action=\"" + this.site + "\" method=\"post\" onSubmit=\"if (document." + this.form + "_export.input_export.value != '' ) { document." + this.form + "_export.sos_headers_off.value=0; } return true;\">"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\">"); this.out.println(" <input type=\"image\" name=\"btn_export\" src=\"" + this.imgDir + this.sosLang + "/btn_export.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_export_alt") + "\"> "); this.out.println(" </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\">"); this.out.println(" <input type=\"checkbox\" name=\"export_documentation\" value=\"1\""); if (this.exportDocumentation == 1) { this.out.println(" checked"); } this.out.println("> " + this.rb.getMessage("sos.settings.dialog.label_only_docs")); this.out.println(" </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\" width=\"40%\"><nobr>"); this.out.println(" <input type=\"text\" name=\"input_export\" class=\"" + this.styleInput + "\" value=\"" + inputExport + "\"> "); boolean hasExportTitle = false; if (sectionIndex != null) { if (sectionIndex.intValue() == 0 || sectionIndex.intValue() > 0) { this.out.println(this.dialogSectionsExportTitle); hasExportTitle = true; } } if (applicationIndex != null && hasExportTitle == false) { if (applicationIndex.intValue() == 0 || applicationIndex.intValue() > 0) { this.out.println(this.dialogApplicationsExportTitle); } } this.out.println(" </nobr></td>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"40%\">"); this.out.println(" <input type=\"hidden\" name=\"sos_headers_off\" value=\"1\">"); this.out.println(" <input type=\"hidden\" name=\"application\" value=\"" + this.settings.application + "\">"); this.out.println( " <input type=\"hidden\" name=\"section\" value=\"" + this.settings.section + "\">"); this.out.println(" </td></form></tr>"); } if (this.enableImport == true) { this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <form name=\"" + this.form + "_import\" enctype=\"multipart/form-data\" action=\"" + this.site + "\" method=\"post\">"); this.out.println(" <td class=\"" + this.styleTd + "\" >"); this.out.println(" <input type=\"image\" name=\"btn_import\" src=\"" + this.imgDir + this.sosLang + "/btn_import.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_import_alt") + "\"> "); this.out.println(" </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" valign=\"top\">"); this.out.println(" <input type=\"checkbox\" name=\"import_documentation\" value=\"1\""); if (this.importDocumentation == 1) { this.out.println(" checked"); } this.out.println("> " + this.rb.getMessage("sos.settings.dialog.label_only_docs")); this.out.println(" </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"40%\">"); //$input_import = isset($_FILES['input_import']) ? // $_FILES['input_import']['name'] : $_REQUEST['input_import']; inputImport = ""; this.out.println(" <input type=\"file\" name=\"input_import\" class=\"" + this.styleInput + "\" value=\"" + inputImport + "\"> </td>"); this.out.println(" <td class=\"" + this.styleTd + "\" width=\"40%\">"); this.out.println(" <input type=\"hidden\" name=\"application\" value=\"" + this.settings.application + "\">"); this.out.println( " <input type=\"hidden\" name=\"section\" value=\"" + this.settings.section + "\">"); this.out.println(" </td></tr></form>"); } if (this.enableHelps == true) { this.openHelpsWin(); String helpsHref = "source=" + this.settings.source; if (this.settings.application.equals("") && this.settings.section.equals("")) { helpsHref += "&item=application"; } else if (!this.settings.application.equals("") && this.settings.section.equals("")) { helpsHref += "&item=section&application=" + this.response.encodeURL(this.settings.application); } else if (!this.settings.application.equals("") && !this.settings.section.equals("")) { String section = this.settings.section; if (this.settings.section.equals(this.settings.entrySchemaSection)) { section = this.settings.entrySchemaSection; } helpsHref += "&item=entry&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(section); } String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\" colspan=\"4\">"); if (this.hasHelps) { this.out.println(" <a href=\"javascript:openHelpsWin('" + helpsHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.sosLang + "/btn_help.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_help_alt") + "\" border=\"0\"></a>"); } else { this.out.println("<img src=\"" + this.imgDir + this.sosLang + "/btn_help.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_help_not_found_alt") + "\" border=\"0\">"); } this.out.println(" </td>"); this.out.println(" </tr>"); } if (this.enableDocumentation == true) { this.openDocumentationWin(); String docuHref = "source=" + this.settings.source; if (this.settings.application.equals("") && this.settings.section.equals("")) { docuHref += "&item=application"; } else if (!this.settings.application.equals("") && this.settings.section.equals("")) { docuHref += "&item=section&application=" + this.response.encodeURL(this.settings.application); } else if (!this.settings.application.equals("") && !this.settings.section.equals("")) { String section = this.settings.section; if (this.settings.section.equals(this.settings.entrySchemaSection)) { section = this.settings.entrySchemaSection; } docuHref += "&item=entry&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(section); } String session = "''"; if (!this.sessionID.equals("")) { session = "'" + this.sessionID + "'"; } this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td class=\"" + this.styleTd + "\" colspan=\"4\">"); this.out.println(" <a href=\"javascript:openDocumentationWin('" + docuHref + "'," + session + ");\"><img src=\"" + this.imgDir + this.sosLang + "/btn_docu.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_docu_alt") + "\" border=\"0\"></a>"); this.out.println(" </td>"); this.out.println(" </tr>"); } this.out.println(" </table>"); this.out.println(" </td>"); this.out.println("</tr>"); return true; } /** * Eintrag anzeigen * * @return boolean Fehlerzustand * @throws Exception */ private boolean showDialogApplication() throws Exception { this.debug(3, "showDialogApplication"); this.out.println("<form name=\"" + this.form + "\" action=\"" + this.site + "\" method=\"post\" onSubmit=\"return sos_settings_onSubmit()\">"); this.showTableBegin(); this.showNavigation(new Integer(2), this.dialogApplicationIndex, null, null); this.out.println("<input type=\"hidden\" name=\"button\">"); this.out.println("<input type=\"hidden\" name=\"application\" value=\"" + this.record.get(this.settings.entryApplication.toLowerCase()) + "\">"); boolean checkAcl = true; if (this.range.equalsIgnoreCase("application")) { this.out.println("<input type=\"hidden\" name=\"range\" value=\"application\">"); this.out.println("<input type=\"hidden\" name=\"section\" value=\"" + this.record.get(this.settings.entryApplication.toLowerCase()) + "\">"); this.out.println("<input type=\"hidden\" name=\"entry\" value=\"" + this.record.get(this.settings.entryApplication.toLowerCase()) + "\">"); if (this.isNew) { try { this.getTopLevelRights(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); return false; } this.hasCreateRight = this.hasTopLevelCreateRight; if (this.hasCreateRight) { this.hasWriteRight = true; this.hasReadRight = true; this.disabled = ""; } else { if (this.user != null) { this.setError(this.rb.getMessage("sos.settings.dialog.err_acl_create_new_apps", this.user.getFullName()), SOSClassUtil.getMethodName()); return false; } } checkAcl = false; } } else if (this.range.equalsIgnoreCase("section")) { this.out.println("<input type=\"hidden\" name=\"range\" value=\"section\">"); this.out.println("<input type=\"hidden\" name=\"section\" value=\"" + this.record.get(this.settings.entrySection.toLowerCase()) + "\">"); this.out.println("<input type=\"hidden\" name=\"entry\" value=\"" + this.record.get(this.settings.entrySection.toLowerCase()) + "\">"); } if (checkAcl) { this.aclRange = this.range; try { this.getRights(this.record.get("application").toString(), this.record.get("section").toString(), null); } catch (Exception e) { this.setError("ACL : " + e.getMessage(), SOSClassUtil.getMethodName()); } if (this.hasCreateRight) { if (this.isNew || this.applicationType == 1) { this.hasWriteRight = true; this.disabled = ""; } } if (this.applicationType == 1) { // schema if (this.isNew) { this.hasWriteRight = true; this.disabled = ""; } } } this.out.println("<tr class=\"" + this.styleTr + "\">"); this.out.println(" <th align=\"left\" valign=\"top\" class=\"" + this.styleTh + "\" colspan=\"2\">" + this.record.get("title") + " </th>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println("<td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">Name </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); this.out.println(" <input " + this.disabled + " name=\"name\" type=\"text\" size=\"80\" maxlength=\"100\" class=\"" + this.styleInput + "\" value=\"" + this.htmlSpecialChars(this.record.get("name").toString()) + "\">"); this.out.println(" </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_title") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\"><input " + this.disabled + " type=\"text\" name=\"title\" size=\"80\" maxlength=\"100\" class=\"" + this.styleInput + "\" value=\"" + this.htmlSpecialChars(this.record.get("title").toString()) + "\"> </td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); if (this.enableListManager == true) { if (this.range.equalsIgnoreCase("application") || (this.applicationType == 0 && this.range.equalsIgnoreCase("section"))) { String[] input_type_apps = this.rb.getMessage("sos.settings.dialog.listbox_input_type_apps") .split(";"); if (input_type_apps.length != 2) { throw new Exception( "\"sos.settings.dialog.listbox_input_type_apps\" expected two values, given : " + input_type_apps.length); } this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_input_format") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\"><select " + this.disabled + " name=\"entry_type\" size=\"1\" class=\"" + this.styleInput + "\">"); this.out.println(" <option value=\"0\""); if (!this.record.get("entry_type").equals("1")) { this.out.println(" selected"); } this.out.println(">" + input_type_apps[0].trim() + " "); this.out.println(" <option value=\"1\""); if (this.record.get("entry_type").equals("1")) { this.out.println(" selected"); } this.out.println(">" + input_type_apps[1].trim() + " </select></td>"); this.out.println("</tr><tr class=\"" + this.styleTr + "\">"); } } if (this.hasWriteRight) { String height = (this.enableEditor) ? "height=\"" + this.editorHeight + "\"" : ""; this.out.println(" <td width=\"20%\" " + height + " valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_description") + " </td>"); this.out.println(" <td width=\"80%\" " + height + " valign=\"top\" class=\"" + this.styleTd + "\">"); if (this.enableEditor) { this.showEditor(this.record.get("documentation").toString()); } else { this.out.println(" <textarea rows=\"5\" cols=\"70\" wrap=\"off\" name=\"documentation\" class=\"" + this.styleInput + "\">" + this.htmlSpecialChars(this.record.get("documentation").toString()) + "</textarea> "); } this.out.println("</td>"); this.out.println("</tr>"); this.out.println("<tr class=\"" + this.styleTr + "\">"); } else { this.out.println(" <td width=\"20%\" valign=\"top\" class=\"" + this.styleTdLabel + "\">" + this.rb.getMessage("sos.settings.dialog.label_description") + " </td>"); this.out.println(" <td width=\"80%\" valign=\"top\" class=\"" + this.styleTd + "\">"); this.out.println(this.record.get("documentation")); this.out.println(" </td>"); this.out.println("</tr>"); this.out.println("<tr class=\"" + this.styleTr + "\">"); } this.out.println("<td width=valign=\"top\" class=\"" + this.styleTd + "\"> </td>"); this.out.println("<td valign=\"top\" class=\"" + this.styleTd + "\">"); if (this.hasWriteRight == true) { if (this.isNew == true) { this.out.println(" <input type=\"image\" name=\"btn_insert\" value=\"insert\" src=\"" + this.imgDir + this.sosLang + "/btn_insert.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_insert_alt") + "\" onClick=\"document.sos_settings.button.value='insert';\"> "); } else { this.out.println(" <input type=\"image\" name=\"btn_store\" value=\"store\" src=\"" + this.imgDir + this.sosLang + "/btn_store.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_store_alt") + "\" onClick=\"document.sos_settings.button.value='store';\"> "); this.out.println(" <input type=\"image\" name=\"btn_insert\" value=\"insert\" src=\"" + this.imgDir + this.sosLang + "/btn_insert.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_store_as_alt") + "\" onClick=\"document.sos_settings.button.value='insert';\"> "); } } // hasWriteRight if (this.hasDeleteRight == true) { this.out.println(" <input type=\"image\" name=\"btn_delete\" value=\"delete\" src=\"" + this.imgDir + this.sosLang + "/btn_delete.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_delete_alt") + "\" onClick=\"document.sos_settings.button.value=\'delete\'; if ( confirm(\'" + this.rb.getMessage("sos.settings.dialog.confirm_delete_apps_1") + "\') ) { return confirm(\'" + this.rb.getMessage("sos.settings.dialog.confirm_delete_apps_2") + "\') } else { return false; }\"> "); } if (this.hasWriteRight) { if (this.range.equals("section") && this.applicationType == 0) { this.out.println(" <input type=\"image\" name=\"btn_schema\" src=\"" + this.imgDir + sosLang + "/btn_schema.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_schema_alt") + "\" onClick=\"document.sos_settings.button.value='schema';\"> "); } this.out.println( " <input type=\"image\" name=\"btn_cancel\" value=\"cancel\" src=\"" + this.imgDir + sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\" onClick=\"document.sos_settings.button.value='cancel';\"> "); this.out.println(" <input type=\"image\" name=\"btn_reset\" value=\"reset\" src=\"" + this.imgDir + sosLang + "/btn_reset.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_reset_alt") + "\" onClick=\"document.sos_settings.reset(); return false;\"> "); } else { if (this.hasCreateRight) { if (this.range.equals("section") && this.applicationType == 0) { this.out.println(" <input type=\"image\" name=\"btn_schema\" src=\"" + this.imgDir + sosLang + "/btn_schema.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_schema_alt") + "\" onClick=\"document.sos_settings.button.value='schema';\"> "); } } this.out.println( " <input type=\"image\" name=\"btn_cancel\" value=\"cancel\" src=\"" + this.imgDir + sosLang + "/btn_cancel.gif\" alt=\"" + this.rb.getMessage("sos.settings.dialog.btn_cancel_alt") + "\" onClick=\"document.sos_settings.button.value='cancel';\"> "); } this.out.println(" </td>"); this.out.println("</tr>"); this.showTableEnd(); if (this.hasWriteRight == true) { this.out.println("<script language=\"JavaScript\" type=\"text/javascript\">"); this.out.println(" var on_load = 1; if ( on_load == 1 ) { document." + this.form + ".name.focus(); document." + this.form + ".name.focus();}"); this.out.println(" function sos_settings_onSubmit() {"); this.out.println(" "); this.out.println(" var submitFlag = true; on_load = 0;"); this.out.println(" "); this.out.println(" switch( document." + this.form + ".button.value ) {"); this.out.println(" case 'cancel' :"); this.out.println(" case 'reset' : return submitFlag;"); this.out.println(" }"); this.out.println(" if ( submitFlag && ( document." + this.form + ".name.value == null || document." + this.form + ".name.value == \"\" ) ) {"); this.out.println( " alert( \"" + this.rb.getMessage("sos.settings.dialog.alert_name_empty") + "\");"); this.out.println(" document." + this.form + ".name.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); this.out.println(" if ( submitFlag && ( document." + this.form + ".title.value == null || document." + this.form + ".title.value == \"\" ) ) {"); this.out.println( " alert( \"" + this.rb.getMessage("sos.settings.dialog.alert_title_empty") + "\");"); this.out.println(" document." + this.form + ".title.focus();"); this.out.println(" submitFlag = false;"); this.out.println(" }"); this.out.println(" return submitFlag;"); this.out.println(" }"); this.out.println("</script>"); } this.out.println("</form>"); return true; } /** * Navigationsleiste anzeigen * * @param columnIndex * Anzahl Spalten der Darstellung * @param applicationIndex * Index der aktuellen Applikation in dialog_applications() * @param sectionIndex * Index der aktuellen Sektion in dialog_sections() * @param entryIndex * Index des aktuellen Eintrags in dialog_entries() * @return boolean Fehlerzustand * @throws Exception * @see #showNavigation(Integer, Integer, Integer, Integer) */ private boolean showNavigation(Integer columnIndex, Integer applicationIndex, Integer sectionIndex, Integer entryIndex) throws Exception { this.debug(3, "showNavigation : columnIndex = " + columnIndex + " applicationIndex = " + applicationIndex + " sectionIndex = " + sectionIndex + " entryIndex = " + entryIndex); String imgLink = "<img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"4\" vspace=\"1\">"; String imgFont = "<img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"4\" vspace=\"1\">"; String imgLink2 = " <img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"1\" vspace=\"1\"> "; String imgFont2 = "<img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"1\" vspace=\"1\"> "; String imgLink3 = " <img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgAction + "\" border=\"0\" hspace=\"1\" vspace=\"1\"> "; String imgFont3 = "<img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"1\" vspace=\"1\"><img src=\"" + this.imgDir + this.imgNavigation + "\" border=\"0\" hspace=\"1\" vspace=\"1\"> "; String title = ""; if (applicationIndex == null || applicationIndex.intValue() < 0) { if (this.enableApplicationNavigation == true) { title = ""; for (Enumeration e = this.settings.sources.keys(); e.hasMoreElements();) { String settingsSource = (String) e.nextElement(); String settingsTitle = (String) this.settings.sources.get(settingsSource); String styleLink = (settingsSource.equalsIgnoreCase(this.settings.source)) ? this.styleLinkNavigation : this.styleLinkInactiveNavigation; title += "<a class=\"" + styleLink + "\" href=\"" + this.site + "?action=show&range=applications&settings_source=" + settingsSource + "\">" + imgLink + settingsTitle + "</a> "; } } else { title = ""; } } else { if (this.enableApplicationNavigation) { title = "<a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=applications\">" + imgLink + this.dialogApplicationsTitle + "</a> "; } else { title = ""; } try { HashMap hm1 = (HashMap) this.dialogApplications.get(applicationIndex.intValue()); String entrySettingsTitle = hm1.get(this.settings.entrySettingTitle.toLowerCase()).toString(); if (sectionIndex == null || sectionIndex.intValue() < 0) { title += "<p style=\"margin: 2px 0px;\"> <a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=application&application=" + this.response.encodeURL(this.settings.application) + "\">" + imgLink2 + "</a><a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=sections&application=" + this.response.encodeURL(this.settings.application) + "\">"; title += entrySettingsTitle; title += "</a> </p>"; } else { title += "<p style=\"margin: 2px 0px;\"> <a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=application&application=" + this.response.encodeURL(this.settings.application) + "\">" + imgLink2 + "</a><a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=sections&application=" + this.response.encodeURL(this.settings.application) + "\">"; title += entrySettingsTitle; title += "</a> </p>"; String entryType = hm1.get("entry_type").toString(); String section = hm1.get("section").toString(); String range = (entryType.equals("0") || (!section.equals(this.settings.entrySchemaSection))) ? "section" : "entries"; try { HashMap hm2 = (HashMap) this.dialogSections.get(sectionIndex.intValue()); if (hm2.get("section").toString().equals(this.settings.entrySchemaSection)) { entrySettingsTitle = this.rb .getMessage("sos.settings.dialog.dialog_sections_schema_title"); } else { entrySettingsTitle = hm2.get(this.settings.entrySettingTitle.toLowerCase()).toString(); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } if (entryIndex == null || entryIndex.intValue() < 0) { title += "<p style=\"margin: 2px 0px;\"> <a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=" + range + "&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(this.settings.section) + "\">" + imgLink3 + "</a><a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=entries&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(this.settings.section) + "\">"; title += entrySettingsTitle; title += "</a> "; } else { title += "<p style=\"margin: 2px 0px;\"> <a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=" + range + "&application=" + this.response.encodeURL(this.settings.application) + "\">" + imgLink3 + "</a><a class=\"" + this.styleLinkNavigation + "\" href=\"" + this.site + "?action=show&range=sections&application=" + this.response.encodeURL(this.settings.application) + "\">"; title += entrySettingsTitle; title += "</a> "; } } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } this.out.println("<tr class=\"" + this.styleTr + "\"><th align=\"left\" valign=\"top\" colspan=\"" + columnIndex + "\" class=\"" + this.styleTh + "\">" + title + "</th></tr>"); return true; } /* * Requestvariablen lesen * * */ private void checkRequest() throws Exception { this.debug(3, "checkRequest"); this.settings.sources.put(this.settings.source, this.dialogApplicationsTitle); this.settings.application = ""; this.settings.section = ""; this.settings.entry = ""; this.inputQuery = ""; this.inputExport = ""; this.inputImport = ""; this.importOriginalFileName = ""; // Daten aus fileUpload LinkedHashMap requestMultipart = new LinkedHashMap(); if (this.request != null) { ///////////////////////////////////////////////////////// String contentType = this.request.getHeader("Content-type"); if (contentType != null && contentType.startsWith("multipart/")) { // ob Import try { DiskFileUpload upload = new DiskFileUpload(); upload.setSizeMax(this.importMaxSize); upload.setSizeThreshold(0); // nicht im Memory sondern als // Datei speichern List items = upload.parseRequest(this.request); Iterator iter = items.iterator(); while (iter.hasNext()) { //FileItem item = (FileItem) iter.next(); DefaultFileItem item = (DefaultFileItem) iter.next(); if (item.isFormField()) { requestMultipart.put(item.getFieldName(), item.getString()); this.request.setAttribute(item.getFieldName(), item.getString()); } else { // aus upload if (item.getName() != null && !item.getName().equals("")) { //requestMultipart.put(item.getFieldName(),item.getStoreLocation()); requestMultipart.put(item.getFieldName(), item.getStoreLocation().getAbsolutePath()); this.request.setAttribute(item.getFieldName(), item.getStoreLocation().getAbsolutePath()); this.importOriginalFileName = item.getName(); } else { requestMultipart.put(item.getFieldName(), ""); this.request.setAttribute(item.getFieldName(), ""); } } } } catch (FileUploadException e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } // MULTIPART Form ///////////////////////////////////////////////////////// if (this.getRequestValue("application") != null) { this.settings.application = this.getRequestValue("application"); } if (this.getRequestValue("section") != null) { this.settings.section = this.getRequestValue("section"); } if (this.getRequestValue("entry") != null) { this.settings.entry = this.getRequestValue("entry"); } if (this.getRequestValue("application_type") != null) { try { this.applicationType = Integer.parseInt(this.getRequestValue("application_type")); } catch (Exception e) { this.applicationType = 0; } } if (this.getRequestValue("section_type") != null) { try { this.sectionType = Integer.parseInt(this.getRequestValue("section_type")); } catch (Exception e) { this.sectionType = 0; } } if (this.getRequestValue("action") != null) { this.action = this.getRequestValue("action"); } if (this.getRequestValue("range") != null) { this.range = this.getRequestValue("range"); } if (this.getRequestValue("item") != null) { this.item = this.getRequestValue("item"); } if ((this.getRequestValue("btn_store.x") != null) && (this.getRequestValue("btn_store.y") != null)) { this.action = "store"; } else if ((this.getRequestValue("btn_insert.x") != null) && (this.getRequestValue("btn_insert.y") != null)) { this.action = "insert"; } else if ((this.getRequestValue("btn_delete.x") != null) && (this.getRequestValue("btn_delete.y") != null)) { this.action = "delete"; } else if ((this.getRequestValue("btn_schema.x") != null) && (this.getRequestValue("btn_schema.y") != null)) { this.action = "schema"; } else if ((this.getRequestValue("btn_duplicate.x") != null) && (this.getRequestValue("btn_duplicate.y") != null)) { this.action = "duplicate"; this.range = "entries"; } else if ((this.getRequestValue("btn_cancel.x") != null) && (this.getRequestValue("btn_cancel.y") != null)) { this.action = "show"; if (this.range.equals("application")) { this.range = "applications"; } else if (this.range.equals("section")) { this.range = "sections"; } else { this.range = this.range.equals("list") ? "sections" : "entries"; } } else if ((this.getRequestValue("btn_query.x") != null) && (this.getRequestValue("btn_query.y") != null)) { this.action = "query"; this.range = "entries"; if (this.getRequestValue("query_select_range") != null && this.getRequestValue("query_select_range").equals("2")) { this.item = "replace"; } } else if ((this.getRequestValue("btn_export.x") != null) && (this.getRequestValue("btn_export.y") != null)) { this.action = "export"; this.range = "entries"; } else if ((this.getRequestValue("btn_import.x") != null) && (this.getRequestValue("btn_import.y") != null)) { this.action = "import"; this.range = "entries"; } else if ((this.getRequestValue("btn_clipboard_copy.x") != null) && (this.getRequestValue("btn_clipboard_copy.y") != null)) { if (this.getRequestValue("last_action") != null) { this.action = this.getRequestValue("last_action"); } else { this.action = "show"; } this.clipboardAction = "copy"; } else if ((this.getRequestValue("btn_clipboard_paste.x") != null) && (this.getRequestValue("btn_clipboard_paste.y") != null)) { if (this.getRequestValue("last_action") != null) { this.action = this.getRequestValue("last_action"); } else { this.action = "show"; } this.clipboardAction = "paste"; } else if ((this.getRequestValue("btn_import_file.x") != null) && (this.getRequestValue("btn_import_file.y") != null)) { this.action = ((this.getRequestValue("last_action") != null) && this.getRequestValue("last_action").equals("new")) ? "insert" : "store"; this.range = "entry"; this.item = "upload"; } if (this.getRequestValue("input_query") != null) { this.inputQuery = this.getRequestValue("input_query"); } if (this.getRequestValue("input_query_replace") != null) { this.replaceQuery = this.getRequestValue("input_query_replace"); } if (this.getRequestValue("input_export") != null) { this.inputExport = this.getRequestValue("input_export"); } if (this.getRequestValue("export_documentation") != null) { this.exportDocumentation = 1; } if (this.getRequestValue("input_import") != null) { this.inputImport = this.getRequestValue("input_import"); } } if (this.applicationName.equals("")) { this.applicationName = this.settings.application; } if (this.enableShowDevelopmentData) { this.showDevelopmentData(requestMultipart); } } /** * * * @param name * @return */ public String getRequestValue(String name) { String value = null; if (this.request.getParameter(name) != null) { return this.request.getParameter(name); } else if (this.request.getAttribute(name) != null) { return (String) this.request.getAttribute(name); } return value; } /** * Anzeige des Werts eines Eintrags * * @param entry * HashMap mit Feldern des Eintrags * @param type * Typ 0=Eintrag, 2=Listeneintrag * @param index * Reihenfolgeindex * @see #showDialogValue(HashMap, int, int) */ private void showDialogValue(HashMap entry, int type, int index) throws Exception { this.debug(3, "showDialogValue : entry = " + entry + " type = " + type + " index = " + index); String inputName = (type > 0) ? "value_" + index : "value"; try { int inputSize = Integer.parseInt(entry.get("input_size").toString()); if (inputSize < 0 || inputSize == 0) { entry.put("input_size", this.defaultInputSize); } } catch (Exception e) { entry.put("input_size", this.defaultInputSize); } try { int displaySize = Integer.parseInt(entry.get("display_size").toString()); if (displaySize < 0 || displaySize == 0) { entry.put("display_size", this.defaultDisplaySize); } } catch (Exception e) { entry.put("display_size", this.defaultDisplaySize); } String checked = ""; String unchecked = ""; int textareaRows = this.displayTextareaRows; if (entry.get("input_type").toString().equals("5")) { // long_value entry.put("input_size", ""); textareaRows = this.displayDocumentTextareaRows; } switch (entry.get("display_type").toString().charAt(0)) { case '4': // hidden bei Document binr String has_binary_value = ""; try { has_binary_value = this.hasBinaryValue.get(entry.get("application").toString() + entry.get("section").toString() + entry.get("name").toString()).toString(); } catch (Exception e) { } if (has_binary_value != null && has_binary_value.length() > 0 && !has_binary_value.equals("0")) { String session = (this.sessionID.length() > 0) ? "&" + this.sessionVAR + "=" + this.sessionID : ""; String entry_href = (this.settings.entry.length() > 0) ? "&entry=" + this.settings.entry : ""; String default_value = entry.get("default_value").toString(); String file_name = (default_value.length() > 0) ? default_value : this.settings.defaultDocumentFileName; String source_href = "file_name=" + file_name + "&application=" + this.response.encodeURL(this.settings.application) + "§ion=" + this.response.encodeURL(this.settings.section) + "&download_entry=" + this.response.encodeURL(entry.get("name").toString()); source_href += "&application_type=" + this.applicationType + "&old_action=" + this.action + session + entry_href; this.out.println("<a href=\"" + this.site + "?action=download&range=source&" + source_href + "\"><img src=\"" + this.imgDir + "icon_download.gif\" border=\"0\" alt=\"Download " + file_name + "\" title=\"Download " + file_name + "\"></a>"); this.out.println(" "); this.out.println(this.rb.getMessage("sos.settings.dialog.label_empty")); String js = "if(typeof document." + this.form + "." + inputName + " != 'undefined'){"; js += " if(this.checked == true){"; js += " document." + this.form + "." + inputName + ".disabled = true;"; js += " }"; js += " else{"; js += " document." + this.form + "." + inputName + ".disabled = false;"; js += " }"; js += "}"; this.out.println("<input onclick=\"" + js + "\" type=\"checkbox\" name=\"binary_" + inputName + "\" value=\"1\" />"); } else { this.out.println(""); } if (!this.isShowEntries) { this.out.println( "<textarea " + this.disabled + " style=\"display:none;width:600px;height:300px\" name=\"" + inputName + "\" class=\"" + this.styleInput + "\">" + this.htmlSpecialChars(entry.get("value").toString()) + "</textarea> "); } this.displayBinaryUpload = ""; break; case '3': // textarea this.out.println("<textarea " + this.disabled + " name=\"" + inputName + "\" class=\"" + this.styleInput + "\" rows=\"" + textareaRows + "\" cols=\"" + entry.get("display_size").toString() + "\" maxlength=\"" + entry.get("input_size").toString() + "\">" + this.htmlSpecialChars(entry.get("value").toString()) + "</textarea> "); break; case '2': // radiobutton //checked = ( !entry.get("value").toString().equals("") || // !entry.get("value").toString().equals("0")) ? " checked" : ""; checked = (entry.get("value").toString().equals("1")) ? " checked" : ""; unchecked = (!checked.equals("")) ? "" : " checked"; this.out.println("<input " + this.disabled + " name=\"" + inputName + "\" type=\"radio\" class=\"" + this.styleInput + "\" value=\"1\" " + checked + ">Ja "); this.out.println("<input " + this.disabled + " name=\"" + inputName + "\" type=\"radio\" class=\"" + this.styleInput + "\" value=\"0\" " + unchecked + ">Nein "); break; case '1': // listbox StringTokenizer options = new StringTokenizer(entry.get("default_value").toString(), ";"); this.out.println( "<select " + this.disabled + " name=\"" + inputName + "\" class=\"" + this.styleInput + "\">"); while (options.hasMoreTokens()) { String next = options.nextToken(); String selected = (entry.get("value").toString().equals(next)) ? " selected" : ""; this.out.println("<option value=\"" + next + "\" " + selected + ">" + next); } this.out.println("</select>"); break; default: // input this.out.println("<input " + this.disabled + " name=\"" + inputName + "\" type=\"text\" class=\"" + this.styleInput + "\" size=\"" + entry.get("display_size").toString() + "\" maxlength=\"" + entry.get("input_size").toString() + "\" value=\"" + entry.get("value").toString() + "\">"); } if (type > 0) { this.out.println("<input name=\"application_" + index + "\" type=\"hidden\" value=\"" + entry.get("application").toString() + "\">"); this.out.println("<input name=\"section_" + index + "\" type=\"hidden\" value=\"" + entry.get("section").toString() + "\">"); this.out.println("<input name=\"name_" + index + "\" type=\"hidden\" value=\"" + entry.get("name").toString() + "\">"); this.out.println("<input name=\"title_" + index + "\" type=\"hidden\" value=\"" + entry.get("title").toString() + "\">"); } } /** * Alle Applikationen lesen * * @param source * Name der Tabelle * @return Vector Zweidimensionale Liste der Applikationen * @throws Exception * @see #getDialogApplications(String) */ private Vector getDialogApplications(String source) throws Exception { this.debug(3, "getDialogApplications : source = " + source); this.connection.setKeysToLowerCase(); if (source != null) { this.settings.source = source; } this.dialogApplications = new Vector(); StringBuffer sqlStmt = new StringBuffer(); sqlStmt.append(" select s.\"APPLICATION\", s.\"SECTION\", s.\"NAME\", s.\"TITLE\", s.\"ENTRY_TYPE\" "); sqlStmt.append(" from " + this.settings.source + " s "); sqlStmt.append(" where s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entrySection + "\" and "); sqlStmt.append( " s.\"" + this.settings.entryApplication + "\" = s.\"" + this.settings.entryName + "\" "); sqlStmt.append(" order by s.\"" + this.settings.entryApplication + "\""); return this.dialogApplications = this.connection.getArrayAsVector(sqlStmt.toString()); } /** * Alle Sektionen einer Applikation lesen * * @param application * Name der Applikation * @param source * Name der Tabelle * @return Vector Zweidimensionale Liste der Sektionen * @throws Exception * @see #getDialogSections(String, String) */ private int getDialogSections(String application, String source) throws Exception { this.debug(3, "getDialogSections : application = " + application + " source = " + source); if (application != null) { this.settings.application = application; } if (source != null) { this.settings.source = source; } this.dialogSections = new Vector(); String sqlStmt = "select s.\"APPLICATION\", s.\"SECTION\", s.\"NAME\", s.\"TITLE\", s.\"ENTRY_TYPE\" from " + this.settings.source + " s where s.\"" + this.settings.entryApplication + "\"=" + this.dbQuoted(this.settings.application) + " and s.\"" + this.settings.entryApplication + "\"<>s.\"" + this.settings.entrySection + "\" and s.\"" + this.settings.entrySection + "\"=s.\"" + this.settings.entryName + "\" order by s.\"" + this.settings.entrySection + "\" asc"; this.dialogSections = this.connection.getArrayAsVector(sqlStmt); return this.dialogSections.size(); } /** * Alle Eintrge einer Sektion lesen * * @param application * Name der Applikation * @param section * Name der Applikation * @param source * Name der Tabelle * @return Vector Zweidimensionale Liste der Entries * @throws Exception * @see #getDialogEntries(String, String, String) */ private Vector getDialogEntries(String application, String section, String source) throws Exception { this.debug(3, "getDialogEntries : application = " + application + " section = " + section + " source = " + source); if (application != null) { this.settings.application = application; } if (section != null) { this.settings.section = section; } if (source != null) { this.settings.source = source; } this.dialogEntries = new Vector(); StringBuffer sqlStmt = new StringBuffer(); sqlStmt.append( " select \"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DEFAULT_VALUE\",\"TITLE\",\"INPUT_TYPE\",\"INPUT_SIZE\",\"DISPLAY_TYPE\",\"DISPLAY_SIZE\",\"FORCED\",\"ENTRY_TYPE\",\"CREATED\",\"CREATED_BY\",\"MODIFIED\",\"MODIFIED_BY\" "); sqlStmt.append(" from " + this.settings.source + " "); sqlStmt.append(" where \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application) + " and "); sqlStmt.append(" \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section) + " and "); sqlStmt.append(" \"" + this.settings.entrySection + "\" <> \"" + this.settings.entryName + "\" "); sqlStmt.append(" order by " + this.getEntryOrder() + ""); return this.dialogEntries = this.connection.getArrayAsVector(sqlStmt.toString()); } /** * Tabellenkopf ausgeben * * Um gleichmssige Einrckungen auf einer Seite zu erhalten, wird ein * Tabellenkopf geschrieben und nicht beendet */ private void showTableBegin() throws Exception { this.debug(3, "showTableBegin"); this.out.println("<table width=\"100%\" border=\"0\" class=\"" + this.styleTable + "\">"); this.out.println(" <tr class=\"" + this.styleTr + "\">"); this.out.println(" <td width=\"1%\"> </td>"); this.out.println(" <td width=\"98%\" class=\"" + this.styleTdBackground + "\">"); this.out.println(" <table width=\"100%\" border=\"" + this.styleBorder + "\" cellPadding=\"5\" cellSpacing=\"1\" class=\"" + this.styleTable + "\">"); } /** * Tabellenfu ausgeben * * Um gleichmssige Einrckungen auf einer Seite zu erhalten, wird ein * Tabellenkopf beendet, der zuvor begonnen wurde */ private void showTableEnd() throws Exception { this.debug(3, "showTableEnd"); this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" <td width=\"1%\"> </td>"); this.out.println(" </tr>"); this.out.println("</table>"); } /** * Eintrge exportieren * * @param file * Ausgabedatei * @param source * Name der Tabelle * @return boolean Fehlerzustand */ private void exportEntries(String file, String source) throws Exception { if (source != null) { this.settings.source = source; } StringBuffer sql = new StringBuffer(); file = file.trim(); if (this.exportDocumentation == 1) { sql.append( "select \"APPLICATION\",\"SECTION\",\"NAME\",\"DOCUMENTATION\" from " + this.settings.source); } else { sql.append( "select \"APPLICATION\",\"SECTION\",\"NAME\",\"VALUE\",\"DEFAULT_VALUE\",\"LONG_VALUE\",\"DOCUMENTATION\",\"TITLE\",\"INPUT_TYPE\",\"INPUT_SIZE\",\"DISPLAY_TYPE\",\"DISPLAY_SIZE\",\"FORCED\",\"ENTRY_TYPE\",\"CREATED\",\"CREATED_BY\",\"MODIFIED\",\"MODIFIED_BY\" from " + this.settings.source); } String sqlAnd = " where "; if (!this.settings.application.equals("")) { sql.append(" " + sqlAnd + " \"" + this.settings.entryApplication + "\" = " + this.dbQuoted(this.settings.application)); sqlAnd = " and "; } if (!this.settings.section.equals("")) { sql.append(" " + sqlAnd + " \"" + this.settings.entrySection + "\" = " + this.dbQuoted(this.settings.section)); sqlAnd = " and "; } sql.append(" order by \"" + this.settings.entryApplication + "\" asc,\"" + this.settings.entrySection + "\" asc,\"" + this.settings.entryName + "\" asc"); this.debug(3, "exportEntries: file = " + file + " source = " + source + " stmt = " + sql.toString()); //SOSStandardLogger logger = new // SOSStandardLogger("c:/settings_import_log.txt",SOSStandardLogger.DEBUG9); SOSStandardLogger logger = new SOSStandardLogger(SOSStandardLogger.DEBUG9); try { SOSExport export = new SOSExport(this.connection, file, this.applicationName, logger); export.query(this.settings.source, this.settings.entryApplication + "," + this.settings.entrySection + "," + this.settings.entryName, sql.toString()); String rc = export.doExport(); if (!rc.equals("") && file.equals("")) { this.response.setContentType("application/xml"); this.response.setHeader("Content-Disposition", "attachment; filename=settings.xml"); this.response.getWriter().print(rc); this.response.getWriter().close(); } } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); } } /** * Eintrge importieren * * @param string * $file Eingabedatei * @param string * $source Name der Tabelle * @return boolean Fehlerzustand * @version 1.0-2002/10/20 */ private void importEntries(String file, String source) throws Exception { if (file == null || file.trim().equals("")) { this.setError( " " + this.rb.getMessage("sos.settings.dialog.err_import_file_missing"), SOSClassUtil.getMethodName()); return; } if (source != null) { this.settings.source = source; } try { //file = "c:/settings.xml"; //SOSStandardLogger logger = new // SOSStandardLogger("c:/settings_import_log.txt",SOSStandardLogger.DEBUG9); SOSStandardLogger logger = new SOSStandardLogger(SOSStandardLogger.DEBUG9); SOSImport imp = new SOSImport(this.connection, file, null, null, null, logger); //SOSImport imp = new SOSImport( // this.connection,"c:/1.xml",null,null,null,logger); if (this.importDocumentation == 1) { imp.setInsert(false); } imp.doImport(); this.connection.commit(); } catch (Exception e) { this.setError(e.getMessage(), SOSClassUtil.getMethodName()); this.connection.rollback(); } } /** * Klasseneigenschaften zurcksetzen * */ private void destroy() throws Exception { this.debug(3, "destroy"); this.dialogSections = new Vector(); this.dialogEntries = new Vector(); this.isNew = false; this.record = new HashMap(); this.dialogApplicationIndex = new Integer(-1); this.dialogSectionIndex = new Integer(-1); this.dialogEntryIndex = new Integer(-1); this.hasHelps = false; this.entriesLongValues = new Vector(); this.hasAcls = false; this.hasCreateRight = true; this.hasDeleteRight = true; this.hasReadRight = true; this.hasWriteRight = true; this.topLevelAcl = ""; this.hasTopLevelCreateRight = true; this.hasTopLevelReadRight = true; this.hasTopLevelWriteRight = true; this.aclRange = "application"; this.isShowEntries = false; this.hasBinaryValue = new Hashtable(); } /** * HTML Header setzen * * @param title * Html Element Titel * @throws Exception * @see #showHeader(String) */ public void showHeader(String title) throws Exception { this.debug(3, "showHeader : title = " + title); if (title != null) { this.title = title; } this.response.setContentType("text/html"); this.out.println("<html>"); this.out.println(" <head>"); this.out.println(" <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">"); this.out.println(" <meta name=\"generator\" content=\"FrameWork Factory 1.0\">"); this.out.println(" <meta name=\"author\" content=\"SOS GmbH\">"); this.out.println( " <meta name=\"publisher\" content=\"Software- und Organisations- Service GmbH (SOS), Berlin\">"); this.out.println( " <meta name=\"copyright\" content=\"Copyright 2004 SOFTWARE UND ORGANISATIONS-SERVICE GmbH (SOS), Berlin. All rights reserved.\">"); this.out.println(" <meta name=\"description\" content=\"Document Factory\">"); this.out.println(" <meta name=\"keywords\" content=\"Java\">"); this.out.println(" <title>" + this.title + "</title>"); this.out.println(" <link rel=\"stylesheet\" type=\"text/css\" href=\"site.css\">"); if (this.enableDocuTemplateCss) { this.out.println(" <link rel=\"stylesheet\" type=\"text/css\" href=\"settings_docu_template.css\">"); } this.out.println(" <style type=\"text/css\"><!--"); this.out.println(" @import url(settings.css);"); this.out.println(" //--></style>"); this.out.println(" <script language=\"JavaScript\" type=\"text/javascript\" src=\"site.js\"></script>"); this.out.println("</head>"); this.out.println("<body>"); } /** * HTML schlissen * */ public void showFooter() throws Exception { this.debug(3, "showFooter"); this.out.println("</body>\n</html>"); this.out.flush(); } /** * Fehler auslsen * * @param msg * Text der Fehlernachricht * @see #setError(String, String) */ private void setError(String msg) { this.setError(msg, null); } /** * Fehler auslsen * * @param msg * Text der Fehlernachricht * @param location * Klassenname und die Zeile * @see #setError(String, String) */ private void setError(String msg, String location) { this.err = true; this.errLocation = ""; if (msg != null && !msg.equals("")) { this.errMsg = msg; } if (location != null && !location.equals("")) { this.errLocation = location; } } /** * Fehlerzustand feststellen * * @return boolean Fehlerzustand */ private boolean error() { return this.err; } /** * Fehlermeldung liefern * * Liest einen Fehlerzustand und liefert einen Meldungsstring bestehend aus * den Eigenschaften der Basisklasse SOS_Class mit Fehlercode, -meldung, * exception. * * @return string Fehlermeldung oder null, falls kein Fehler */ private String getError() { if (this.err == true) { String location = ""; if (this.debugLevel > 0) { if (this.errLocation != null && !errLocation.equals("")) { location = " [" + errLocation + "]"; } } return this.errMsg + location; } else { return null; } } /** * Fehler zurcksetzen * */ private void resetError() { this.err = false; this.errMsg = ""; this.errLocation = ""; } /** * Fehlermeldung anzeigen * * @param msg * Text der Nachricht ber fehlende Berechtigung * @see #showError(String) */ private void showError(String msg) throws Exception { this.out.println( "<table width=\"100%\"><tr><td width=\"5\"> </td><td><font style=\"color: #FF6347; font-size: 14px;\">" + msg + "</font></td></tr></table>"); } /** * Nachricht anzeigen * * @param msg * Text der Nachricht ber fehlende Berechtigung * @see #showMsg(String) */ private void showMsg(String msg) throws Exception { this.out.println("<table width=\"100%\"><tr><td width=\"5\"> </td><td><font style=\"color: #009933;\">" + msg + "</font></td></tr></table>"); } /** * ACL pro bestimmte Applikation|Sektion|Entrie definieren * * @param aclName * ACL Identifier * @param settings * HashMap der ACL Geltungsbereichen <br> * gltige HashMap Keys : "application","section","entry" <br> * Beispiele :<br> * <br> * 1)fr alle Applikationen <br> * settings.put("application","*"); <br> * setAcl("acl_name",settings); <br> * um die Anzeige von allen Applikationen zu schtzen <br> * @see #setTopLevelAcl(String) <br> * <br> * 2) eine Bestimmte Applikation schtzen <br> * settings.put("application","applikation_name"); <br> * setAcl("acl_name",settings); <br> * <br> * 3)eine bestimmte Sektion einer bestimmten Applikation schtzen <br> * fr alle Sektionen einer Applikation kann statt "section_name" -> * "*" angegeben werden <br> * settings.put("application","applikation_name"); <br> * settings.put("section","section_name"); <br> * setAcl("acl_name",settings); <br> * <br> * 4)einen bestimmten Wert einer bestimmten Sektion einer bestimmten * Applikation schtzen <br> * fr alle Entries einer Sektion einer Applikation kann statt * "entrie_name" -> "*" angegeben werden <br> * settings.put("application","applikation_name"); <br> * settings.put("section","section_name"); <br> * settings.put("entrie","entrie_name"); <br> * setAcl("acl_name",settings); <br> * <br> * @throws Exception * @see #setAcl(String, HashMap) */ public void setAcl(String aclName, HashMap settings) throws Exception { this.debug(3, "setAcl : aclName = " + aclName + " settings = " + settings); if (aclName == null || aclName.equals("")) { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_missing_name")); } if (settings == null || settings.size() == 0) { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_undefined_scope", aclName)); } if (settings.containsKey("application")) { int count = settings.size(); if (count == 1) { // Applikations this.allAcls.put("[" + settings.get("application").toString() + "][application]", aclName); } else if (count == 2) { // Sektions if (settings.containsKey("section")) { this.allAcls.put("[" + settings.get("application").toString() + "][section][" + settings.get("section").toString() + "]", aclName); } else { throw new Exception( this.rb.getMessage("sos.settings.dialog.err_acl_undefined_section", aclName)); } } else if (count == 3) { // Entries if (settings.containsKey("section") && settings.containsKey("entry")) { this.allAcls.put("[" + settings.get("application").toString() + "][entry][" + settings.get("section").toString() + "][" + settings.get("entry").toString() + "]", aclName); } else { throw new Exception( this.rb.getMessage("sos.settings.dialog.err_acl_undefined_section_or_entry", aclName)); } } else { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_invalid_scope", aclName)); } } else { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_undefined_application", aclName)); } if (this.allAcls != null && this.allAcls.size() != 0) { this.hasAcls = true; } } /** * Rechte fr die erste Ebene (Alle Applikationen) lesen * * @return boolean Fehlerzustand */ private boolean getTopLevelRights() throws Exception { this.debug(3, "getTopLevelRights"); this.hasTopLevelWriteRight = true; this.hasTopLevelCreateRight = true; this.hasTopLevelReadRight = true; if (!this.topLevelAcl.equals("")) { if (this.user == null) { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_missing_user")); } try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(this.topLevelAcl); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(this.topLevelAcl); acl.access(this.user.getUserId(), this.user.getUserGroupIdList(), "rwdc"); String op = acl.getResultOperations(); if (op.indexOf('w') == -1) { this.hasTopLevelWriteRight = false; this.disabled = " disabled "; } if (op.indexOf('c') == -1) { this.hasTopLevelCreateRight = false; } if (op.indexOf('r') == -1) { this.hasTopLevelReadRight = false; } } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(SOSClassUtil.getMethodName() + " : " + e.getMessage()); } } return true; } /** * Rechte auf Default-Werte setzen * */ private void resetRights() throws Exception { this.debug(3, "resetRights"); this.hasWriteRight = true; this.hasReadRight = true; this.hasDeleteRight = true; this.hasCreateRight = true; this.disabled = ""; } /** * Rechte setzen * */ private void setRights(sos.acl.SOSAcl acl) throws Exception { if (acl == null) { throw new Exception( this.rb.getMessage("sos.settings.dialog.err_acl_missing_acl", SOSClassUtil.getMethodName())); } if (this.user == null) { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acl_missing_user")); } acl.access(this.user.getUserId(), this.user.getUserGroupIdList(), "rwdc"); String aclName = acl.getIdentifier(); String op = acl.getResultOperations(); if (op.indexOf('w') == -1) { this.hasWriteRight = false; this.disabled = " disabled "; } if (op.indexOf('d') == -1) { this.hasDeleteRight = false; } if (op.indexOf('c') == -1) { this.hasCreateRight = false; } if (op.indexOf('r') == -1) { this.hasReadRight = false; } this.debug(3, "setRights : acl(" + aclName + ") resultOperations = " + op); this.debug(3, "setRights : write = " + this.hasWriteRight + " delete = " + this.hasDeleteRight + " create = " + this.hasCreateRight + " read = " + this.hasReadRight); } /** * Rechte lesen * * @param application * Name der Applikation * @param section * Name der Sektion * @param entry * Name des Entries * @return boolean Fehlerzustand */ private boolean getRights(String application, String section, String entry) throws Exception { this.debug(3, "getRights : application = " + application + " section = " + section + " entry = " + entry + " this.aclRange = " + this.aclRange); this.resetRights(); if (this.hasAcls) { if (this.aclRange.equals("application")) { // Rechte einer bestimmten Applikation if (this.allAcls.containsKey("[" + application + "][application]")) { String identifier = this.allAcls.get("[" + application + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte fr alle Applikationen else if (this.allAcls.containsKey("[" + this.allAclNote + "][application]")) { String identifier = this.allAcls.get("[" + this.allAclNote + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } } // range application else if (this.aclRange.equals("section")) { // Rechte fr eine bestimmte Sektion einer bestimmten // Applikation if (this.allAcls.containsKey("[" + application + "][section][" + section + "]")) { String identifier = this.allAcls.get("[" + application + "][section][" + section + "]") .toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } //Rechte fr alle Sektionen einer bestimmten Applikation else if (this.allAcls.containsKey("[" + application + "][section][" + this.allAclNote + "]")) { String identifier = this.allAcls.get("[" + application + "][section][" + this.allAclNote + "]") .toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte einer bestimmten Applikation else if (this.allAcls.containsKey("[" + application + "][application]")) { String identifier = this.allAcls.get("[" + application + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte fr alle Applikationen else if (this.allAcls.containsKey("[" + this.allAclNote + "][application]")) { String identifier = this.allAcls.get("[" + this.allAclNote + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } } // range section else if (this.aclRange.equals("entry")) { //Rechte fr einen bestimmten Entry in einer bestimmten Sektion // einer bestimmten Applikation if (this.allAcls.containsKey("[" + application + "][entry][" + section + "][" + entry + "]")) { String identifier = this.allAcls .get("[" + application + "][entry][" + section + "][" + entry + "]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte fr alle Entry in einer bestimmten Sektion einer // bestimmten Applikation else if (this.allAcls .containsKey("[" + application + "][entry][" + section + "][" + this.allAclNote + "]")) { String identifier = this.allAcls .get("[" + application + "][entry][" + section + "][" + this.allAclNote + "]") .toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte fr eine bestimmte Sektion einer bestimmten // Applikation else if (this.allAcls.containsKey("[" + application + "][section][" + section + "]")) { String identifier = this.allAcls.get("[" + application + "][section][" + section + "]") .toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } //Rechte fr alle Sektionen einer bestimmten Applikation else if (this.allAcls.containsKey("[" + application + "][section][" + this.allAclNote + "]")) { String identifier = this.allAcls.get("[" + application + "][section][" + this.allAclNote + "]") .toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte einer bestimmten Applikation else if (this.allAcls.containsKey("[" + application + "][application]")) { String identifier = this.allAcls.get("[" + application + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Rechte fr alle Applikationen else if (this.allAcls.containsKey("[" + this.allAclNote + "][application]")) { String identifier = this.allAcls.get("[" + this.allAclNote + "][application]").toString(); try { sos.acl.SOSAcl acl = new sos.acl.SOSAcl(identifier); acl.setLocale(this.locale); if (this.debugLevel > 0) { acl.setOut(this.out); acl.setDebugLevel(this.debugLevel); } acl.setTableAcls(this.tableAcls); acl.setConnection(this.connection); acl.get(identifier); this.setRights(acl); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.acl.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } } // range entry else { throw new Exception(this.rb.getMessage("sos.settings.dialog.err_acls_invalid_scope")); } } // if hasAcl return true; } /** * @param value * @throws Exception */ private void showEditor(String value) throws Exception { if (value == null) { value = ""; } try { sos.fckeditor.SOSFCKEditor editor = new sos.fckeditor.SOSFCKEditor(this.editorName); editor.setLanguage(this.sosLang); editor.setWidth(this.editorWidth); editor.setValue(value); editor.show(this.request, this.out); } catch (NoClassDefFoundError e) { throw new Exception("class not found : " + e.getMessage()); } catch (Exception e) { throw new Exception("editor : " + e.getMessage()); } } /** * !!! unter Produktion mu nich verwendet werden <br/>Anzeige von aktuellen * Request,Session usw Variablen * * @param request * @param out * @throws IOException */ public void showDevelopmentData(LinkedHashMap requestMultipart) throws Exception { this.out.println( "<div id='div_temp_request' style=\"background-color:#ffffff;width:400px; overflow: auto; POSITION: absolute; Z-INDEX: 20; VISIBILITY: visible; TOP: " + this.divDevelopmentDataTop + "; LEFT: " + this.divDevelopmentDataLeft + "; border:solid 2px #dddddd;\">"); this.out.println("<table width=\"100%\" cellPadding=\"0\" cellSpacing=\"0\">"); this.out.println("<tr>"); this.out.println(" <td colspan=\"2\"><b>action</b> = " + this.action + " <b>range</b> = " + this.range + " <b>item</b> = " + this.item + "</td>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println( " <td colspan=\"2\"><b>application</b> = " + this.settings.application + " <b>section</b> = " + this.settings.section + " <b>entry</b> = " + this.settings.entry + "</td>"); this.out.println("</tr>"); this.out.println("<tr><td colspan=\"2\"> </td></tr>"); this.out.println("<tr>"); this.out.println(" <td colspan=\"2\"><b>REQUEST PARAMETER: </b></td>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println(" <td>"); this.out.println(" <table width=\"100%\" cellPadding=\"0\" cellSpacing=\"0\">"); Enumeration en = this.request.getParameterNames(); while (en.hasMoreElements()) { String a = (String) en.nextElement(); this.out.println("<tr>"); this.out.println(" <td><b>" + a + "</b></td>"); this.out.println(" <td>" + this.request.getParameter(a) + "</td>"); this.out.println("</tr>"); } this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" <td> </td>"); this.out.println("</tr>"); this.out.println("<tr><td colspan=\"2\"> </td></tr>"); this.out.println("<tr>"); this.out.println(" <td width=\"50%\"><b>REQUEST ATTRIBUTE</b></td>"); this.out.println(" <td><b>MULTIPART-REQUEST</b></td>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println(" <td>"); this.out.println(" <table width=\"100%\" cellPadding=\"0\" cellSpacing=\"0\">"); Enumeration ena = this.request.getAttributeNames(); int r = 0; while (ena.hasMoreElements()) { String a = (String) ena.nextElement(); this.out.println("<tr>"); this.out.println(" <td><b>" + a + "</b></td>"); this.out.println(" <td>" + (String) this.request.getAttribute(a) + "</td>"); this.out.println("</tr>"); r++; } this.out.println(" </table>"); this.out.println(" </td>"); this.out.println(" <td>"); int m = 0; if (requestMultipart != null && requestMultipart.size() > 0) { this.out.println(" <table width=\"100%\" cellPadding=\"0\" cellSpacing=\"0\">"); Iterator it = requestMultipart.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); this.out.println("<tr>"); this.out.println(" <td><b>" + (String) entry.getKey() + "</b></td>"); this.out.println(" <td>" + (String) entry.getValue() + "</td>"); this.out.println("</tr>"); m++; } this.out.println(" </table>"); } this.out.println(" </td>"); this.out.println("</tr>"); this.out.println("<tr><td>" + r + "</td><td>" + m + "</td></tr>"); this.out.println("<tr><td colspan=\"2\"> </td></tr>"); this.out.println("<tr>"); this.out.println(" <td colspan=\"2\"><b>Session: </b></td>"); this.out.println("</tr>"); this.out.println("<tr>"); this.out.println(" <td colspan=\"2\"><b>ID = </b>" + this.session.getId() + "</td>"); this.out.println("</tr>"); if (this.request.isRequestedSessionIdFromCookie()) { this.out.println("<tr>"); this.out.println(" <td colspan=\"2\">Session aus Cookie</td>"); this.out.println("</tr>"); } if (this.request.isRequestedSessionIdFromURL()) { this.out.println("<tr>"); this.out.println(" <td colspan=\"2\">Session aus URL</td>"); this.out.println("</tr>"); } this.out.println("<tr>"); this.out.println(" <td colspan=\"2\">"); if (this.session.isNew()) { this.out.print("neue Session"); } else { this.out.print("alte Session"); } this.out.println(" </td>"); this.out.println("</tr>"); Enumeration sessionAttributeNames = this.session.getAttributeNames(); //this.session.setAttribute("SOS 1","SOS value"); //String[] a = {"aa","bb","cc"}; //this.session.setAttribute("SOS 2",a); this.out.println("<tr>"); this.out.println(" <td colspan=\"2\">"); while (sessionAttributeNames.hasMoreElements()) { String sessionAttribute = (String) sessionAttributeNames.nextElement(); Object obj = this.session.getAttribute(sessionAttribute); this.out.print("<b>" + sessionAttribute + "</b> = " + obj + "<br />"); } this.out.println(" </td>"); this.out.println("</tr>"); this.out.println("</table>"); this.out.println("</div>"); } /** * Liefert Debuglevel * * @return debugLevel Debuglevel. */ public int getDebugLevel() { return debugLevel; } /** * Debuglevel setzen * * @param debugLevel * Debuglevel. */ public void setDebugLevel(int debugLevel) { this.debugLevel = debugLevel; } /** * Liefert Sprache der Anwendung (de,en ...) * * @return sosLang default : de */ public String getLanguage() { return sosLang; } /** * Liefert Voreinstellung fr created_name, modified_name bei nderung von * Einstellungen * * @return Name des Autors. */ public String getAuthor() { return author; } /** * Voreinstellung fr created_name, modified_name bei nderung von * Einstellungen * * @param author * Name des Autors. */ public void setAuthor(String author) { this.author = author; } /** * Liefert HTML Titel * * @return title Titel */ public String getTitle() { return title; } /** * HTML Titel setzen * * @param title * Titel */ public void setTitle(String title) { this.title = title; } /** * Liefert Titel der Liste aller Applicationen * * @return dialogApplicationsTitle Titel z.B:(Alle Einstellungen). */ public String getDialogApplicationsTitle() { return dialogApplicationsTitle; } /** * Titel der Liste aller Applicationen setzen * * @param dialogApplicationsTitle * Titel z.B:(Alle Einstellungen). */ public void setDialogApplicationsTitle(String dialogApplicationsTitle) { this.dialogApplicationsTitle = dialogApplicationsTitle; } /** * Liefert Titel fr neue Applikation * * @return dialogApplicationsNewTitle Titel z.B: (Neuer Bereich) */ public String getDialogApplicationsNewTitle() { return dialogApplicationsNewTitle; } /** * Titel fr neue Applikation setzen * * @param dialogApplicationsNewTitle * Titel z.B: (Neuer Bereich) */ public void setDialogApplicationsNewTitle(String dialogApplicationsNewTitle) { this.dialogApplicationsNewTitle = dialogApplicationsNewTitle; } /** * Liefert Titel der Liste aller Sektionen * * @return dialogSectionsTitle Titel z.B: Einstellungen des Bereichs */ public String getDialogSectionsTitle() { return dialogSectionsTitle; } /** * Titel der Liste aller Sektionen setzen * * @param dialogSectionsTitle * Titel z.B: Einstellungen des Bereichs */ public void setDialogSectionsTitle(String dialogSectionsTitle) { this.dialogSectionsTitle = dialogSectionsTitle; } /** * Liefert Titel fr neue Sektion * * @return dialogSectionsNewTitle Titel z.B: (Neue Sektion) */ public String getDialogSectionsNewTitle() { return dialogSectionsNewTitle; } /** * Titel fr neue Sektion setzen * * @param dialogSectionsNewTitle * Titel z.B: (Neue Sektion) */ public void setDialogSectionsNewTitle(String dialogSectionsNewTitle) { this.dialogSectionsNewTitle = dialogSectionsNewTitle; } /** * Setzt Titel fr neue Schema-Sektion * * @return dialogSectionsSchemaTitle Titel z.B: (Schema des Bereichs) */ public String getDialogSectionsSchemaTitle() { return dialogSectionsSchemaTitle; } /** * Titel fr neue Schema-Sektion setzen * * @param dialogSectionsSchemaTitle * Titel z.B: (Schema des Bereichs) */ public void setDialogSectionsSchemaTitle(String dialogSectionsSchemaTitle) { this.dialogSectionsSchemaTitle = dialogSectionsSchemaTitle; } /** * Liefert Titel fr neue Zhler-Sektion * * @return dialogSectionsCounterTitle Titel z.B: Nr. des letzten Eintrags * fr Tabelle */ public String getDialogSectionsCounterTitle() { return dialogSectionsCounterTitle; } /** * Titel fr neue Zhler-Sektion setzen * * @param dialogSectionsCounterTitle * Titel z.B: Nr. des letzten Eintrags fr Tabelle */ public void setDialogSectionsCounterTitle(String dialogSectionsCounterTitle) { this.dialogSectionsCounterTitle = dialogSectionsCounterTitle; } /** * Liefert Titel der Liste aller Eintrge * * @return dialogEntriesTitle Titel z.B: Einstellungen der Sektion */ public String getDialogEntriesTitle() { return dialogEntriesTitle; } /** * Titel der Liste aller Eintrge setzen * * @param dialogEntriesTitle * Titel z.B: Einstellungen der Sektion */ public void setDialogEntriesTitle(String dialogEntriesTitle) { this.dialogEntriesTitle = dialogEntriesTitle; } /** * Liefert Titel fr neuen Eintrag * * @return dialogEntriesNewTitle Titel z.B: (Neuer Eintrag) */ public String getDialogEntriesNewTitle() { return dialogEntriesNewTitle; } /** * Titel fr neuen Eintrag setzen * * @param dialogEntriesNewTitle * Titel z.B: (Neuer Eintrag) */ public void setDialogEntriesNewTitle(String dialogEntriesNewTitle) { this.dialogEntriesNewTitle = dialogEntriesNewTitle; } /** * Liefert Titel fr Export einer Applikation * * @return dialogApplicationsExportTitle Titel z.B: (Alle Eintrge dieses * Bereichs) */ public String getDialogApplicationsExportTitle() { return dialogApplicationsExportTitle; } /** * Titel fr Export einer Applikation setzen * * @param dialogApplicationsExportTitle * Titel z.B: (Alle Eintrge dieses Bereichs) */ public void setDialogApplicationsExportTitle(String dialogApplicationsExportTitle) { this.dialogApplicationsExportTitle = dialogApplicationsExportTitle; } /** * Liefert Titel fr Export einer Sektion * * @return dialogSectionsExportTitle Titel z.B: (Alle Eintrge dieser * Sektion) */ public String getDialogSectionsExportTitle() { return dialogSectionsExportTitle; } /** * Titel fr Export einer Sektion setzen * * @param dialogSectionsExportTitle * Titel z.B: (Alle Eintrge dieser Sektion) */ public void setDialogSectionsExportTitle(String dialogSectionsExportTitle) { this.dialogSectionsExportTitle = dialogSectionsExportTitle; } /** * Liefert Name der Web-Seite * * @return site Name der Web-Seite */ public String getSite() { return site; } /** * Name der Web-Seite setzen * * @param site * Name der Web-Seite */ public void setSite(String site) { this.site = site; } /** * Anzeige von "Dokumentieren" Button zulassen * * @return enableDocumentation false - nicht zulassen */ public boolean isEnableDocumentation() { return enableDocumentation; } /** * Anzeige von "Dokumentieren" Button zulassen * * @param enableDocumentation * false - nicht zulassen */ public void setEnableDocumentation(boolean enableDocumentation) { this.enableDocumentation = enableDocumentation; } /** * Liefert Name der JSP Datei fr die Anzeige der Dokumentation * * @return documentationFile default settings_show_docu.jsp */ public String getDocumentationFile() { return documentationFile; } /** * JSP Datei fr die Anzeige der Dokumentation * * @param documentationFile * default settings_show_docu.jsp */ public void setDocumentationFile(String documentationFile) { this.documentationFile = documentationFile; } /** * Liefert Order by in dem Dokufenster * * @return documentationSort default : "APPLICATION" asc, "SECTION" asc, * "NAME" asc */ public String getDocumentationSort() { return documentationSort; } /** * Order by in dem Dokufenster * * @param documentationSort * default : "APPLICATION" asc, "SECTION" asc, "NAME" asc */ public void setDocumentationSort(String documentationSort) { this.documentationSort = documentationSort; } /** * Liefert Hhe des Dokufensters * * @return docuWinHeight Hhe in px */ public int getDocuWinHeight() { return docuWinHeight; } /** * Hhe des Dokufensters * * @param docuWinHeight * Hhe in px */ public void setDocuWinHeight(int docuWinHeight) { this.docuWinHeight = docuWinHeight; } /** * Liefert Breite des Dokufensters * * @return docuWinWidth Breite in px */ public int getDocuWinWidth() { return docuWinWidth; } /** * Breite des Dokufensters * * @param docuWinWidth * Breite in px */ public void setDocuWinWidth(int docuWinWidth) { this.docuWinWidth = docuWinWidth; } /** * Template CSS Datei fr die Dokuanzeige importieren * * @return enableTemplateCss default false : nicht importieren */ public boolean isEnableDocuTemplateCss() { return enableDocuTemplateCss; } /** * Template CSS Datei fr die Dokuanzeige importieren * * @param enableTemplateCss * default false : nicht importieren */ public void setEnableDocuTemplateCss(boolean enableDocuTemplateCss) { this.enableDocuTemplateCss = enableDocuTemplateCss; } /** * JSP Datei fr die Anzeige von Hilfetexten * * @return helpFile Name der Datei default : settings_show_help.jsp */ public String getHelpFile() { return helpFile; } /** * JSP Datei fr die Anzeige von Hilfetexten * * @param helpFile * Name der Datei default : settings_show_help.jsp */ public void setHelpFile(String helpFile) { this.helpFile = helpFile; } /** * Hhe des Hilfefensters * * @return helpWinHeight Hhe in px */ public int getHelpWinHeight() { return helpWinHeight; } /** * Hhe des Hilfefensters * * @param helpWinHeight * Hhe in px */ public void setHelpWinHeight(int helpWinHeight) { this.helpWinHeight = helpWinHeight; } /** * Breite des Hilfefensters * * @return helpWinWidth Breite in px */ public int getHelpWinWidth() { return helpWinWidth; } /** * Breite des Hilfefensters * * @param helpWinWidth * Breite in px */ public void setHelpWinWidth(int helpWinWidth) { this.helpWinWidth = helpWinWidth; } /** * Applikationsverwaltung zulassen * * @return enableApplicationManager default true : zulassen */ public boolean isEnableApplicationManager() { return enableApplicationManager; } /** * Applikationsverwaltung zulassen * * @param enableApplicationManager * default true : zulassen */ public void setEnableApplicationManager(boolean enableApplicationManager) { this.enableApplicationManager = enableApplicationManager; } /** * Navigieren in Applikationen zulassen * * @return enableApplicationNavigation default true : zulassen */ public boolean isEnableApplicationNavigation() { return enableApplicationNavigation; } /** * Navigieren in Applikationen zulassen * * @param enableApplicationNavigation * default true : zulassen */ public void setEnableApplicationNavigation(boolean enableApplicationNavigation) { this.enableApplicationNavigation = enableApplicationNavigation; } /** * Sektionsverwaltung zulassen * * @return enableSectionManager default true : zulassen */ public boolean isEnableSectionManager() { return enableSectionManager; } /** * Sektionsverwaltung zulassen * * @param enableSectionManager * default true : zulassen */ public void setEnableSectionManager(boolean enableSectionManager) { this.enableSectionManager = enableSectionManager; } /** * Eintragsverwaltung zulassen * * @return enableEntryManager default true : zulassen */ public boolean isEnableEntryManager() { return enableEntryManager; } /** * Eintragsverwaltung zulassen * * @param enableEntryManager * default true : zulassen */ public void setEnableEntryManager(boolean enableEntryManager) { this.enableEntryManager = enableEntryManager; } /** * Anzeige der Namen von Eintrgen in Listen zulassen * * @return enableEntryNames default true : zulassen */ public boolean isEnableEntryNames() { return enableEntryNames; } /** * Anzeige der Namen von Eintrgen in Listen zulassen * * @param enableEntryNames * default true : zulassen */ public void setEnableEntryNames(boolean enableEntryNames) { this.enableEntryNames = enableEntryNames; } /** * ndern der Werte von Eintrgen in Listen zulassen * * @return enableEntryValues default true : zulassen */ public boolean isEnableEntryValues() { return enableEntryValues; } /** * ndern der Werte von Eintrgen in Listen zulassen * * @param enableEntryValues * default true : zulassen */ public void setEnableEntryValues(boolean enableEntryValues) { this.enableEntryValues = enableEntryValues; } /** * Export zulassen * * @return enableExport default true : zulassen */ public boolean isEnableExport() { return enableExport; } /** * Export zulassen * * @param enableExport * default true : zulassen */ public void setEnableExport(boolean enableExport) { this.enableExport = enableExport; } /** * Import zulassen * * @return enableImport default true : zulassen */ public boolean isEnableImport() { return enableImport; } /** * Import zulassen * * @param enableImport * default true : zulassen */ public void setEnableImport(boolean enableImport) { this.enableImport = enableImport; } /** * Inhalt des Headers setzen * * @param headerContent * Inhalt */ public void setHeaderContent(String headerContent) { this.headerContent = headerContent; } /** * Liefert Anzahl Pixel fr Anzeige eines Eintrags (default 50) * * @return Default: Anzahl Pixel fr Anzeige eines Eintrags */ public String getDefaultDisplaySize() { return defaultDisplaySize; } /** * Anzahl Pixel fr Anzeige eines Eintrags setzen (default 50) * * @param defaultDisplaySize * Anzahl Pixel. */ public void setDefaultDisplaySize(String defaultDisplaySize) { this.defaultDisplaySize = defaultDisplaySize; } /** * Liefert Anzahl Zeichen fr Eingabe eines Eintrags (default 250) * * @return defaultInputSize Anzahl Zeichen. */ public String getDefaultInputSize() { return defaultInputSize; } /** * Anzahl Zeichen fr Eingabe eines Eintrags setzen (default 250) * * @param defaultInputSize * Anzahl Zeichen. */ public void setDefaultInputSize(String defaultInputSize) { this.defaultInputSize = defaultInputSize; } /** * Liefert Anzahl Zeilen bei Darstellung von Textareas * * @return displayTextareaRows Anzahl Zeilen */ public int getDisplayTextareaRows() { return displayTextareaRows; } /** * Anzahl Zeilen bei Darstellung von Textareas setzen * * @param displayTextareaRows * Anzahl Zeilen */ public void setDisplayTextareaRows(int displayTextareaRows) { this.displayTextareaRows = displayTextareaRows; } /** * Liefert Anzahl Zeilen bei Darstellung von Document (long_value) Textareas * * @return displayDocumentTextareaRows Anzahl Zeilen */ public int getDisplayDocumentTextareaRows() { return displayDocumentTextareaRows; } /** * Anzahl Zeilen bei Darstellung von Document (long_value) Textareas setzen * * @param displayDocumentTextareaRows * Anzahl Zeilen */ public void setDisplayDocumentTextareaRows(int displayDocumentTextareaRows) { this.displayDocumentTextareaRows = displayDocumentTextareaRows; } /** * Liefert Imageverzeichnis der Anwendung * * @return imgDir Name des Verzeichnisses */ public String getImgDir() { return imgDir; } /** * Imageverzeichnis der Anwendung setzen * * @param imgDir * Name des Verzeichnisses */ public void setImgDir(String imgDir) { this.imgDir = imgDir; } /** * Graphik fr Aktionen * * @return imgAction Dateiname */ public String getImgAction() { return imgAction; } /** * Graphik fr Aktionen * * @param imgAction * Dateiname */ public void setImgAction(String imgAction) { this.imgAction = imgAction; } /** * Graphik fr Seitenende * * @return imgBottom Dateiname */ public String getImgBottom() { return imgBottom; } /** * Graphik fr Seitenende * * @param imgBottom * Dateiname */ public void setImgBottom(String imgBottom) { this.imgBottom = imgBottom; } /** * Graphik fr Hilfe * * @return imgHelp Dateiname */ public String getImgHelp() { return imgHelp; } /** * Graphik fr Hilfe * * @param imgHelp * Dateiname */ public void setImgHelp(String imgHelp) { this.imgHelp = imgHelp; } /** * Graphik fr Navigation * * @return imgNavigation The imgNavigation to set. */ public String getImgNavigation() { return imgNavigation; } /** * Graphik fr Navigation * * @param imgNavigation * The imgNavigation to set. */ public void setImgNavigation(String imgNavigation) { this.imgNavigation = imgNavigation; } /** * Graphik fr Seitenanfang * * @return imgTop Dateiname */ public String getImgTop() { return imgTop; } /** * Graphik fr Seitenanfang * * @param imgTop * Dateiname */ public void setImgTop(String imgTop) { this.imgTop = imgTop; } /** * CSS-Style: Tabellenrnder 1/0 * * @return styleBorder default : 1 */ public String getStyleBorder() { return styleBorder; } /** * CSS-Style: Tabellenrnder 1/0 * * @param styleBorder * default : 1 */ public void setStyleBorder(String styleBorder) { this.styleBorder = styleBorder; } /** * CSS-Klasse fr Aktionen via Font * * @return styleFontAction CSS-Klasse */ public String getStyleFontAction() { return styleFontAction; } /** * CSS-Klasse fr Aktionen via Font * * @param styleFontAction * CSS-Klasse */ public void setStyleFontAction(String styleFontAction) { this.styleFontAction = styleFontAction; } /** * CSS-Klasse fr Aktionen via Font * * @return styleFontNavigation CSS-Klasse */ public String getStyleFontNavigation() { return styleFontNavigation; } /** * CSS-Klasse fr Aktionen via Font * * @param styleFontNavigation * CSS-Klasse */ public void setStyleFontNavigation(String styleFontNavigation) { this.styleFontNavigation = styleFontNavigation; } /** * CSS-Style INPUT.settings * * @return styleInput CSS-Klasse */ public String getStyleInput() { return styleInput; } /** * CSS-Style INPUT.settings * * @param styleInput * CSS-Klasse */ public void setStyleInput(String styleInput) { this.styleInput = styleInput; } /** * CSS-Klasse fr Aktionen via Link * * @return styleLinkAction CSS-Klasse */ public String getStyleLinkAction() { return styleLinkAction; } /** * CSS-Klasse fr Aktionen via Link * * @param styleLinkAction * CSS-Klasse */ public void setStyleLinkAction(String styleLinkAction) { this.styleLinkAction = styleLinkAction; } /** * CSS-Klasse fr Aktionen via Link * * @return styleLinkInactiveNavigation CSS-Klasse */ public String getStyleLinkInactiveNavigation() { return styleLinkInactiveNavigation; } /** * CSS-Klasse fr Aktionen via Link * * @param styleLinkInactiveNavigation * CSS-Klasse */ public void setStyleLinkInactiveNavigation(String styleLinkInactiveNavigation) { this.styleLinkInactiveNavigation = styleLinkInactiveNavigation; } /** * CSS-Klasse fr Aktionen via Link * * @return styleLinkNavigation CSS-Klasse */ public String getStyleLinkNavigation() { return styleLinkNavigation; } /** * CSS-Klasse fr Aktionen via Link * * @param styleLinkNavigation * CSS-Klasse */ public void setStyleLinkNavigation(String styleLinkNavigation) { this.styleLinkNavigation = styleLinkNavigation; } /** * CSS-Style TABLE.settings * * @return styleTable CSS-Klasse */ public String getStyleTable() { return styleTable; } /** * CSS-Style TABLE.settings * * @param styleTable * CSS-Klasse */ public void setStyleTable(String styleTable) { this.styleTable = styleTable; } /** * CSS-Style TD.settings * * @return styleTd CSS-Klasse */ public String getStyleTd() { return styleTd; } /** * CSS-Style TD.settings * * @param styleTd * CSS-Klasse */ public void setStyleTd(String styleTd) { this.styleTd = styleTd; } /** * CSS-Style TD.settings * * @return styleTdBackground CSS-Klasse */ public String getStyleTdBackground() { return styleTdBackground; } /** * CSS-Style TD.settings * * @param styleTdBackground * CSS-Klasse */ public void setStyleTdBackground(String styleTdBackground) { this.styleTdBackground = styleTdBackground; } /** * CSS-Style TD.settings * * @return styleTdLabel CSS-Klasse */ public String getStyleTdLabel() { return styleTdLabel; } /** * CSS-Style TD.settings * * @param styleTdLabel * CSS-Klasse */ public void setStyleTdLabel(String styleTdLabel) { this.styleTdLabel = styleTdLabel; } /** * CSS-Style TH.settings * * @return styleTh CSS-Klasse */ public String getStyleTh() { return styleTh; } /** * CSS-Style TH.settings * * @param styleTh * CSS-Klasse */ public void setStyleTh(String styleTh) { this.styleTh = styleTh; } /** * CSS-Style TR.settings * * @return styleTr CSS-Klasse */ public String getStyleTr() { return styleTr; } /** * CSS-Style TR.settings * * @param styleTr * CSS-Klasse */ public void setStyleTr(String styleTr) { this.styleTr = styleTr; } /** * Import-Funktion: Dateigre beschrnken, -1 = beliebig * * @return importMaxSize Dateigrsse */ public long getImportMaxSize() { return importMaxSize; } /** * Import-Funktion: Dateigre beschrnken, -1 = beliebig * * @param importMaxSize * Dateigrsse */ public void setImportMaxSize(long importMaxSize) { this.importMaxSize = importMaxSize; } /** * Liefert ACL Identifier * * @return Returns the topLevelAcl. */ public String getTopLevelAcl() { return topLevelAcl; } /** * Setzt ACL fr die Anzeige von allen Applikationen bzw "neue Applikation" * * @param topLevelAcl * ACL identifier. */ public void setTopLevelAcl(String topLevelAcl) { this.topLevelAcl = topLevelAcl; } /** * Liefert User Objekt * * @return User Objekt. */ public sos.user.SOSUser getUser() { return user; } /** * Setzt ein SOSUser Objekt * * @param user * SOSUser Objekt. * @throws Exception */ public void setUser(Object user) throws Exception { try { this.user = (sos.user.SOSUser) user; } catch (ClassCastException e) { throw new Exception("user is not valid SOSUser Object." + e.getMessage()); } catch (NoClassDefFoundError e) { throw new Exception("Class not found (sos.user.jar) : " + e.getMessage()); } catch (Exception e) { throw new Exception(e.getMessage()); } } /** * * */ private String dbQuoted(String value) { if (value == null) return "NULL"; value = value.replaceAll("'", "''"); if (this.connection instanceof sos.connection.SOSMySQLConnection) { // nur // bei // MySQL value = value.replaceAll("\\\\", "\\\\\\\\"); // einfache durch // doppelte } return "'" + value + "'"; } /** * Liefert Tabelle der ACLs * * @return Tabelle der ACLs. */ public String getTableAcls() { return tableAcls; } /** * Setzt Tabelle der ACLs * * @param tableAcls * Tabelle der ACLs. */ public void setTableAcls(String tableAcls) { this.tableAcls = tableAcls; } /** * Liefert Zeichen fr alle Applikationen|Sektionen|Entries (default "*") * bei der Verwendung von ACLs * * @return Returns the Zeichen fr alle Applikationen|Sektionen|Entries. */ public String getAllAclNote() { return allAclNote; } /** * Setzt Zeichen fr alle Applikationen|Sektionen|Entries (default "*") bei * der Verwendung von ACLs * * @param allAclNote * Zeichen fr alle Applikationen|Sektionen|Entries. */ public void setAllAclNote(String allAclNote) { this.allAclNote = allAclNote; } /** * Liefert Zustand Anzeige von Hilfetexten zulassen * * @return Returns the enableHelps. */ public boolean isEnableHelps() { return enableHelps; } /** * Setzt Zustand Anzeige von Hilfetexten zulassen * * @param enableHelps * The enableHelps to set. */ public void setEnableHelps(boolean enableHelps) { this.enableHelps = enableHelps; } /** * Listenverwaltung zulassen * * @return Listenverwaltung zulassen. */ public boolean isEnableListManager() { return enableListManager; } /** * Listenverwaltung zulassen * * @param enableListManager * Listenverwaltung zulassen. */ public void setEnableListManager(boolean enableListManager) { this.enableListManager = enableListManager; } /** * Liefert Name des Formular-Elements * * @return Name des Formular-Elements. */ public String getForm() { return form; } /** * Setzt Name des Formular-Elements * * @param form * Name des Formular-Elements. */ public void setForm(String form) { this.form = form; } /** * Liefert Hhe des JS-Hilfefensters * * @return Hhe des JS-Hilfefensters. */ public int getHelpsWinHeight() { return helpsWinHeight; } /** * Setzt Hhe des JS-Hilfefensters * * @param helpsWinHeight * Hhe des JS-Hilfefensters. */ public void setHelpsWinHeight(int helpsWinHeight) { this.helpsWinHeight = helpsWinHeight; } /** * Liefert Breite des JS-Hilfefensters * * @return Breite des JS-Hilfefensters. */ public int getHelpsWinWidth() { return helpsWinWidth; } /** * Setzt Breite des JS-Hilfefensters * * @param helpsWinWidth * Breite des JS-Hilfefensters. */ public void setHelpsWinWidth(int helpsWinWidth) { this.helpsWinWidth = helpsWinWidth; } /** * Liefert aktuelle Session ID * * @return Returns the sessionID. */ public String getSessionID() { return sessionID; } /** * Setzt Session ID * * @param sessionID * The sessionID to set. */ public void setSessionID(String sessionID) { this.sessionID = sessionID; } /** * Liefert Query-Parameter fr Session-ID (default JSESSIONID) * * @return Query-Parameter fr Session-ID. */ public String getSessionVAR() { return sessionVAR; } /** * Setzt Query-Parameter fr Session-ID (default JSESSIONID) * * @param sessionVAR * Query-Parameter fr Session-ID. */ public void setSessionVAR(String sessionVAR) { this.sessionVAR = sessionVAR; } /** * Liefert Sortierfeld(er) fr Anzeige der Eintrge * * @return Sortierfeld(er) fr Anzeige der Eintrge. */ public String getEntryOrder() { return this.settings.getEntryOrder(); } /** * Setzt Sortierfeld(er) fr Anzeige der Eintrge * * @param entryOrder * Sortierfeld(er) fr Anzeige der Eintrge. Default : NAME */ public void setEntryOrder(String entryOrder) { this.settings.setEntryOrder(entryOrder); } /** * Liefert den Name der Anwendung * * @return Name der Anwendung. */ public String getApplication() { return this.settings.getApplication(); } /** * Setzt den Name der Anwendung * * @param application * Name der Anwendung. Default : Leerstring */ public void setApplication(String application) { this.settings.setApplication(application); } /** * Liefert den Name der Applikation fr Zhlervariablen * * @return Name der Applikation fr Zhlervariablen. */ public String getEntryCounterApplication() { return this.settings.getEntryCounterApplication(); } /** * Setzt den Name der Applikation fr Zhlervariablen * * @param entryCounterApplication * Name der Applikation fr Zhlervariablen. Default : counter */ public void setEntryCounterApplication(String entryCounterApplication) { this.settings.setEntryCounterApplication(entryCounterApplication); } /** * Lifert den Name der Sektion fr Zhlervariablen * * @return Name der Sektion fr Zhlervariablen. */ public String getEntryCounterSection() { return this.settings.getEntryCounterSection(); } /** * Setzt den Name der Sektion fr Zhlervariablen * * @param entryCounterSection * Name der Sektion fr Zhlervariablen. Default : counter */ public void setEntryCounterSection(String entryCounterSection) { this.settings.setEntryCounterSection(entryCounterSection); } /** * Liefert den Name der Sektion fr Master Schemata * * @return Name der Sektion fr Master Schemata */ public String getEntrySchemaSection() { return this.settings.getEntrySchemaSection(); } /** * Setzt den Name der Sektion fr Master Schemata * * @param entrySchemaSection * Name der Sektion fr Master Schemata. Default : **schema** */ public void setEntrySchemaSection(String entrySchemaSection) { this.settings.setEntrySchemaSection(entrySchemaSection); } /** * Liefert das Feld fr Titels der Eintrge * * @return Returns the entrySettingTitle. */ public String getEntrySettingTitle() { return this.getEntrySettingTitle(); } /** * Setzt das Feld fr Titels der Eintrge * * @param entrySettingTitle * Feld fr Titels der Eintrge. */ public void setEntrySettingTitle(String entrySettingTitle) { this.settings.setEntrySettingTitle(entrySettingTitle); } /** * @return Returns the dateFormat. */ public SimpleDateFormat getDateFormat() { return dateFormat; } /** * @param dateFormat * The dateFormat to set. */ public void setDateFormat(SimpleDateFormat dateFormat) { this.dateFormat = dateFormat; } /** * @return Returns the enableEditor. */ public boolean isEnableEditor() { return enableEditor; } /** * @param enableEditor * The enableEditor to set. */ public void setEnableEditor(boolean enableEditor) { this.enableEditor = enableEditor; } /** * @return Returns the source. */ public String getSource() { return source; } /** * @param source * The source to set. */ public void setSource(String source) { this.source = source; } /** * @return Returns the editorHeight. */ public String getEditorHeight() { return editorHeight; } /** * @param editorHeight * The editorHeight to set. */ public void setEditorHeight(String editorHeight) { this.editorHeight = editorHeight; } /** * @return Returns the editorName. */ public String getEditorName() { return editorName; } /** * @param editorName * The editorName to set. */ public void setEditorName(String editorName) { this.editorName = editorName; } /** * @return Returns the locale. */ public Locale getLocale() { return locale; } /** * Setzt den Schalter fr die Bercksichtigung von Gro/Kleinschreibung * * @param ignoreCase */ public void setIgnoreCase(boolean ignoreCase) { this.settings.ignoreCase = ignoreCase; } /** * liefert den Schalter fr die Bercksichtigung von Gro/Kleinschreibung * * @param ignoreCase */ public boolean getIgnoreCase() { return this.settings.ignoreCase; } /** * Setzt den Messagetext * * @param ignoreCase */ public void setMsg(String msg) { this.msg = msg; } /** * liefert den Messagetext * * @param ignoreCase */ public String getMsg() { return this.msg; } /** * Automatisches Setzen in der DB von gerade aktiven LONG_VALUE bzw VALUE * zulassen (Funktion - set_dialog_entries_long_values) * * @return Returns the enableAutoSetLongValues. */ public boolean isEnableAutoSetLongValues() { return enableAutoSetLongValues; } /** * Automatisches Setzen in der DB von gerade aktiven LONG_VALUE bzw VALUE * zulassen (Funktion - set_dialog_entries_long_values) * * @param enableAutoSetLongValues * The enableAutoSetLongValues to set. */ public void setEnableAutoSetLongValues(boolean enableAutoSetLongValues) { this.enableAutoSetLongValues = enableAutoSetLongValues; } /** * FCKEditor Breite * * @return Returns the editorWidth. */ public String getEditorWidth() { return editorWidth; } /** * FCKEditor Breite * * @param editorWidth The editorWidth to set. */ public void setEditorWidth(String editorWidth) { this.editorWidth = editorWidth; } /** * Aktuelle Request, Session Daten anzeigen * * @return Returns the enableShowDevelopmentData. */ public boolean isEnableShowDevelopmentData() { return enableShowDevelopmentData; } /** * Aktuelle Request, Session Daten anzeigen * * @param enableShowDevelopmentData The enableShowDevelopmentData to set. */ public void setEnableShowDevelopmentData(boolean enableShowDevelopmentData) { this.enableShowDevelopmentData = enableShowDevelopmentData; } /** * DIV Positionierung Left * * @param divDevelopmentDataLeft The divDevelopmentDataLeft to set. */ public void setDivDevelopmentDataLeft(String divDevelopmentDataLeft) { this.divDevelopmentDataLeft = divDevelopmentDataLeft; } /** * DIV Positionierung Top * * @param divDevelopmentDataTop The divDevelopmentDataTop to set. */ public void setDivDevelopmentDataTop(String divDevelopmentDataTop) { this.divDevelopmentDataTop = divDevelopmentDataTop; } /** * @return Returns the isSourceDownloaded. */ public boolean isSourceDownloaded() { return isSourceDownloaded; } }