/* * This file is part of jHaushalt. * jHaushalt is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * jHaushalt is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with jHaushalt; if not, see <http://www.gnu.org/licenses/>. * (C)opyright 2002-2010 Dr. Lars H. Hahn */ package haushalt.gui; import haushalt.daten.zeitraum.AbstractZeitraum; import haushalt.daten.zeitraum.AktuellerMonat; import haushalt.daten.zeitraum.AktuellesJahr; import haushalt.daten.zeitraum.AktuellesQuartal; import haushalt.daten.zeitraum.FreierZeitraum; import haushalt.daten.zeitraum.Halbjahr; import haushalt.daten.zeitraum.Jahr; import haushalt.daten.zeitraum.JahresanfangBisDatum; import haushalt.daten.zeitraum.JahresanfangBisHeute; import haushalt.daten.zeitraum.MehrereJahre; import haushalt.daten.zeitraum.Monat; import haushalt.daten.zeitraum.Quartal; import haushalt.daten.zeitraum.VollesJahrBisDatum; import haushalt.daten.zeitraum.VollesJahrBisHeute; import javax.swing.JComboBox; /** * Stellt die Auswahlbox für die verschiedenen Zeiträume bereit. * * @author Dr. Lars H. Hahn * @version 2.5/2007.05.31 */ /* * 2007.05.31 Internationalisierung * 2007.02.14 Erweiterung: Aktueller Monat und aktuelles Jahr * 2005.02.19 Erweiterung: Zeitraum für mehrere Jahre */ public class ZeitraumComboBox extends JComboBox { private static final long serialVersionUID = 1L; private static final TextResource RES = TextResource.get(); private static final String[] ITEMS = { RES.getString("month"), RES.getString("quarter"), RES.getString("halfyear"), RES.getString("year"), RES.getString("full_year_to_date"), RES.getString("full_year_since_today"), RES.getString("beginning_of_the_year_to_date"), RES.getString("beginning_of_the_year_since_today"), RES.getString("free_period"), RES.getString("several_years"), RES.getString("current_month"), RES.getString("current_quarter"), RES.getString("current_year")}; /** * Es wird der Zeitraum passend zur Klasse des Parameters vorausgewählt. * Wird <b>null<b> übergeben, wird der Zeitraum 'Monat' gewählt. * * @param zeitraum * Objekt vom Typ 'ZeitIntervall' zur Auswahl des passenden * Eintrags in der ComboBox */ public ZeitraumComboBox(final AbstractZeitraum zeitraum) { super(ITEMS); waehleZeitraum(zeitraum); } public void waehleZeitraum(final AbstractZeitraum zeitraum) { if (zeitraum == null) { setSelectedIndex(0); } else if (zeitraum.getClass() == Quartal.class) { setSelectedIndex(1); } else if (zeitraum.getClass() == Halbjahr.class) { setSelectedIndex(2); } else if (zeitraum.getClass() == Jahr.class) { setSelectedIndex(3); } else if (zeitraum.getClass() == VollesJahrBisDatum.class) { setSelectedIndex(4); } else if (zeitraum.getClass() == VollesJahrBisHeute.class) { setSelectedIndex(5); } else if (zeitraum.getClass() == JahresanfangBisDatum.class) { setSelectedIndex(6); } else if (zeitraum.getClass() == JahresanfangBisHeute.class) { setSelectedIndex(7); } else if (zeitraum.getClass() == FreierZeitraum.class) { setSelectedIndex(8); } else if (zeitraum.getClass() == MehrereJahre.class) { setSelectedIndex(9); } else if (zeitraum.getClass() == AktuellerMonat.class) { setSelectedIndex(10); } else if (zeitraum.getClass() == AktuellesQuartal.class) { setSelectedIndex(11); } else if (zeitraum.getClass() == AktuellesJahr.class) { setSelectedIndex(12); } else { setSelectedIndex(0); } } /** * Erzeugt aus dem ausgewählten Eintrag der ComboBox und dem übergebenen * Text einen neuen Zeitraum. * * @param text * Wert des Zeitraums * @return erzeugter Zeitraum */ public AbstractZeitraum getZeitraum(final String text) { switch (getSelectedIndex()) { case 0: return new Monat(text); case 1: return new Quartal(text); case 2: return new Halbjahr(text); case 3: return new Jahr(text); case 4: return new VollesJahrBisDatum(text); case 5: return new VollesJahrBisHeute(text); case 6: return new JahresanfangBisDatum(text); case 7: return new JahresanfangBisHeute(text); case 8: return new FreierZeitraum(text); case 9: return new MehrereJahre(text); case 10: return new AktuellerMonat(text); case 11: return new AktuellesQuartal(text); case 12: return new AktuellesJahr(text); default: break; } return null; } }