r2754 - trunk/lima-main/src/main/java/org/chorem/lima/ui
Author: glorieux Date: 2009-12-17 09:46:51 +0100 (Thu, 17 Dec 2009) New Revision: 2754 Modified: trunk/lima-main/src/main/java/org/chorem/lima/ui/AddPeriod.jaxx trunk/lima-main/src/main/java/org/chorem/lima/ui/ClosureViewImpl.java trunk/lima-main/src/main/java/org/chorem/lima/ui/TransactionViewImpl.java Log: Add an addperiod panel. Modified: trunk/lima-main/src/main/java/org/chorem/lima/ui/AddPeriod.jaxx =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/ui/AddPeriod.jaxx 2009-12-16 21:42:35 UTC (rev 2753) +++ trunk/lima-main/src/main/java/org/chorem/lima/ui/AddPeriod.jaxx 2009-12-17 08:46:51 UTC (rev 2754) @@ -1,8 +1,31 @@ -<JFrame locationRelativeTo="{null}" defaultCloseOperation="dispose_on_close"> +<JFrame width="300" height="150" locationRelativeTo="{null}" defaultCloseOperation="dispose_on_close"> + <style source="css/lima.css" /> <Table insets='5,5,5,5'> <row> <cell> + <JLabel text="lima.closure.period.begin"/> + </cell> + <cell> + <JPanel id="beginMonthPeriodPanel"/> + </cell> + <cell> + <JPanel id="beginYearPeriodPanel"/> + </cell> + </row> + <row> + <cell> + <JLabel text="lima.to"/> + </cell> + <cell> + <JPanel id="endMonthPeriodPanel"/> + </cell> + <cell> + <JPanel id="endYearPeriodPanel"/> + </cell> + </row> + <row> + <cell> <JButton id="okButton" text="lima.ok"/> </cell> <cell> Modified: trunk/lima-main/src/main/java/org/chorem/lima/ui/ClosureViewImpl.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/ui/ClosureViewImpl.java 2009-12-16 21:42:35 UTC (rev 2753) +++ trunk/lima-main/src/main/java/org/chorem/lima/ui/ClosureViewImpl.java 2009-12-17 08:46:51 UTC (rev 2754) @@ -22,26 +22,23 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.lima.LimaContext; +import org.chorem.lima.combobox.model.PeriodComboBoxModel; +import org.chorem.lima.combobox.renderer.PeriodComboBoxRenderer; import static org.nuiton.i18n.I18n._; -import org.chorem.lima.combobox.renderer.PeriodClosureComboBoxRenderer; import org.chorem.lima.dto.PeriodDTO; import org.chorem.lima.dto.StatusDTO; import org.chorem.lima.dto.TransactionDTO; import org.chorem.lima.dto.util.TriPeriodAsc; import org.chorem.lima.dto.util.TriPeriodDesc; import org.chorem.lima.table.model.ClosureTableModel; -import org.chorem.lima.util.Util; import org.jdesktop.swingx.JXTable; import javax.swing.*; import java.awt.event.*; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.LinkedList; -import java.util.Vector; +import java.util.*; import org.jdesktop.swingx.decorator.*; +import org.nuiton.util.PeriodDates; /** @@ -52,7 +49,7 @@ public class ClosureViewImpl extends ClosureView { /** - * log * + * log */ private static final Log log = LogFactory.getLog(ClosureViewImpl.class); private final JXTable table; @@ -62,6 +59,10 @@ private static boolean blockPeriod; private JComboBox comboBoxBeginPeriod = new JComboBox(); private JComboBox comboBoxEndPeriod = new JComboBox(); + private JComboBox comboBeginYearPeriod = new JComboBox(); + private JComboBox comboBeginMonthPeriod = new JComboBox(); + private JComboBox comboEndYearPeriod = new JComboBox(); + private JComboBox comboEndMonthPeriod = new JComboBox(); /** @@ -122,10 +123,52 @@ * Initialisation du formulaire pour ajouter un exercice */ addPeriodForm = LimaContext.getContext().getMainUI().getAddPeriod(); + + Calendar cal = new GregorianCalendar(); + + //Init YEAR Periode Combobox + cal.add(Calendar.YEAR, 0); + comboBeginYearPeriod.addItem(cal.get(Calendar.YEAR)); + comboEndYearPeriod.addItem(cal.get(Calendar.YEAR)); + for(int i = 0; i < 5; i++){ + cal.add(Calendar.YEAR, 1); + comboBeginYearPeriod.addItem(cal.get(Calendar.YEAR)); + comboEndYearPeriod.addItem(cal.get(Calendar.YEAR)); + } + + //Add BeginYear ComboBox to addPeriodForm + addPeriodForm.getBeginYearPeriodPanel().add(comboBeginYearPeriod); + addPeriodForm.getBeginYearPeriodPanel().validate(); + + //Add EndYear ComboBox to addPeriodForm + addPeriodForm.getEndYearPeriodPanel().add(comboEndYearPeriod); + addPeriodForm.getEndYearPeriodPanel().validate(); + + //Init MONTH Periode Combobox + cal.set(Calendar.MONTH, Calendar.JANUARY); + cal.add(Calendar.MONTH, 0); + comboBeginMonthPeriod.addItem(cal.getDisplayName(Calendar.MONTH, 2, java.util.Locale.getDefault())); + comboEndMonthPeriod.addItem(cal.getDisplayName(Calendar.MONTH, 2, java.util.Locale.getDefault())); + for(int j = 0; j < 11; j++){ + cal.add(Calendar.MONTH, 1); + comboBeginMonthPeriod.addItem(cal.getDisplayName(Calendar.MONTH, 2, java.util.Locale.getDefault())); + comboEndMonthPeriod.addItem(cal.getDisplayName(Calendar.MONTH, 2, java.util.Locale.getDefault())); + } + + //Add BeginMonth ComboBox to addPeriodForm + addPeriodForm.getBeginMonthPeriodPanel().add(comboBeginMonthPeriod); + addPeriodForm.getBeginMonthPeriodPanel().validate(); + + //Add EndMonth ComboBox to addPeriodForm + addPeriodForm.getEndMonthPeriodPanel().add(comboEndMonthPeriod); + addPeriodForm.getEndMonthPeriodPanel().validate(); + + addPeriodForm.setVisible(true); addPeriodForm.getOkButton().addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { addPeriod(); + addPeriodForm.dispose(); } }); @@ -141,17 +184,14 @@ * Charge pour le JComboBox le choix des périodes (exercices) à afficher. */ // Récupère les périodes - List<PeriodDTO> periodes = LimaContext.getContext().getDataManager().getPeriodes(); - // Pour chaque période - Vector<PeriodDTO> v = new Vector<PeriodDTO>(); - for (PeriodDTO period : periodes) { - v.add(period); - } + ClosureTableModel closureModel = LimaContext.getContext().getDataManager().getClosureModel(); + PeriodComboBoxModel periodModel = new PeriodComboBoxModel(closureModel); // Création Combobox debut période - comboBoxPeriod.setModel(new DefaultComboBoxModel(v)); - comboBoxPeriod.setRenderer(PeriodClosureComboBoxRenderer.getInstance()); + comboBoxPeriod.setModel(periodModel); + comboBoxPeriod.setRenderer(PeriodComboBoxRenderer.getInstance()); // Ajout des combobox periodPanel.add(comboBoxPeriod); + periodPanel.validate(); } @@ -189,29 +229,18 @@ * Charge pour les JComboBox le choix des périodes mensuelles à bloquer. */ // Récupère les périodes - List<PeriodDTO> periodes = LimaContext.getContext().getDataManager().getPeriodes(); - Vector<PeriodDTO> v = new Vector<PeriodDTO>(); - - // Récupère la période annuelle sélectionnée dans la comboBox - PeriodDTO periodMaster = (PeriodDTO) comboBoxPeriod.getSelectedItem(); - - // Parcours de toutes les périodes pour trouver la période master - for (PeriodDTO period : periodes) { - if (period.equals(periodMaster)) { - v.addAll(period.getChildren()); - } - } - + ClosureTableModel closureModel = LimaContext.getContext().getDataManager().getClosureModel(); + PeriodComboBoxModel periodModel = new PeriodComboBoxModel(closureModel); // Création Combobox debut période - comboBoxBeginPeriod.setModel(new DefaultComboBoxModel(v)); - comboBoxBeginPeriod.setRenderer(PeriodClosureComboBoxRenderer.getInstance()); + comboBoxBeginPeriod.setModel(periodModel); + comboBoxBeginPeriod.setRenderer(PeriodComboBoxRenderer.getInstance()); // Création Combobox fin période - comboBoxEndPeriod.setModel(new DefaultComboBoxModel(v)); - comboBoxEndPeriod.setRenderer(PeriodClosureComboBoxRenderer.getInstance()); + comboBoxEndPeriod.setModel(periodModel); + comboBoxEndPeriod.setRenderer(PeriodComboBoxRenderer.getInstance()); // Ajout des combobox form.beginPeriod.add(comboBoxBeginPeriod); form.endPeriod.add(comboBoxEndPeriod); - + /** * Positionne, si les lignes sont sélectionnées, les comboBox sur * les bonnes périodes (période min et période max). @@ -237,18 +266,33 @@ } PeriodDTO periodCurrent = LimaContext.getContext().getDataManager().getCurrentPeriod(); List<StatusDTO> status = LimaContext.getContext().getDataManager().getStatus(); - Date begin = Util.InitDateFirstDayMonth(new Date(periodCurrent.getBegin().getYear() + 1, 0, 1)); - Date end = Util.InitDateEndDayMonth(new Date(periodCurrent.getBegin().getYear() + 1, 11, 1)); - PeriodDTO period = new PeriodDTO("", "", begin, end, null, null, status.get(3)); - // Création des enfants periodes - List<PeriodDTO> listPeriodChild = new LinkedList<PeriodDTO>(); - for (int i = 0; i < 12; i++) { - begin = Util.InitDateFirstDayMonth(new Date(periodCurrent.getBegin().getYear() + 1, i, 1)); - end = Util.InitDateEndDayMonth(new Date(periodCurrent.getBegin().getYear() + 1, i, 1)); - PeriodDTO periodChild = new PeriodDTO("", Integer.toString(begin.getYear()), begin, end, null, period, status.get(3)); - listPeriodChild.add(periodChild); + // TODO gere locale courante + Calendar cal_beg = new GregorianCalendar(); + if (periodCurrent != null) + { + cal_beg.setTime(periodCurrent.getBegin()); + cal_beg.add(Calendar.YEAR , comboBeginYearPeriod.getSelectedIndex()); + } + else { + cal_beg.add(Calendar.YEAR , comboBeginYearPeriod.getSelectedIndex()); } - period.setChildren(listPeriodChild); + cal_beg.set(Calendar.DAY_OF_MONTH, 1); + cal_beg.set(Calendar.MONTH, comboBeginMonthPeriod.getSelectedIndex()); + + Date begin = cal_beg.getTime(); + + Calendar cal_end = new GregorianCalendar(); + cal_end.add(Calendar.YEAR, comboEndYearPeriod.getSelectedIndex()); + cal_end.set(Calendar.MONTH , comboEndMonthPeriod.getSelectedIndex()); + int maximum = cal_end.getActualMaximum(Calendar.DAY_OF_MONTH); + cal_end.set(Calendar.DAY_OF_MONTH, maximum); + + Date end = cal_end.getTime(); + log.debug("Date de debut: "+begin+" Date de fin: "+end); + + String periodName = comboBeginYearPeriod.getSelectedIndex() != comboEndYearPeriod.getSelectedIndex() ? Integer.toString(cal_beg.get(Calendar.YEAR))+"-"+Integer.toString(cal_end.get(Calendar.YEAR)) : Integer.toString(cal_beg.get(Calendar.YEAR)); + PeriodDTO period = new PeriodDTO("", periodName, begin, end, null, null, status.get(3)); + ClosureTableModel closureModel = (ClosureTableModel) table.getModel(); closureModel.addPeriod(period, status); } Modified: trunk/lima-main/src/main/java/org/chorem/lima/ui/TransactionViewImpl.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/ui/TransactionViewImpl.java 2009-12-16 21:42:35 UTC (rev 2753) +++ trunk/lima-main/src/main/java/org/chorem/lima/ui/TransactionViewImpl.java 2009-12-17 08:46:51 UTC (rev 2754) @@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFactory; import org.chorem.lima.LimaContext; import org.chorem.lima.combobox.model.JournalComboBoxModel; +import org.chorem.lima.combobox.model.PeriodComboBoxModel; import org.chorem.lima.combobox.renderer.JournalComboBoxRenderer; import org.chorem.lima.combobox.renderer.PeriodComboBoxRenderer; import org.chorem.lima.dto.EntryDTO; @@ -194,7 +195,10 @@ } } } - getComboPeriod().setSelectedIndex(index); + if (index != 0){ + getComboPeriod().setSelectedIndex(index); + + } /** * Implémente le clic droit @@ -220,7 +224,6 @@ LimaContext.getContext().getDataManager().getJournalModel().addPropertyChangeListener(comboBoxModel); getComboJournal().setModel(comboBoxModel); getComboJournal().setRenderer(JournalComboBoxRenderer.getInstance()); - // AutoCompletion // AutoCompleteDecorator.decorate(comboJournal, JournalToStringConverter.getInstance()); journalPanel.add(getComboJournal()); @@ -232,22 +235,13 @@ */ private void initPeriodComboBox() { // Recherche la liste de toutes les périodes - List<PeriodDTO> periodes = LimaContext.getContext().getDataManager().getPeriodes(); - // Model pour les périodes - Vector<PeriodDTO> v = new Vector<PeriodDTO>(); - // On ajoute un élément null pour permettre d'afficher toutes les périodes - v.addElement(null); - // Pour chaque période (annuelle et NON mensuelle !) - for (PeriodDTO period : periodes) { - v.addElement(period); - v.addAll(period.getChildren()); - } - getComboPeriod().setModel(new DefaultComboBoxModel(v)); + ClosureTableModel closureModel = LimaContext.getContext().getDataManager().getClosureModel(); + PeriodComboBoxModel periodModel = new PeriodComboBoxModel(closureModel); + getComboPeriod().setModel(periodModel); getComboPeriod().setRenderer(PeriodComboBoxRenderer.getInstance()); // AutoCompletion // AutoCompleteDecorator.decorate(comboPeriod, PeriodToStringConverter.getInstance()); - periodPanel.add(getComboPeriod()); periodPanel.validate(); }
participants (1)
-
glorieux@users.chorem.org