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();
}