From chatellier@users.labs.libre-entreprise.org Mon Jun 15 00:26:12 2026 From: chatellier@users.labs.libre-entreprise.org To: isis-fish-commits@list.isis-fish.org Subject: [Isis-fish-commits] r2365 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator: . rule Date: Wed, 10 Jun 2009 17:24:16 +0200 Message-ID: <20090610152416.CB0FB461BF7@labs.libre-entreprise.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6259274759145695861==" --===============6259274759145695861== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Author: chatellier Date: 2009-06-10 15:24:16 +0000 (Wed, 10 Jun 2009) New Revision: 2365 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleCo= mboBoxModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleLi= stCellRenderer.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.ja= xx Log: Refactor rules combo and list models Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/Para= msUI.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.j= axx 2009-06-10 15:23:24 UTC (rev 2364) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.j= axx 2009-06-10 15:24:16 UTC (rev 2365) @@ -1,7 +1,6 @@ -=20 + *##%*/ +--> @@ -30,24 +29,15 @@ import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.Population; -import javax.swing.table.DefaultTableModel; import java.text.ParseException; -import java.awt.event.ItemEvent; -import javax.swing.table.TableModel; -import fr.ifremer.isisfish.ui.widget.editor.GenericCell; -import fr.ifremer.isisfish.ui.widget.editor.ParameterColumnEditor; -import fr.ifremer.isisfish.ui.widget.editor.ParameterTableCellEditor; -import javax.swing.text.JTextComponent; -import org.dom4j.DocumentHelper; -import org.dom4j.Element; import fr.ifremer.isisfish.simulator.launcher.SimulationService; import fr.ifremer.isisfish.simulator.launcher.SimulationJob; import fr.ifremer.isisfish.ui.sensitivity.SensitivityUI; import fr.ifremer.isisfish.entities.FisheryRegionImpl; import fr.ifremer.isisfish.datastore.StorageException; -import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipTableColumnRender= er; -import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipComboBoxRenderer; import fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener; +import fr.ifremer.isisfish.ui.simulator.rule.RuleComboBoxModel; +import fr.ifremer.isisfish.ui.simulator.rule.RuleListCellRenderer; import fr.ifremer.isisfish.ui.simulator.rule.RuleListModel; import fr.ifremer.isisfish.ui.simulator.rule.RuleParametersTableModel; import fr.ifremer.isisfish.ui.simulator.rule.RuleParametersTableCellEditor; @@ -99,26 +89,28 @@ setListSimulParamsPopulationsItems(); setRulesListModel(); } -protected void regionChange(ItemEvent e) { - if (e.getStateChange() =3D=3D ItemEvent.SELECTED) { - // le premier item est " " pour ne pas avoir de selection par defaut - final String selected =3D fieldSimulParamsRegion.getSelectedItem().t= oString(); - if (log.isDebugEnabled()) { - log.debug(" selected " + selected); - } - if(selected !=3D null && !selected.trim().isEmpty()) { - getParentContainer(WelcomePanelUI.class).setInfoText(_("isisfish= .message.loading.region")); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - simulAction.regionChange(selected); - refresh(); - setFactorRegion(); - getParentContainer(WelcomePanelUI.class).setInfoText(_("= isisfish.message.region.loaded")); - } - }); - } + +/** + * Called on user region selection change. + */ +protected void regionChange() { + // le premier item est " " pour ne pas avoir de selection par defaut + final String selected =3D fieldSimulParamsRegion.getSelectedItem().toStr= ing(); + if (log.isDebugEnabled()) { + log.debug(" selected " + selected); } + if(selected !=3D null && !selected.trim().isEmpty()) { + getParentContainer(WelcomePanelUI.class).setInfoText(_("isisfish.mes= sage.loading.region")); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + simulAction.regionChange(selected); + refresh(); + setFactorRegion(); + getParentContainer(WelcomePanelUI.class).setInfoText(_("isis= fish.message.region.loaded")); + } + }); + } } protected void setPreScript() { if (!isSensitivity()){ @@ -140,7 +132,7 @@ } } protected void setFactor() { - if (isSensitivity()){ + if (isSensitivity()) { getParentContainer(SensitivityUI.class).getSensitivityTabUI().setFac= torModel(); } } @@ -160,9 +152,9 @@ protected void loadOldSimulation() { final String selected =3D fieldSimulParamsSelect.getSelectedItem().toStr= ing(); // le premier item est " " pour ne pas avoir de selection par defaut - if (selected !=3D null && !selected.equals(" ")){ + if (selected !=3D null && !selected.equals(" ")) { getParentContainer(WelcomePanelUI.class).setInfoText(_("isisfish.mes= sage.loading.old.simulation")); - SwingUtilities.invokeLater(new Runnable() { + SwingUtilities.invokeLater(new Runnable() { @Override public void run() { simulAction.loadOldSimulation(selected); @@ -180,14 +172,20 @@ }); } } -protected void simul() { +protected void launchSimulation() { if (!isSensitivity()) { simulAction.launchSimulation(fieldSimulParamsName.getText(), (Simula= torLauncher)comboSelLauncher.getSelectedItem()); } else{ simulAction.launchSimulationWhithSensibility(fieldSimulParamsName.ge= tText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); } - getParentContainer(WelcomeTabUI.class).selTab(5); + =20 + // dans le cas d'une fenetre independante, il n'y a pas de ParentContain= er + WelcomeTabUI parent =3D getParentContainer(WelcomeTabUI.class); + if (parent !=3D null) { + // 5 =3D queue simulation tab + parent.selTab(5); + } } protected void enablePreSimul() { simulAction.getSimulationParameter().setUsePreScript(fieldUseSimulPreScr= ipts.isSelected()); @@ -259,7 +257,7 @@ } } protected void populationSelected(){ - if (listSimulParamsPopulations.getSelectedIndex() !=3D -1){ + if (listSimulParamsPopulations.getSelectedIndex() !=3D -1) { simulAction.setPopulations(listSimulParamsPopulations.getSelectedVal= ues()); simulParamsNumbers.setMatrix(simulAction.getSimulationParameter().ge= tNumberOf((Population) listSimulParamsPopulations.getSelectedValue())); } @@ -271,12 +269,25 @@ simulAction.getSimulationParameter().setDescription(fieldSimulParamsDesc= .getText()); } =20 +/*protected ComboBoxModel getParamsMesuresSelectModel() { + java.util.List availableRules =3D simulAction.getAvailableRules(); + RuleComboBoxModel model =3D new RuleComboBoxModel(availableRules); + =20 + // TODO change place (but must be same rule list) + fieldSimulParamsMesuresSelect.setRenderer(model); + + return model; +}*/ + protected void setRulesListModel() { - RuleListModel model =3D new RuleListModel(simulAction.getRules()); - listSimulParamsMesuresList.setModel(model); - listSimulParamsMesuresList.setCellRenderer(model); + if (log.isDebugEnabled()) { + log.debug("Set simulation rules model"); + } + RuleListModel model =3D new RuleListModel(simulAction.getRules()); + listSimulParamsMesuresList.setModel(model); + listSimulParamsMesuresList.setCellRenderer(model); =20 - onRuleSelectionChange(); + onRuleSelectionChange(); } /** * Called when selection change on rule list. @@ -308,8 +319,8 @@ } } protected void addRules() { - String selectedRuleName =3D fieldSimulParamsMesuresSelect.getSelectedIte= m().toString(); - simulAction.addRules(selectedRuleName); + Rule selectedRule =3D (Rule)fieldSimulParamsMesuresSelect.getSelectedIte= m(); + simulAction.addNewRule(selectedRule); setRulesListModel(); } protected void removeRules() { @@ -345,7 +356,7 @@ protected ComboBoxModel getSimulParamsSelectModel(boolean force) { java.util.List items =3D simulAction.getFilteredOldSimulatorName= s(force); DefaultComboBoxModel result =3D new DefaultComboBoxModel(); - if (items !=3D null){ + if (items !=3D null) { for (String s : items){ result.addElement(s); } @@ -353,13 +364,6 @@ return result; } =20 -protected ComboBoxModel getParamsMesuresSelectModel() { - java.util.List rulesNames =3D simulAction.getAvailableRuleNames(= ); - DefaultComboBoxModel model =3D new DefaultComboBoxModel(rulesNames.toArr= ay()); - fieldSimulParamsMesuresSelect.setRenderer(new SimpleToolTipComboBoxRende= rer(ToolTipListModelFactory.createRuleDescriptionsModel(rulesNames))); - return model; -} - protected void resetFilter(){ simulAction.resetOldSimulatorNames(); } @@ -394,7 +398,7 @@ - + @@ -429,7 +433,7 @@ - +
@@ -515,13 +519,13 @@ - + - + @@ -606,7 +610,7 @@ - + Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/Ru= leComboBoxModel.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleC= omboBoxModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleC= omboBoxModel.java 2009-06-10 15:24:16 UTC (rev 2365) @@ -0,0 +1,123 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * 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, US= A. + *##%*/ + +package fr.ifremer.isisfish.ui.simulator.rule; + +import java.util.List; + +import javax.swing.AbstractListModel; +import javax.swing.ComboBoxModel; + +import fr.ifremer.isisfish.rule.Rule; + +/** + * Model pour la liste des regles des parametres d'une simulation. + * + * @author chatellier + * @version $Revision: 2350 $ + *=20 + * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $ + * By : $Author: chatellier $ + */ +public class RuleComboBoxModel extends AbstractListModel implements ComboBox= Model { + + /** serialVersionUID. */ + private static final long serialVersionUID =3D -4070846632975105788L; + =20 + protected List rules; + + protected Object selectedItem; + + /** + * Empty constructor. + */ + public RuleComboBoxModel() { + this(null); + } + =20 + /** + * Constructor with rule list. + *=20 + * @param rules rules + */ + public RuleComboBoxModel(List rules) { + super(); + setRules(rules); + } + + /** + * Get rules list. + *=20 + * @return the rules + */ + public List getRules() { + return rules; + } + + /** + * Set rules list. + *=20 + * @param rules the rules to set + */ + public void setRules(List rules) { + this.rules =3D rules; + =20 + // default first selected + if (!rules.isEmpty()) { + selectedItem =3D rules.get(0); + } + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return rules.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size =3D 0; + =20 + if (rules !=3D null) { + size =3D rules.size(); + } + + return size; + } + + /* + * @see javax.swing.ComboBoxModel#getSelectedItem() + */ + @Override + public Object getSelectedItem() { + return selectedItem; + } + + /* + * @see javax.swing.ComboBoxModel#setSelectedItem(java.lang.Object) + */ + @Override + public void setSelectedItem(Object anItem) { + this.selectedItem =3D anItem; + } +} Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/Ru= leListCellRenderer.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleL= istCellRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/rule/RuleL= istCellRenderer.java 2009-06-10 15:24:16 UTC (rev 2365) @@ -0,0 +1,76 @@ +/* *##% + * Copyright (C) 2009 Code Lutin + * + * 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, US= A. + *##%*/ + +package fr.ifremer.isisfish.ui.simulator.rule; + +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.ListCellRenderer; + +import fr.ifremer.isisfish.datastore.RuleStorage; +import fr.ifremer.isisfish.rule.Rule; + +/** + * Rendu des donn=C3=A9es d'une liste graphique de regles + * + * @author chatellier + * @version $Revision: 2350 $ + *=20 + * Last update : $Date: 2009-06-09 13:52:58 +0200 (mar. 09 juin 2009) $ + * By : $Author: chatellier $ + */ +public class RuleListCellRenderer extends JLabel implements ListCellRenderer= { + + /** serialVersionUID. */ + private static final long serialVersionUID =3D -948394724922547715L; + + /* + * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.= swing.JList, java.lang.Object, int, boolean, boolean) + */ + @Override + public Component getListCellRendererComponent(JList list, Object value, + int index, boolean isSelected, boolean cellHasFocus) { + + if (value !=3D null) { + Rule rule =3D (Rule)value; + String ruleName =3D RuleStorage.getName(rule); + setText(ruleName); + =20 + try { + setToolTipText(rule.getDescription()); + } catch (Exception e) { + // can't get exception + } + =20 + if(isSelected) { + setBackground(list.getSelectionBackground()); + setForeground(list.getSelectionForeground()); + setOpaque(true); // background won't work + } + else { + setBackground(list.getBackground()); + setForeground(list.getForeground()); + setOpaque(false); // background won't work + } + } + + return this; + } +} --===============6259274759145695861==--