Author: chatellier Date: 2009-11-06 16:59:01 +0000 (Fri, 06 Nov 2009) New Revision: 2744 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboRenderer.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx Log: Model, renderer, toussa... Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-11-05 15:22:34 UTC (rev 2743) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputOneEquationUI.jaxx 2009-11-06 16:59:01 UTC (rev 2744) @@ -34,6 +34,7 @@ <script><![CDATA[ import fr.ifremer.isisfish.entities.Formule; import fr.ifremer.isisfish.entities.Equation; +import fr.ifremer.isisfish.ui.input.formule.FormuleComboModel; import java.lang.reflect.Method; import org.nuiton.topia.TopiaContext; import jaxx.runtime.swing.Item; @@ -139,32 +140,20 @@ } -protected void setComboModel(){ +protected void setComboModel() { if (getBean() != null){ TopiaContext isisContext = getBean().getTopiaContext(); java.util.List<Formule> formules = null; - if (nameEquation != null){ + if (nameEquation != null) { formules = getAction().getFormules(isisContext, nameEquation); + FormuleComboModel formulesModel = new FormuleComboModel(formules); + formuleComboBox.setModel(formulesModel); + // fix default selection + formuleComboBox.setSelectedItem(selectedEquation); } - if (formules != null){ - java.util.List<Item> items = new ArrayList<Item>(); - items.add(new Item("null", " ", null, false)); - for (Formule f : formules) { - // chatellier 20090526 equals seams to not work - //boolean selected = f.equals(selectedEquation); - /*if (log.isDebugEnabled()) { - log.debug("Compare formula"); - log.debug(" first : name=" + f.getName() + ", category=" + f.getCategory()); - log.debug(" second : name=" + selectedEquation.getName() + ", category=" + selectedEquation.getCategory()); - }*/ - boolean selected = f.equals(selectedEquation); - items.add(new Item(f.getName(), f.getName(), f, selected)); - } - formuleComboBox.setItems(items); - } } } -protected void saveModel(){ +protected void saveModel() { getContextValue(InputAction.class).saveAsModel(nameEquation, "Java", editor.getText()); setComboModel(); setInfoText(_("isisfish.message.saveModel.finished")); @@ -178,8 +167,8 @@ getContextValue(InputAction.class).openEditor(nameEquation, "new", clazz, editor.getText(), editor); } } -protected void setEditorText(){ - if (getFormule() != null){ +protected void setEditorText() { + if (getFormule() != null) { editor.setText(getFormule().getContent()); } else { @@ -200,13 +189,14 @@ } ]]> </script> - <Table id='body'> + <Table> <row> <cell fill='horizontal' anchor='east'> <JLabel id='lbl' text='{getLblText()}' enabled='{isActif()}'/> </cell> <cell fill='horizontal' weightx='1.0'> - <JComboBox id="formuleComboBox" onActionPerformed='formuleChanged()' enabled='{isActif()}'/> + <JComboBox id="formuleComboBox" onActionPerformed='formuleChanged()' enabled='{isActif()}' + renderer="{new fr.ifremer.isisfish.ui.input.formule.FormuleComboRenderer()}" /> </cell> </row> <row> Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboModel.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboModel.java 2009-11-06 16:59:01 UTC (rev 2744) @@ -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, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.formule; + +import java.util.List; + +import javax.swing.DefaultComboBoxModel; + +import fr.ifremer.isisfish.entities.Formule; + +/** + * Model pour la liste des {@link Formule}. + * + * Pas de selection par defaut. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class FormuleComboModel extends DefaultComboBoxModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = 6171850179969290032L; + + /** Formules list */ + protected List<Formule> formules; + + /** + * Constructor with formules list. + * + * @param formules formules list + */ + public FormuleComboModel(List<Formule> formules) { + super(); + this.formules = formules; + } + + /* + * @see javax.swing.ListModel#getElementAt(int) + */ + @Override + public Object getElementAt(int index) { + return formules.get(index); + } + + /* + * @see javax.swing.ListModel#getSize() + */ + @Override + public int getSize() { + int size = 0; + + if (formules != null) { + size = formules.size(); + } + return size; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboModel.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboRenderer.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboRenderer.java 2009-11-06 16:59:01 UTC (rev 2744) @@ -0,0 +1,64 @@ +/* *##% + * 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, USA. + *##%*/ + +package fr.ifremer.isisfish.ui.input.formule; + +import java.awt.Component; + +import javax.swing.DefaultListCellRenderer; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.ListCellRenderer; + +import fr.ifremer.isisfish.entities.Formule; + +/** + * Renderer pour la combo des {@link Formule}. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class FormuleComboRenderer extends DefaultListCellRenderer implements + ListCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = -8277883340386163087L; + + /* + * @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) { + + // this must be used to have alterned highlight rows and default + // selection color + JLabel c = (JLabel) super.getListCellRendererComponent(list, value, + index, isSelected, cellHasFocus); + + // there is no default selection + if (value != null) { + Formule formule = (Formule) value; + c.setText(formule.getName()); + } + return c; + } +} Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/formule/FormuleComboRenderer.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL"