// Einstellungen aus dem Fahrtenbuch auslesen public boolean readEinstellungen() { String s; fbDaten.bootDatei = "boote.efbb"; fbDaten.mitgliederDatei = "mitglieder.efbm"; fbDaten.zieleDatei = "ziele.efbz"; fbDaten.statistikDatei = "statistik.efbs"; try { while ((s = freadLine()) != null && !s.startsWith("##ENDE_KONFIG")) { s = s.trim(); if (s.startsWith("BOOTE=")) fbDaten.bootDatei = s.substring(6, s.length()); if (s.startsWith("MITGLIEDER=")) fbDaten.mitgliederDatei = s.substring(11, s.length()); if (s.startsWith("ZIELE=")) fbDaten.zieleDatei = s.substring(6, s.length()); if (s.startsWith("STATISTIK=")) fbDaten.statistikDatei = s.substring(10, s.length()); if (s.startsWith("VORHERIGESFB=")) prevFb = s.substring(13, s.length()); if (s.startsWith("NAECHSTESFB=")) nextFb = s.substring(12, s.length()); if (s.startsWith("NAMENSANGABEN=")) fbDaten.erstVorname = s.substring(14, s.length()).equals("VORNACH"); if (s.startsWith("STATUS1=")) { // aus Kompatibilität zu FBs von vor 090 String t = s.substring(8, s.length()); if (!t.endsWith( "," + Daten.efaTypes.getValue( EfaTypes.CATEGORY_STATUS, EfaTypes.TYPE_STATUS_GUEST))) { t = t + "," + Daten.efaTypes.getValue(EfaTypes.CATEGORY_STATUS, EfaTypes.TYPE_STATUS_GUEST); } fbDaten.status = EfaUtil.statusList2Arr(t); } if (s.startsWith("STATUS=")) { String t = s.substring(7, s.length()); fbDaten.status = EfaUtil.statusList2Arr(t); } if (s.startsWith("ANZMITGLIEDER=")) { String t = s.substring(14, s.length()); fbDaten.anzMitglieder = EfaUtil.string2int(t, 0); } if (s.startsWith("MEHRTAGESFAHRT=")) { String t = s.substring(15, s.length()); DatenFelder d = new DatenFelder(6, t); Mehrtagesfahrt m = new Mehrtagesfahrt( d.get(0), d.get(1), d.get(2), EfaUtil.string2int(d.get(3), 1), d.get(4), d.get(5).equals("+")); mehrtagesfahrten.put(m.name, m); } } } catch (IOException e) { errReadingFile(dat, e.getMessage()); return false; } return true; }
// Beginn eines Element-Tags public void startElement(String uri, String localName, String qname, Attributes atts) { try { if (uri.equals("http://www.nmichael.de/elwiz")) { // Elemente des elwiz-Namensraums if (!localName.equals("option")) { // Hauptelement // Namen ermitteln String name = null; for (int i = 0; i < atts.getLength(); i++) if (atts.getLocalName(i).equals("name")) name = atts.getValue(i); // Element suchen for (int i = 0; i < options.size(); i++) if (((ElwizOption) options.get(i)).name.equals(name)) { this.option = (ElwizOption) options.get(i); break; } } else { // Unterelement // Position des Unterelements für Zugriff auf options-Vektor ermitteln int pos = -1; for (int i = 0; i < atts.getLength(); i++) if (atts.getLocalName(i).equals("pos")) pos = EfaUtil.string2int(atts.getValue(i), -1); if (option != null) switch (option.type) { case ElwizOption.O_OPTIONAL: // optional JCheckBox o1 = (JCheckBox) option.components.get(pos); if (!o1.isSelected()) skip = true; break; case ElwizOption.O_SELECT: // select JRadioButton o2 = (JRadioButton) option.components.get(pos); if (!o2.isSelected()) skip = true; ElwizSingleOption eso = (ElwizSingleOption) option.options.get(pos); if (!skip && eso.value != null) f.write(eso.value); break; case ElwizOption.O_VALUE: // value JTextField o3 = (JTextField) option.components.get(pos); f.write(o3.getText().trim()); break; } } } else { // Elemente des XSLT-Namensraums if (skip) return; // Element unterdrücken? f.write("<" + qname); for (int i = 0; i < atts.getLength(); i++) { f.write( " " + atts.getLocalName(i) + "=\"" + EfaUtil.replace(atts.getValue(i), "<", "<", true) + "\""); } if (localName.equals("stylesheet")) f.write( " xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:fo=\"http://www.w3.org/1999/XSL/Format\""); f.write(">"); } } catch (IOException e) { } }