Author: chatellier Date: 2009-04-14 14:50:03 +0000 (Tue, 14 Apr 2009) New Revision: 2107 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx Log: Fix season interval bar. Bug that happened in init. (very hard to find ;) ) Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-04-14 14:04:36 UTC (rev 2106) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoSpeciesUI.jaxx 2009-04-14 14:50:03 UTC (rev 2107) @@ -91,7 +91,11 @@ protected void metierSeasonChanged(){ setMetierSeasonSelected(fieldMetierSeasonInfo.getSelectedItem() != null); if (isMetierSeasonSelected()){ - setMetierInfo((MetierSeasonInfoImpl)((GenericCell)fieldMetierSeasonInfo.getSelectedItem()).getValue()); + MetierSeasonInfoImpl msii = (MetierSeasonInfoImpl)((GenericCell)fieldMetierSeasonInfo.getSelectedItem()).getValue(); + if (log.isDebugEnabled()) { + log.debug("Metier season changed : " + msii); + } + setMetierInfo(msii); getVerifier().addCurrentEntity(getMetierInfo()); } editor.refresh(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2009-04-14 14:04:36 UTC (rev 2106) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierSeasonInfoZoneUI.jaxx 2009-04-14 14:50:03 UTC (rev 2107) @@ -54,39 +54,46 @@ protected Interval interval = null; protected boolean init = false; - ip.addPropertyChangeListener(new PropertyChangeListener() { - + /* + * Don't add both in same listener. + * When first is set, last value from getPopulationSeasonInfo() + * is erased by interval.getLast() default value. + */ + ip.addPropertyChangeListener("first", new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { if (getMetierSeasonInfo() != null){ getMetierSeasonInfo().setFirstMonth(new Month(interval.getFirst())); + } + } + }); + ip.addPropertyChangeListener("last", new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (getMetierSeasonInfo() != null){ getMetierSeasonInfo().setLastMonth(new Month(interval.getLast())); - if (!init){ - // getVerifier().topiaChanged(); - } } } }); save.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { getVerifier().topiaSave(); setCombo(); } }); + create.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { getContextValue(InputAction.class).createMetierSeasonInfo(getBean()); setCombo(); } + }); remove.addActionListener(new ActionListener() { - @Override public void actionPerformed(ActionEvent e) { getContextValue(InputAction.class).removeMetierSeasonInfo(getBean(), getMetierSeasonInfo()); @@ -120,18 +127,17 @@ ip.setModel(interval); } } - protected void setSeason(){ - if (getMetierSeasonInfo() != null){ - + protected void setSeason() { + if (getMetierSeasonInfo() != null) { try { if (log.isDebugEnabled()) { - log.debug("************** Interval ************"); + log.debug("Refresh interval : "); } Month firstMonth = getMetierSeasonInfo().getFirstMonth(); if (firstMonth != null) { interval.setFirst(firstMonth.getMonthNumber()); if (log.isDebugEnabled()) { - log.debug(" first : " + interval.getFirst()); + log.debug(" first : " + interval.getFirst()); } } else { interval.setFirst(0); @@ -141,7 +147,7 @@ if (lastMonth != null) { interval.setLast(lastMonth.getMonthNumber()); if (log.isDebugEnabled()) { - log.debug(" last : " + interval.getLast()); + log.debug(" last : " + interval.getLast()); } } else { interval.setLast(3); @@ -153,14 +159,14 @@ } } } - protected void setMetierZone(){ + protected void setMetierZone() { if (getMetierSeasonInfo() != null){ ListSelectionListener[] listeners = metierZones.getListSelectionListeners(); - for (ListSelectionListener listener : listeners){ + for (ListSelectionListener listener : listeners) { metierZones.removeListSelectionListener(listener); } metierZones.fillList(getRegion().getZone(), getMetierSeasonInfo().getZone()); - for (ListSelectionListener listener : listeners){ + for (ListSelectionListener listener : listeners) { metierZones.addListSelectionListener(listener); } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-04-14 14:04:36 UTC (rev 2106) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-04-14 14:50:03 UTC (rev 2107) @@ -56,17 +56,24 @@ protected Interval interval = null; protected boolean init = false; -ip.addPropertyChangeListener(new PropertyChangeListener() { - +/* + * Don't add both in same listener. + * When first is set, last value from getPopulationSeasonInfo() + * is erased by interval.getLast() default value. + */ +ip.addPropertyChangeListener("first", new PropertyChangeListener() { @Override public void propertyChange(PropertyChangeEvent evt) { - if (getPopulationSeasonInfo() != null){ + if (getPopulationSeasonInfo() != null) { getPopulationSeasonInfo().setFirstMonth(new Month(interval.getFirst())); + } + } +}); +ip.addPropertyChangeListener("last", new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + if (getPopulationSeasonInfo() != null) { getPopulationSeasonInfo().setLastMonth(new Month(interval.getLast())); - - if (!init){ - // getVerifier().topiaChanged(); - } } } }); @@ -148,15 +155,20 @@ }; fieldPopulationSeasonReproductionDistribution.addMatrixListener(listener); } -protected void setInterval(){ - if(getPopulationSeasonInfo() != null){ +protected void setInterval() { + if(getPopulationSeasonInfo() != null) { try { - log.debug("************** Interval ************"); + if (log.isDebugEnabled()) { + log.debug("Updating interval : "); + } Month firstMonth = getPopulationSeasonInfo().getFirstMonth(); if (firstMonth != null) { interval.setFirst(firstMonth.getMonthNumber()); - log.debug(" first : " + interval.getFirst()); + + if (log.isDebugEnabled()) { + log.debug(" first : " + interval.getFirst()); + } } else { interval.setFirst(0); } @@ -164,7 +176,9 @@ Month lastMonth = getPopulationSeasonInfo().getLastMonth(); if (lastMonth != null) { interval.setLast(lastMonth.getMonthNumber()); - log.debug(" last : " + interval.getLast()); + if (log.isDebugEnabled()) { + log.debug(" last : " + interval.getLast()); + } } else { interval.setLast(3); } @@ -190,9 +204,13 @@ setPopulationSeasonInfo((PopulationSeasonInfoImpl)fieldPopulationSeasonInfoChooser.getSelectedItem()); getVerifier().addCurrentEntity(getPopulationSeasonInfo()); setPopSeasonInfoNotNull(getPopulationSeasonInfo() != null); - setInterval(); - setMatrix(); - init = false; + SwingUtilities.invokeLater(new Runnable() { + public void run() { + setInterval(); + setMatrix(); + init = false; + } + }); } protected void setMatrix(){ fieldPopulationSeasonReproductionDistribution.setMatrix(getPopulationSeasonInfo().getLengthChangeMatrix());