Author: glorieux Date: 2009-12-17 09:48:06 +0100 (Thu, 17 Dec 2009) New Revision: 2756 Added: trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/PeriodComboBoxModel.java Modified: trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/JournalComboBoxModel.java Log: Modification of ComboBox models for addperiod. Modified: trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/JournalComboBoxModel.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/JournalComboBoxModel.java 2009-12-17 08:47:32 UTC (rev 2755) +++ trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/JournalComboBoxModel.java 2009-12-17 08:48:06 UTC (rev 2756) @@ -19,6 +19,9 @@ package org.chorem.lima.combobox.model; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + import javax.swing.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; @@ -29,7 +32,13 @@ */ public class JournalComboBoxModel extends DefaultComboBoxModel implements PropertyChangeListener { + /** + * log + */ + private static final Log log = LogFactory.getLog(JournalComboBoxModel.class); + + /** * @param v */ public JournalComboBoxModel(Vector<?> v) { @@ -56,13 +65,22 @@ public void propertyChange(PropertyChangeEvent evt) { if (evt.getPropertyName().equals("add")) { addElement(evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug("add : "); + } } if (evt.getPropertyName().equals("update")) { int index = getIndexOf(evt.getNewValue()); fireContentsChanged(evt.getNewValue(), index, index); + if (log.isDebugEnabled()) { + log.debug("update : "); + } } if (evt.getPropertyName().equals("remove")) { removeElement(evt.getOldValue()); + if (log.isDebugEnabled()) { + log.debug("remove : "); + } } } } Added: trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/PeriodComboBoxModel.java =================================================================== --- trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/PeriodComboBoxModel.java (rev 0) +++ trunk/lima-main/src/main/java/org/chorem/lima/combobox/model/PeriodComboBoxModel.java 2009-12-17 08:48:06 UTC (rev 2756) @@ -0,0 +1,101 @@ +/** + * *##% Lima Main + * Copyright (C) 2008 CodeLutin + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program 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 Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. ##%* + */ + +package org.chorem.lima.combobox.model; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.lima.dto.AccountDTO; +import org.chorem.lima.dto.PeriodDTO; +import org.chorem.lima.table.model.ClosureTableModel; + +import javax.swing.*; +import java.beans.PropertyChangeEvent; +import java.beans.PropertyChangeListener; +import java.util.Vector; + +/** + * @author ore + */ +public class PeriodComboBoxModel extends DefaultComboBoxModel implements PropertyChangeListener { + + /** + * log + */ + private static final Log log = LogFactory.getLog(PeriodComboBoxModel.class); + + /** + * @param v + */ + public PeriodComboBoxModel(Vector<?> v) { + super(v); + } + + /** + * @param items + */ + public PeriodComboBoxModel(Object[] items) { + super(items); + } + + public PeriodComboBoxModel(ClosureTableModel closureModel) { + addElement(null); + for(Object period : closureModel.getData()){ + addElement(period); + } + closureModel.addPropertyChangeListener(closureModel.ADD_PROPERTY, this); + } + + /** + * @param evt + */ + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getPropertyName().equals("add")) { + addElement(evt.getNewValue()); + if (log.isDebugEnabled()) { + log.debug("add : "+evt.getNewValue()); + } + } + if (evt.getPropertyName().equals("update")) { + int index = getIndexOf(evt.getNewValue()); + fireContentsChanged(evt.getNewValue(), index, index); + if (log.isDebugEnabled()) { + log.debug("update : "); + } + } + if (evt.getPropertyName().equals("remove")) { + removeChildren((PeriodDTO) evt.getOldValue()); + removeElement(evt.getOldValue()); + if (log.isDebugEnabled()) { + log.debug("remove : "); + } + } + } + + /** + * @param parent + */ + public void removeChildren(PeriodDTO parent) { + for (PeriodDTO acc : parent.getChildren()) { + removeElement(acc); + removeChildren(acc); + } + } +} \ No newline at end of file