Author: sletellier Date: 2009-03-17 15:54:53 +0000 (Tue, 17 Mar 2009) New Revision: 1986 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityEditorUI.jaxx Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java isis-fish/trunk/src/main/resources/sensitivity.properties Log: Factor of Sensitivity is done Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx 2009-03-17 15:41:44 UTC (rev 1985) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearUI.jaxx 2009-03-17 15:54:53 UTC (rev 1986) @@ -57,7 +57,7 @@ <JPanel id='body' layout='{new BorderLayout()}'> <JTabbedPane constraints='BorderLayout.CENTER' id="gearTab" name="Gear"> <tab title='{_("isisfish.gear.title")}'><GearTabUI id="gearTabUI" constructorParams='this'/></tab> - <tab title='{_("isisfish.selectivity.title")}'><SelectivityUI id="selectivityUI" constructorParams='this' decorator='boxed' _bean='{GearImpl.class}' _method='"PopulationSelectivity"'/></tab> + <tab title='{_("isisfish.selectivity.title")}'><SelectivityUI id="selectivityUI" constructorParams='this'/></tab> </JTabbedPane> </JPanel> </fr.ifremer.isisfish.ui.input.InputContentUI> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityEditorUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityEditorUI.jaxx (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityEditorUI.jaxx 2009-03-17 15:54:53 UTC (rev 1986) @@ -0,0 +1,215 @@ +<!-- +/* *##% + * Copyright (C) 2005 + * Ifremer, Code Lutin, Cedric Pineau, Benjamin Poussin + * + * This program 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 2 + * 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 Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + *##%*/ + +/* * + * IsisFish.java + * + * Created: 1 aout 2005 18:37:25 CEST + * + * @author Benjamin POUSSIN <poussin at codelutin.com> + * @version $Revision: 1312 $ + * + * Last update: $Date: 2008-08-28 10:21:07 +0200 (jeu, 28 aoû 2008) $ + * by : $Author: sletellier $ + */ + --> +<fr.ifremer.isisfish.ui.input.InputContentUI> + + <!-- bean property --> + <fr.ifremer.isisfish.entities.GearImpl id='bean' javaBean='null'/> + + <fr.ifremer.isisfish.entities.PopulationImpl id='population' javaBean='null'/> + + <Boolean id='selectivityPopulationSelected' javaBean='false'/> + + <script> + <![CDATA[ + +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.entities.PopulationImpl; +import fr.ifremer.isisfish.entities.Gear; +import fr.ifremer.isisfish.entities.GearImpl; +import fr.ifremer.isisfish.entities.Species; +import fr.ifremer.isisfish.entities.Formule; +import fr.ifremer.isisfish.ui.WelcomePanelUI; +import fr.ifremer.isisfish.ui.widget.editor.EquationTableEditor; +import javax.swing.table.DefaultTableModel; +import fr.ifremer.isisfish.entities.Selectivity; +import fr.ifremer.isisfish.entities.GearImpl; +import fr.ifremer.isisfish.entities.Equation; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.codelutin.topia.TopiaContext; +import org.codelutin.topia.persistence.TopiaEntity; +import fr.ifremer.isisfish.ui.widget.editor.GenericCell; +import fr.ifremer.isisfish.entities.Metier; +import fr.ifremer.isisfish.entities.MetierImpl; + +addPropertyChangeListener("bean", new PropertyChangeListener() { + public void propertyChange(PropertyChangeEvent evt) { + if (evt.getOldValue() != null || evt.getNewValue() == null) { + // remove previous binding on getBean() + //jaxx.runtime.SwingUtil.removeDataBinding(get$Table0(), "fieldCellName.text", "fieldCellLongitude.text", "fieldCellLatitude.text", "fieldCellLand.selected", "fieldCellComment.text"); + } + if (evt.getNewValue() != null) { + // add binding on getBean() + //jaxx.runtime.SwingUtil.applyDataBinding(get$Table0(), "fieldCellName.text", "fieldCellLongitude.text", "fieldCellLatitude.text", "fieldCellLand.selected", "fieldCellComment.text"); + } + } +}); + +selectivityTable.addMouseListener(new MouseListener() { + + @Override + public void mouseClicked(MouseEvent e) { + } + + @Override + public void mousePressed(MouseEvent e) { + } + + @Override + public void mouseReleased(MouseEvent e) { + remove.setEnabled(selectivityTable.getSelectedRow() != -1); + } + + @Override + public void mouseEntered(MouseEvent e) { + } + + @Override + public void mouseExited(MouseEvent e) { + } +}); +public void refresh(){ + if (getBean() != null){ + setSelectivityTableModel(); + fieldSelectivityPopulation.setModel(getSelectivityPopulationModel()); + } + getVerifier().addCurrentPanel(selectivityEquation); + + remove.setEnabled(false); +} +protected void setSelectivityTableModel(){ + DefaultTableModel model = new DefaultTableModel(){ + @Override + public boolean isCellEditable(int row, int column) { + boolean result = false; + if (column > 0){ + result =true; + } + return result; + } + }; + Collection<Selectivity> selectivity = getBean().getPopulationSelectivity(); + java.util.List<Population> populations = new ArrayList<Population>(); + java.util.List<Equation> equations = new ArrayList<Equation>(); + if (selectivity != null){ + for (Selectivity s : selectivity){ + populations.add(s.getPopulation()); + equations.add(s.getEquation()); + } + } + model.addColumn("Population", populations.toArray()); + model.addColumn("Equation", equations.toArray()); + + selectivityTable.setModel(model); + EquationTableEditor cellEditor = new EquationTableEditor(); + selectivityTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); +} +protected void add(){ + getAction().addSelectivity((Population)getPopulation(), selectivityEquation.getEditor().getText(), getBean()); + setSelectivityTableModel(); +} +protected void remove(){ + getAction().removeSelectivity(getBean(), (Selectivity) getBean().getPopulationSelectivity((Population) selectivityTable.getValueAt(selectivityTable.getSelectedRow(), 0))); + setSelectivityTableModel(); +} +protected DefaultComboBoxModel getSelectivityPopulationModel(){ + java.util.List<Species> species = getRegion().getSpecies(); + DefaultComboBoxModel selectivityPopulationModel = new DefaultComboBoxModel(); + if (species != null){ + selectivityPopulationModel.addElement(new GenericCell(" ", null, null)); + for (Species s : species){ + if (s.getPopulation() != null){ + for (Population p : s.getPopulation()){ + selectivityPopulationModel.addElement(new GenericCell(p.getName(), p, Population.class)); + } + } + } + } + return selectivityPopulationModel; +} +protected void selectivityChanged(){ + setSelectivityPopulationSelected(fieldSelectivityPopulation.getSelectedItem() != null); + setPopulation((PopulationImpl) ((GenericCell) fieldSelectivityPopulation.getSelectedItem()).getValue()); + add.setEnabled(isSelectivityPopulationSelected()); +} + ]]> + </script> + <Table id='body'> + <row> + <cell fill='both' weightx='1.0' weighty='1.0'> + <Table> + <row> + <cell fill='horizontal' anchor='east'> + <JLabel text="isisfish.selectivity.selectPopulation" enabled='{isActif()}'/> + </cell> + <cell fill='horizontal' weightx='1.0'> + <JComboBox id="fieldSelectivityPopulation" onActionPerformed='selectivityChanged()' enabled='{isActif()}'/> + </cell> + </row> + <row> + <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> + <InputOneEquationUI id='selectivityEquation' constructorParams='this' + lblText='{_("isisfish.selectivity.equation")}' + bean='{getBean()}' nameEquation='Selectivity' actif='{isActif()}' + clazz='{fr.ifremer.isisfish.equation.SelectivityEquation.class}' + decorator='boxed' _bean='{GearImpl.class}' _method='""'/> + </cell> + </row> + </Table> + </cell> + </row> + <row> + <cell fill='both' weightx='1.0' weighty='1.0'> + <Table> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JButton id="add" text="isisfish.common.add" onActionPerformed='add()' enabled='{isActif()}'/> + </cell> + </row> + <row> + <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> + <JScrollPane> + <JTable id="selectivityTable" rowHeight='24' enabled='{isActif()}'/> + </JScrollPane> + </cell> + </row> + <row> + <cell columns='2' fill='horizontal' weightx='1.0'> + <JButton id="remove" text="isisfish.common.remove" onActionPerformed='remove()' enabled='{isActif()}'/> + </cell> + </row> + </Table> + </cell> + </row> + </Table> +</fr.ifremer.isisfish.ui.input.InputContentUI> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2009-03-17 15:41:44 UTC (rev 1985) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/SelectivityUI.jaxx 2009-03-17 15:54:53 UTC (rev 1986) @@ -35,28 +35,19 @@ <!-- bean property --> <fr.ifremer.isisfish.entities.GearImpl id='bean' javaBean='null'/> - <Boolean id='selectivityPopulationSelected' javaBean='false'/> - <script> <![CDATA[ -import fr.ifremer.isisfish.entities.Population; -import fr.ifremer.isisfish.entities.Gear; -import fr.ifremer.isisfish.entities.Species; -import fr.ifremer.isisfish.entities.Formule; -import fr.ifremer.isisfish.ui.WelcomePanelUI; -import fr.ifremer.isisfish.ui.widget.editor.EquationTableEditor; -import javax.swing.table.DefaultTableModel; -import fr.ifremer.isisfish.entities.Selectivity; -import fr.ifremer.isisfish.entities.GearImpl; -import fr.ifremer.isisfish.entities.Equation; import java.util.logging.Level; import java.util.logging.Logger; -import org.codelutin.topia.TopiaContext; -import org.codelutin.topia.persistence.TopiaEntity; import fr.ifremer.isisfish.ui.widget.editor.GenericCell; import fr.ifremer.isisfish.entities.Metier; import fr.ifremer.isisfish.entities.MetierImpl; +import fr.ifremer.isisfish.entities.Population; +import fr.ifremer.isisfish.entities.PopulationImpl; +import fr.ifremer.isisfish.entities.Gear; +import fr.ifremer.isisfish.entities.GearImpl; +import fr.ifremer.isisfish.entities.Species; addPropertyChangeListener("bean", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -70,103 +61,15 @@ } } }); - -selectivityTable.addMouseListener(new MouseListener() { - - @Override - public void mouseClicked(MouseEvent e) { - } - - @Override - public void mousePressed(MouseEvent e) { - } - - @Override - public void mouseReleased(MouseEvent e) { - remove.setEnabled(selectivityTable.getSelectedRow() != -1); - } - - @Override - public void mouseEntered(MouseEvent e) { - } - - @Override - public void mouseExited(MouseEvent e) { - } -}); public void refresh(){ getVerifier().setSaveButton(save); getVerifier().setCancelButton(cancel); setBean(null); Gear gear = (Gear)getVerifier().getEntity(Gear.class); setBean((GearImpl) gear); - if (getBean() != null){ - fieldSelectivityPopulation.setModel(getSelectivityPopulationModel()); - setSelectivityTableModel(); - } - getVerifier().addCurrentPanel(selectivityEquation); - - remove.setEnabled(false); - setAddButton(); + getVerifier().addCurrentPanel(editor); } -protected void setSelectivityTableModel(){ - DefaultTableModel model = new DefaultTableModel(){ - @Override - public boolean isCellEditable(int row, int column) { - boolean result = false; - if (column > 0){ - result =true; - } - return result; - } - }; - Collection<Selectivity> selectivity = getBean().getPopulationSelectivity(); - java.util.List<Population> populations = new ArrayList<Population>(); - java.util.List<Equation> equations = new ArrayList<Equation>(); - if (selectivity != null){ - for (Selectivity s : selectivity){ - populations.add(s.getPopulation()); - equations.add(s.getEquation()); - } - } - model.addColumn("Population", populations.toArray()); - model.addColumn("Equation", equations.toArray()); - - selectivityTable.setModel(model); - EquationTableEditor cellEditor = new EquationTableEditor(); - selectivityTable.getColumnModel().getColumn(1).setCellEditor(cellEditor); -} -protected DefaultComboBoxModel getSelectivityPopulationModel(){ - java.util.List<Species> species = getRegion().getSpecies(); - DefaultComboBoxModel selectivityPopulationModel = new DefaultComboBoxModel(); - if (species != null){ - selectivityPopulationModel.addElement(new GenericCell(" ", null, null)); - for (Species s : species){ - if (s.getPopulation() != null){ - for (Population p : s.getPopulation()){ - selectivityPopulationModel.addElement(new GenericCell(p.getName(), p, Population.class)); - } - } - } - } - return selectivityPopulationModel; -} -protected void add(){ - getAction().addSelectivity((Population) ((GenericCell) fieldSelectivityPopulation.getSelectedItem()).getValue(), selectivityEquation.getEditor().getText(), getBean()); - setSelectivityTableModel(); -} -protected void remove(){ - getAction().removeSelectivity(getBean(), (Selectivity) getBean().getPopulationSelectivity((Population) selectivityTable.getValueAt(selectivityTable.getSelectedRow(), 0))); - setSelectivityTableModel(); -} -protected void selectivityChanged(){ - setSelectivityPopulationSelected(fieldSelectivityPopulation.getSelectedItem() != null); - setAddButton(); -} -protected void setAddButton(){ - add.setEnabled(getSelectivityPopulationSelected()); -} ]]> </script> <Table id='body'> @@ -174,46 +77,18 @@ <cell fill='both' weightx='1.0' weighty='1.0'> <Table> <row> - <cell fill='horizontal' anchor='east'> - <JLabel text="isisfish.selectivity.selectPopulation" enabled='{isActif()}'/> - </cell> - <cell fill='horizontal' weightx='1.0'> - <JComboBox id="fieldSelectivityPopulation" onActionPerformed='selectivityChanged()' enabled='{isActif()}'/> - </cell> - </row> - <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <InputOneEquationUI id='selectivityEquation' constructorParams='this' - lblText='{_("isisfish.selectivity.equation")}' - bean='{getBean()}' nameEquation='Selectivity' - clazz='{fr.ifremer.isisfish.equation.SelectivityEquation.class}' - decorator='boxed' _bean='{GearImpl.class}' _method='""'/> + <SelectivityEditorUI id='editor' constructorParams='this' bean='{getBean()}' + decorator='boxed' _bean='{GearImpl.class}' _method='"PopulationSelectivity"'/> </cell> </row> </Table> </cell> </row> <row> - <cell fill='both' weightx='1.0' weighty='1.0'> + <cell fill='horizontal' weightx='1.0'> <Table> <row> - <cell columns='2' fill='horizontal' weightx='1.0'> - <JButton id="add" text="isisfish.common.add" onActionPerformed='add()' enabled='{isActif()}'/> - </cell> - </row> - <row> - <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <JScrollPane> - <JTable id="selectivityTable" rowHeight='24' enabled='{isActif()}'/> - </JScrollPane> - </cell> - </row> - <row> - <cell columns='2' fill='horizontal' weightx='1.0'> - <JButton id="remove" text="isisfish.common.remove" onActionPerformed='remove()' enabled='{isActif()}'/> - </cell> - </row> - <row> <cell fill='horizontal' weightx='1.0'> <JButton id='save'/> </cell> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-17 15:41:44 UTC (rev 1985) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-17 15:54:53 UTC (rev 1986) @@ -19,6 +19,7 @@ package fr.ifremer.isisfish.ui.sensitivity; import fr.ifremer.isisfish.entities.Formule; +import fr.ifremer.isisfish.entities.Selectivity; import fr.ifremer.isisfish.entities.TargetSpecies; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; import fr.ifremer.isisfish.simulator.sensitivity.domain.MatrixContinuousDomain; @@ -49,6 +50,7 @@ import org.codelutin.math.matrix.gui.MatrixPanelEditor; import org.codelutin.topia.persistence.TopiaEntity; import fr.ifremer.isisfish.ui.input.RangeOfValuesUI; +import fr.ifremer.isisfish.ui.input.SelectivityEditorUI; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -124,6 +126,14 @@ result = ipResult; } else if (result instanceof RangeOfValuesUI){ result = new JTextField(""); + } else if (result instanceof SelectivityEditorUI){ + SelectivityEditorUI origine = (SelectivityEditorUI)c; + SelectivityEditorUI ui = new SelectivityEditorUI(new JAXXInitialContext().add(new InputAction()).add(origine.getRegion()).add(new InputSaveVerifier())); + ui.setBean(origine.getBean()); + ui.setActif(true); + ui.refresh(); + ui.setActif(true); + result = ui; } else if (result instanceof MetierSeasonInfoSpeciesEditorUI){ MetierSeasonInfoSpeciesEditorUI origine = (MetierSeasonInfoSpeciesEditorUI)c; MetierSeasonInfoSpeciesEditorUI ui = new MetierSeasonInfoSpeciesEditorUI(new JAXXInitialContext().add(new InputAction()).add(origine.getRegion()).add(new InputSaveVerifier())); @@ -300,6 +310,15 @@ ipResult.setLabelRenderer(Month.MONTH); ipResult.setModel(ip.getModel().clone()); result = ipResult; + } else if (result instanceof SelectivityEditorUI){ + SelectivityEditorUI origine = (SelectivityEditorUI)c; + SelectivityEditorUI ui = new SelectivityEditorUI(new JAXXInitialContext().add(new InputAction()).add(origine.getRegion()).add(new InputSaveVerifier())); + ui.setBean(origine.getBean()); + ui.getBean().setPopulationSelectivity((Collection<Selectivity>) value); + ui.setActif(true); + ui.refresh(); + ui.setActif(true); + result = ui; } else if (result instanceof MetierSeasonInfoSpeciesEditorUI){ MetierSeasonInfoSpeciesEditorUI origine = (MetierSeasonInfoSpeciesEditorUI)c; MetierSeasonInfoSpeciesEditorUI ui = new MetierSeasonInfoSpeciesEditorUI(new JAXXInitialContext().add(new InputAction()).add(origine.getRegion()).add(new InputSaveVerifier())); @@ -383,6 +402,9 @@ } else if (c instanceof IntervalPanel){ // ((IntervalPanel) result).setModel((BeanUtils.getProperty(e, fieldName))); + } else if (c instanceof SelectivityEditorUI){ + result = ((SelectivityEditorUI)c).getBean().getPopulationSelectivity(); + } else if (c instanceof MetierSeasonInfoSpeciesEditorUI){ result = ((MetierSeasonInfoSpeciesEditorUI)c).getMetierInfo().getSpeciesTargetSpecies(); Modified: isis-fish/trunk/src/main/resources/sensitivity.properties =================================================================== --- isis-fish/trunk/src/main/resources/sensitivity.properties 2009-03-17 15:41:44 UTC (rev 1985) +++ isis-fish/trunk/src/main/resources/sensitivity.properties 2009-03-17 15:54:53 UTC (rev 1986) @@ -16,14 +16,12 @@ Gear.StandardisationFactor Gear.ParameterName Gear.PossibleValue -Gear.PopulationSelectivity Metier.GearParameterValue Metier.Interval Metier.Zone MetierSeasonInfo.SpeciesTargetSpecies Population.GeographicId Population.PlusGroup -Population.Capturability Population.MappingZoneReproZoneRecru Population.Growth Population.GrowthReverse