r2986 - in isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui: models/sensitivity models/sensitivityexport sensitivity sensitivity/model
Author: chatellier Date: 2010-02-04 16:11:09 +0000 (Thu, 04 Feb 2010) New Revision: 2986 Added: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorCardinalityTableModel.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeModel.java Removed: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx Log: Some modification on sensitivity UI due to refactoring on simulation UI and group screening Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivity/SensitivityCalculatorParametersTableModel.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2009 Code Lutin + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/models/sensitivityexport/SensitivityExportNameListModel.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -22,6 +22,8 @@ import javax.swing.DefaultListModel; +import fr.ifremer.isisfish.ui.models.common.StringListModel; + /** * Model pour la liste des noms d'exports. * @@ -30,6 +32,8 @@ * * Last update : $Date$ * By : $Author: chatellier $ + * + * @deprecated use {@link StringListModel} */ public class SensitivityExportNameListModel extends DefaultListModel { Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2009-2010 Ifremer, Code Lutin + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -315,7 +315,7 @@ * @return component copy */ public static ContinuousPanelContainerUI getContinuousPanelWithValue( - JComponent component, ContinuousDomain<?, ?> domain, Factor<?, ?> factor) { + JComponent component, ContinuousDomain domain, Factor factor) { ContinuousPanelContainerUI result = null; DefaultContinuousPanelUI continuousPanel = null; @@ -788,7 +788,7 @@ * @param context context * @return component */ - public static JComponent getEditorForFactor(Factor<?, ?> factor, TopiaContext context) { + public static JComponent getEditorForFactor(Factor factor, TopiaContext context) { JComponent result = null; // we can't do it only with path maybe ? Deleted: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -1,66 +0,0 @@ -/* *##% - * Copyright (C) 2009 Ifremer, 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.sensitivity; - -import static org.nuiton.i18n.I18n._; - -import java.awt.Component; -import java.util.List; - -import javax.swing.JLabel; -import javax.swing.JTree; -import javax.swing.tree.DefaultTreeCellRenderer; - -import fr.ifremer.isisfish.simulator.sensitivity.Factor; - -/** - * Factor tree cell renderer. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date$ - * By : $Author$ - */ -public class FactorTreeCellRenderer extends DefaultTreeCellRenderer { - - /** serialVersionUID. */ - private static final long serialVersionUID = 1686424876690392268L; - - /* - * @see javax.swing.tree.TreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean) - */ - @Override - public Component getTreeCellRendererComponent(JTree tree, Object value, - boolean selected, boolean expanded, boolean leaf, int row, - boolean hasFocus) { - - JLabel c = (JLabel)super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); - - if (value instanceof List<?>) { - c.setText(_("isisfish.sensitivity.factors") + " : "); - } - else if (value instanceof Factor<?, ?>) { - Factor<? ,?> factor = (Factor<?, ?>)value; - c.setText(factor.getName()); - } - - return c; - } -} Deleted: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -1,149 +0,0 @@ -/* *##% - * Copyright (C) 2009 Ifremer, 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.sensitivity; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import javax.swing.event.TreeModelListener; -import javax.swing.tree.TreeModel; -import javax.swing.tree.TreePath; - -import fr.ifremer.isisfish.simulator.sensitivity.Factor; - -/** - * Cette classe gere l'affichage d'une liste de facteurs dans l'arbre. - * - * @author chatellier - * @version $Revision$ - * - * Last update : $Date: 2008-06-13 11:05:57 +0200 (ven., 13 juin 2008) - * $ By : $Author$ - */ -public class FactorTreeModel implements TreeModel { - - /** serialVersionUID. */ - private static final long serialVersionUID = 593284613450915826L; - - /** Tree model root. */ - protected List<Factor<?,?>> factorsList; - - /** Tree model listeners. */ - protected Collection<TreeModelListener> modelListeners; - - /** - * Constructor. - * - * @param factorsList factors list - */ - public FactorTreeModel(List<Factor<?,?>> factorsList) { - this.factorsList = factorsList; - modelListeners = new ArrayList<TreeModelListener>(); - } - - /* - * @see javax.swing.tree.TreeModel#getChild(java.lang.Object, int) - */ - @Override - public Object getChild(Object parent, int index) { - - Object value = null; - - if (parent instanceof List) { - List<Factor<?,?>> factors = (List<Factor<?,?>>)parent; - value = factors.get(index); - } - - return value; - } - - /* - * @see javax.swing.tree.TreeModel#getChildCount(java.lang.Object) - */ - @Override - public int getChildCount(Object parent) { - - int childCount = 0; - - if (parent instanceof List) { - List<Factor<?,?>> factors = (List<Factor<?,?>>)parent; - childCount = factors.size(); - } - - return childCount; - } - - /* - * @see javax.swing.tree.TreeModel#getIndexOfChild(java.lang.Object, java.lang.Object) - */ - @Override - public int getIndexOfChild(Object parent, Object child) { - - int childIndex = -1; - - if (parent instanceof List) { - List<Factor<?,?>> factors = (List<Factor<?,?>>)parent; - childIndex = factors.indexOf(child); - } - - return childIndex; - } - - /* - * @see javax.swing.tree.DefaultTreeModel#isLeaf(java.lang.Object) - */ - @Override - public boolean isLeaf(Object node) { - return getChildCount(node) == 0; - } - - /* - * @see javax.swing.tree.TreeModel#addTreeModelListener(javax.swing.event.TreeModelListener) - */ - @Override - public void addTreeModelListener(TreeModelListener l) { - modelListeners.add(l); - } - - /* - * @see javax.swing.tree.TreeModel#getRoot() - */ - @Override - public Object getRoot() { - return factorsList; - } - - /* - * @see javax.swing.tree.TreeModel#removeTreeModelListener(javax.swing.event.TreeModelListener) - */ - @Override - public void removeTreeModelListener(TreeModelListener l) { - modelListeners.remove(l); - } - - /* - * @see javax.swing.tree.TreeModel#valueForPathChanged(javax.swing.tree.TreePath, java.lang.Object) - */ - @Override - public void valueForPathChanged(TreePath path, Object newValue) { - throw new RuntimeException("Not implemented"); - } - -} Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2010-02-04 16:11:09 UTC (rev 2986) @@ -1,6 +1,6 @@ <!-- /* *##% - * Copyright (C) 2009 Ifremer, Code Lutin + * Copyright (C) 2009 - 2010 Ifremer, Code Lutin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,6 @@ <Table> <script><![CDATA[ import javax.swing.table.DefaultTableModel; - import javax.swing.table.TableModel; import fr.ifremer.isisfish.ui.simulator.SimulAction; import fr.ifremer.isisfish.simulator.sensitivity.Domain; import fr.ifremer.isisfish.simulator.sensitivity.Factor; @@ -44,6 +43,8 @@ import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableCellRenderer; import fr.ifremer.isisfish.ui.models.sensitivity.SensitivityCalculatorParametersTableModel; + import fr.ifremer.isisfish.ui.sensitivity.model.FactorCardinalityTableModel; + protected SimulAction getSimulAction() { return getContextValue(SimulAction.class); } @@ -86,8 +87,16 @@ getSimulAction().setSensitivityCalculator(sensivitityCalculator); // enable/disable table (if sensivitityCalculator can manage it) - factorCardinalityScrollPane.setVisible(!sensivitityCalculator.canManageCardinality()); - validate(); + //factorCardinalityScrollPane.setVisible(!sensivitityCalculator.canManageCardinality()); + //validate(); + + CardLayout factorPanelLayout = (CardLayout)factorCardinalityPanel.getLayout(); + if (sensivitityCalculator.canManageCardinality()) { + factorPanelLayout.show(factorCardinalityPanel, "factorCardinalitySupported"); + } else { + factorPanelLayout.show(factorCardinalityPanel, "factorCardinalityNotSupported"); + } + // update model //setSensitivityCalculatorParamsModel(); @@ -99,41 +108,18 @@ } public void setFactorCardinalityTableModel() { - DefaultTableModel model = new DefaultTableModel() { - @Override - public boolean isCellEditable(int row, int column) { - boolean result = false; - if (column > 0) { - result = true; - } - return result; - } - }; - java.util.List<Factor<?, ?>> factors = getSimulAction().getFactors(); - - java.util.List<Factor<?, ?>> factorsContinue = new ArrayList<Factor<?, ?>>(); - java.util.List<String> factorsContinueCardinalities = new ArrayList<String>(); - for (Factor<?, ?> f : factors) { + java.util.List<Factor> factors = getSimulAction().getFactorGroup().getFactors(); + java.util.List<Factor> factorsContinue = new ArrayList<Factor>(); + /* get sublist with only Continous factor */ + for (Factor f : factors) { Domain domain = f.getDomain(); if (ContinuousDomain.class.isInstance(domain)) { ContinuousDomain continuousDomain = (ContinuousDomain)domain; factorsContinue.add(f); - factorsContinueCardinalities.add(continuousDomain.getCardinality() + ""); } } - model.addColumn(_("isisfish.sensitivity.factor"), factorsContinue.toArray()); - model.addColumn(_("isisfish.sensitivity.increment"), factorsContinueCardinalities.toArray()); - + FactorCardinalityTableModel model = new FactorCardinalityTableModel(factorsContinue); factorCardinality.setModel(model); - factorCardinality.getModel().addTableModelListener(new TableModelListener() { - @Override - public void tableChanged(TableModelEvent e) { - int row = e.getFirstRow(); - TableModel model = (TableModel)e.getSource(); - Factor f = (Factor) model.getValueAt(row, 0); - ((ContinuousDomain)f.getDomain()).setCardinality(Integer.parseInt((String)model.getValueAt(row, 1))); - } - }); } protected SensitivityExportNameListModel getAvailableExportListModel() { @@ -223,8 +209,7 @@ exportParamsTable.setModel(new DefaultTableModel()); } } - ]]> - </script> + ]]></script> <row> <cell fill="horizontal"> <JLabel text="isisfish.sensitivity.select"/> @@ -243,76 +228,21 @@ </row> <row> <cell columns="2" fill="both" weightx="1.0" weighty="1.0"> - <JScrollPane id="factorCardinalityScrollPane" visible="false"> - <JTable id="factorCardinality" rowHeight='24' /> - </JScrollPane> + <JPanel id="factorCardinalityPanel" layout="{new CardLayout()}"> + <JLabel text="isisfish.sensitivity.methodfactornotsupported" horizontalAlignment="center" + border="{BorderFactory.createEtchedBorder()}" font-style="italic" constraints='"factorCardinalityNotSupported"'/> + <JScrollPane id="factorCardinalityScrollPane" constraints='"factorCardinalitySupported"'> + <JTable id="factorCardinality" model="{new FactorCardinalityTableModel()}" rowHeight='24' /> + </JScrollPane> + </JPanel> </cell> </row> - <!-- <row> - <cell fill="both" columns='2' weightx="1.0" weighty="1.0"> - <Table> - <row> - <cell fill="both" weightx="1.0" weighty="1"> - <Table> - <row> - <cell fill="horizontal"> - <JLabel text="isisfish.sensitivity.export"/> - </cell> - </row> - <row> - <cell fill="horizontal"> - <JComboBox id="exportCombo" model='{getExportTableModel()}'/> - </cell> - </row> - <row> - <cell fill="both" weightx="1.0" weighty="1.0"> - <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'> - <JList id="exportList" selectionMode="0" onMouseClicked='exportListSelected()'/> - </JScrollPane> - </cell> - </row> - </Table> - </cell> - <cell fill="both" weighty="1.0"> - <Table> - <row> - <cell fill="horizontal"> - <JLabel text=" " minimumSize='{new Dimension(2,15)}' preferredSize='{new Dimension(2,15)}'/> - </cell> - </row> - <row> - <cell fill='horizontal'> - <JButton id="addExportButton" text="isisfish.common.add" onActionPerformed='addExport()'/> - </cell> - </row> - <row> - <cell fill='horizontal'> - <JButton id="removeExportButton" text="isisfish.common.remove" enabled="false" onActionPerformed='removeExport()'/> - </cell> - </row> - <row> - <cell fill='horizontal'> - <JButton id="clearExportsButton" text="isisfish.common.clear" enabled="false" onActionPerformed='clearExports()'/> - </cell> - </row> - <row> - <cell fill='both' weighty="1.0"> - <JPanel/> - </cell> - </row> - </Table> - </cell> - </row> - </Table> + <cell fill="both" columns='3' weightx="1.0"> + <JLabel text="isisfish.sensitivity.export"/> </cell> - </row> --> - <row> - <cell fill="both" columns='3' weightx="1.0"> - <JLabel text="isisfish.sensitivity.export"/> - </cell> - </row> - <row> + </row> + <row> <cell columns='2' fill="both" weightx="1.0" weighty="1.0"> <Table> <row> Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityTabUI.jaxx 2010-02-04 16:11:09 UTC (rev 2986) @@ -42,6 +42,9 @@ import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; import fr.ifremer.isisfish.ui.simulator.SimulAction; +import fr.ifremer.isisfish.simulator.sensitivity.group.FactorGroup; +import fr.ifremer.isisfish.ui.sensitivity.model.FactorTreeModel; +import fr.ifremer.isisfish.ui.sensitivity.model.FactorTreeCellRenderer; import jaxx.runtime.swing.navigation.NavigationTreeModel; import jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode; import jaxx.runtime.swing.navigation.NavigationUtil; @@ -93,7 +96,7 @@ Object selectedObject = factorsTree.getSelectionValue(); if (selectedObject != null) { if (selectedObject instanceof Factor) { - Factor<?, ?> selectedFactor = (Factor<?, ?>)selectedObject; + Factor selectedFactor = (Factor)selectedObject; FactorWizardUI wizard = new FactorWizardUI(this); JComponent component = getSimulAction().getFactorComponent(selectedFactor); if (component != null) { @@ -175,8 +178,8 @@ navigation.setModel(model); } public void setFactorModel() { - java.util.List<Factor<?, ?>> factors = getSimulAction().getFactors(); - FactorTreeModel model = new FactorTreeModel(factors); + FactorGroup factorGroup = getSimulAction().getFactorGroup(); + FactorTreeModel model = new FactorTreeModel(factorGroup); factorsTree.setModel(model); factorsTree.setRootVisible(true); getParentContainer(SensitivityUI.class).getSensitivityChooserUI().setFactorCardinalityTableModel(); @@ -187,7 +190,7 @@ if (selectedObject != null) { if (selectedObject instanceof Factor) { - Factor<?, ?> selectedFactor = (Factor<?, ?>)selectedObject; + Factor selectedFactor = (Factor)selectedObject; if (log.isDebugEnabled()) { log.debug("Deleting factor " + selectedFactor.getName()); } @@ -213,12 +216,24 @@ </cell> </row> </Table> - <JPanel id="factorPanel" name="factorPanel" layout='{new BorderLayout()}'> - <JScrollPane constraints='BorderLayout.CENTER'> - <JTree id="factorsTree" rootVisible="true" selectionRow='0' - model='{new DefaultTreeModel(null)}' cellRenderer='{new FactorTreeCellRenderer()}'/> - </JScrollPane> - </JPanel> + <Table> + <row> + <cell> + <JButton icon="table.png" /> + </cell> + <cell anchor='west' weightx='1.0'> + <JButton icon="table_multiple.png" /> + </cell> + </row> + <row> + <cell columns='2' fill="both" weightx='1.0' weighty='1.0'> + <JScrollPane> + <JTree id="factorsTree" rootVisible="true" selectionRow='0' + model='{new DefaultTreeModel(null)}' cellRenderer='{new FactorTreeCellRenderer()}'/> + </JScrollPane> + </cell> + </row> + </Table> </JSplitPane> </JPanel> <JPanel id='inputPanePrincipal' layout='{getCardlayoutPrincipal()}'> Modified: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2010-02-04 16:09:42 UTC (rev 2985) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2010-02-04 16:11:09 UTC (rev 2986) @@ -17,78 +17,55 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *##%*/ --> -<JPanel layout='{new BorderLayout()}'> +<fr.ifremer.isisfish.ui.SimulationUI> <script><![CDATA[ - import fr.ifremer.isisfish.ui.simulator.SimulAction; - import fr.ifremer.isisfish.ui.result.ResultAction; import jaxx.runtime.JAXXInitialContext; import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; - import fr.ifremer.isisfish.ui.simulator.ParamsUI; - import fr.ifremer.isisfish.ui.simulator.ResultChoiceUI; - import fr.ifremer.isisfish.ui.simulator.AdvancedParamsUI; - import fr.ifremer.isisfish.ui.simulator.ExportUI; - import fr.ifremer.isisfish.ui.sensitivity.SensitivityTabUI; - - public void selTab(int i) { - sensitivityTabs.setSelectedIndex(i); - } - public void refresh(){ + + @Override + public void refresh() { paramsUI.refresh(); } - - // TODO duplicated code (simulUI, Params UI, SensitivityUI) - protected void importSimulation() { - JFileChooser fc = new JFileChooser(); - int returnVal = fc.showOpenDialog(null); - if (returnVal == JFileChooser.APPROVE_OPTION) { - File file = fc.getSelectedFile(); - //This is where a real application would open the file. - getContextValue(SimulAction.class).importSimulation(file); - refresh(); - } + @Override + public void selectParametersTab() { + bodyTabbedPane.setSelectedIndex(0); } - // TODO duplicated code (simulUI, Params UI, SensitivityUI) - protected void saveSimulation() { - JFileChooser fc = new JFileChooser(); - int returnVal = fc.showSaveDialog(null); - if (returnVal == JFileChooser.APPROVE_OPTION) { - File file = fc.getSelectedFile(); - //This is where a real application would open the file. - getContextValue(SimulAction.class).saveSimulation(file); - } + @Override + public void setEnabledPrescriptTab(boolean selected) { + // no prescript in AS } + + @Override + public void setEnabledAnalysePlanTab(boolean selected) { + // no analyse plan in AS + } ]]> </script> - <JMenuBar id="simulMenuBar" constraints='BorderLayout.NORTH'> - <JMenu id="simulMenu" text="isisfish.simulation.menu.simulation"> - <JMenuItem id="siSave" text="isisfish.simulation.menu.save" onActionPerformed="saveSimulation()"/> - <JMenuItem id="siImport" text="isisfish.simulation.menu.import" onActionPerformed="importSimulation()"/> - </JMenu> - </JMenuBar> - <JTabbedPane id="sensitivityTabs" constraints="BorderLayout.CENTER"> + <JTabbedPane id="bodyTabbedPane"> <tab title='isisfish.params.title'> - <ParamsUI id='paramsUI' sensitivity='{true}' constructorParams='this'/> + <fr.ifremer.isisfish.ui.simulator.ParamsUI id='paramsUI' sensitivity='{true}' constructorParams='this'/> </tab> <tab title='isisfish.sensitivity.title'> - <SensitivityTabUI id="sensitivityTabUI" constructorParams='new JAXXInitialContext().add(new InputAction()).add(new SensitivityAction()).add(new InputSaveVerifier()).add(this)'/> + <fr.ifremer.isisfish.ui.sensitivity.SensitivityTabUI id="sensitivityTabUI" + constructorParams='new JAXXInitialContext().add(new InputAction()).add(new SensitivityAction()).add(new InputSaveVerifier()).add(this)'/> </tab> <tab title='isisfish.sensitivityChooser.title'> <SensitivityChooserUI id="sensitivityChooserUI" constructorParams='this'/> </tab> <tab id="exportUITab" title='isisfish.export.title'> - <ExportUI id="exportUI" constructorParams='this'/> + <fr.ifremer.isisfish.ui.simulator.ExportUI id="exportUI" constructorParams='this'/> </tab> <tab id="resultChoiceUITab" title='isisfish.resultChoice.title'> - <ResultChoiceUI id="resultChoiceUI" constructorParams='this'/> + <fr.ifremer.isisfish.ui.simulator.ResultChoiceUI id="resultChoiceUI" constructorParams='this'/> </tab> <tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'> - <AdvancedParamsUI id="advancedParamsUI" constructorParams='this'/> + <fr.ifremer.isisfish.ui.simulator.AdvancedParamsUI id="advancedParamsUI" constructorParams='this'/> </tab> <tab id="secondPassUITab" title='isisfish.sensitivity.secondpass.title'> <SensitivitySecondPassUI id="sensitivitySecondPassUI" constructorParams='this'/> </tab> </JTabbedPane> -</JPanel> +</fr.ifremer.isisfish.ui.SimulationUI> Added: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorCardinalityTableModel.java =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorCardinalityTableModel.java (rev 0) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorCardinalityTableModel.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -0,0 +1,186 @@ +/* *##% + * Copyright (C) 2009 - 2010 Ifremer, 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.sensitivity.model; + +import static org.nuiton.i18n.I18n._; + +import java.util.List; + +import javax.swing.table.AbstractTableModel; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import fr.ifremer.isisfish.simulator.sensitivity.Factor; +import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; + +/** + * Model de la table de definition des cadinalité de facteurs. + * + * Columns : + * <li>Factor name</li> + * <li>Cardinality</li> + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author: chatellier $ + */ +public class FactorCardinalityTableModel extends AbstractTableModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = 7739699364084480516L; + + /** Log. */ + private static Log log = LogFactory + .getLog(FactorCardinalityTableModel.class); + + /** Columns names. */ + public final static String[] COLUMN_NAMES = { + _("isisfish.sensitivity.factor"), + _("isisfish.sensitivity.increment") }; + + protected List<Factor> factors; + + /** + * Constructor with null data. + */ + public FactorCardinalityTableModel() { + this(null); + } + + /** + * Constructor with data. + * + * @param factors factors + */ + public FactorCardinalityTableModel(List<Factor> factors) { + super(); + this.factors = factors; + } + + /* + * @see javax.swing.table.TableModel#getColumnCount() + */ + @Override + public int getColumnCount() { + return COLUMN_NAMES.length; + } + + /* + * @see javax.swing.table.TableModel#getRowCount() + */ + @Override + public int getRowCount() { + int count = 0; + + if (factors != null) { + count = factors.size(); + } + return count; + } + + /* + * @see javax.swing.table.TableModel#getValueAt(int, int) + */ + @Override + public Object getValueAt(int rowIndex, int columnIndex) { + + Object result = null; + + Factor factor = factors.get(rowIndex); + switch (columnIndex) { + case 0: + result = factor.getName(); + break; + case 1: + ContinuousDomain domain = (ContinuousDomain) factor + .getDomain(); + result = domain.getCardinality(); + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnClass(int) + */ + @Override + public Class<?> getColumnClass(int columnIndex) { + + Class<?> result = null; + + switch (columnIndex) { + case 0: + result = String.class; + break; + case 1: + result = Integer.class; + break; + default: + throw new IndexOutOfBoundsException("No such column " + columnIndex); + } + + return result; + } + + /* + * @see javax.swing.table.TableModel#getColumnName(int) + */ + @Override + public String getColumnName(int columnIndex) { + return COLUMN_NAMES[columnIndex]; + } + + /* + * @see javax.swing.table.TableModel#isCellEditable(int, int) + */ + @Override + public boolean isCellEditable(int rowIndex, int columnIndex) { + return columnIndex > 0; + } + + /* + * @see javax.swing.table.TableModel#setValueAt(java.lang.Object, int, int) + */ + @Override + public void setValueAt(Object value, int rowIndex, int columnIndex) { + + if (log.isDebugEnabled()) { + log.debug("Cell edition (column " + columnIndex + ") = " + value); + } + + Factor factor = factors.get(rowIndex); + switch (columnIndex) { + case 1: + Integer iValue = (Integer) value; + ContinuousDomain domain = (ContinuousDomain) factor + .getDomain(); + domain.setCardinality(iValue); + break; + default: + throw new IndexOutOfBoundsException("Can't edit column " + + columnIndex); + } + } +} Property changes on: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorCardinalityTableModel.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Copied: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java (from rev 2946, isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeCellRenderer.java) =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java (rev 0) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeCellRenderer.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -0,0 +1,60 @@ +/* *##% + * Copyright (C) 2009 - 2010 Ifremer, 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.sensitivity.model; + +import java.awt.Component; + +import javax.swing.JLabel; +import javax.swing.JTree; +import javax.swing.tree.DefaultTreeCellRenderer; + +import fr.ifremer.isisfish.simulator.sensitivity.Factor; + +/** + * Factor tree cell renderer. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class FactorTreeCellRenderer extends DefaultTreeCellRenderer { + + /** serialVersionUID. */ + private static final long serialVersionUID = 1686424876690392268L; + + /* + * @see javax.swing.tree.TreeCellRenderer#getTreeCellRendererComponent(javax.swing.JTree, java.lang.Object, boolean, boolean, boolean, int, boolean) + */ + @Override + public Component getTreeCellRendererComponent(JTree tree, Object value, + boolean selected, boolean expanded, boolean leaf, int row, + boolean hasFocus) { + + JLabel c = (JLabel)super.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus); + + if (value instanceof Factor) { + Factor factor = (Factor)value; + c.setText(factor.getName()); + } + + return c; + } +} Copied: isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeModel.java (from rev 2946, isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorTreeModel.java) =================================================================== --- isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeModel.java (rev 0) +++ isis-fish/branches/3.3.1/src/main/java/fr/ifremer/isisfish/ui/sensitivity/model/FactorTreeModel.java 2010-02-04 16:11:09 UTC (rev 2986) @@ -0,0 +1,149 @@ +/* *##% + * Copyright (C) 2009 - 2010 Ifremer, 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.sensitivity.model; + +import java.util.ArrayList; +import java.util.Collection; + +import javax.swing.event.TreeModelListener; +import javax.swing.tree.TreeModel; +import javax.swing.tree.TreePath; + +import fr.ifremer.isisfish.simulator.sensitivity.Factor; +import fr.ifremer.isisfish.simulator.sensitivity.group.FactorGroup; + +/** + * Cette classe gere l'affichage d'une liste de facteurs dans l'arbre. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date: 2008-06-13 11:05:57 +0200 (ven., 13 juin 2008) + * $ By : $Author$ + */ +public class FactorTreeModel implements TreeModel { + + /** serialVersionUID. */ + private static final long serialVersionUID = 593284613450915826L; + + /** Tree model root. */ + protected Factor rootFactor; + + /** Tree model listeners. */ + protected Collection<TreeModelListener> modelListeners; + + /** + * Constructor. + * + * @param rootFactor root factor (typically, a {@link FactorGroup}) + */ + public FactorTreeModel(Factor rootFactor) { + this.rootFactor = rootFactor; + modelListeners = new ArrayList<TreeModelListener>(); + } + + /* + * @see javax.swing.tree.TreeModel#getChild(java.lang.Object, int) + */ + @Override + public Object getChild(Object parent, int index) { + + Object value = null; + + if (parent instanceof FactorGroup) { + FactorGroup factorGroup = (FactorGroup)parent; + value = factorGroup.get(index); + } + + return value; + } + + /* + * @see javax.swing.tree.TreeModel#getChildCount(java.lang.Object) + */ + @Override + public int getChildCount(Object parent) { + + int childCount = 0; + + if (parent instanceof FactorGroup) { + FactorGroup factorGroup = (FactorGroup)parent; + childCount = factorGroup.size(); + } + + return childCount; + } + + /* + * @see javax.swing.tree.TreeModel#getIndexOfChild(java.lang.Object, java.lang.Object) + */ + @Override + public int getIndexOfChild(Object parent, Object child) { + + int childIndex = -1; + + if (parent instanceof FactorGroup) { + FactorGroup factorGroup = (FactorGroup)parent; + childIndex = factorGroup.indexOf(child); + } + + return childIndex; + } + + /* + * @see javax.swing.tree.DefaultTreeModel#isLeaf(java.lang.Object) + */ + @Override + public boolean isLeaf(Object node) { + return getChildCount(node) == 0; + } + + /* + * @see javax.swing.tree.TreeModel#addTreeModelListener(javax.swing.event.TreeModelListener) + */ + @Override + public void addTreeModelListener(TreeModelListener l) { + modelListeners.add(l); + } + + /* + * @see javax.swing.tree.TreeModel#getRoot() + */ + @Override + public Object getRoot() { + return rootFactor; + } + + /* + * @see javax.swing.tree.TreeModel#removeTreeModelListener(javax.swing.event.TreeModelListener) + */ + @Override + public void removeTreeModelListener(TreeModelListener l) { + modelListeners.remove(l); + } + + /* + * @see javax.swing.tree.TreeModel#valueForPathChanged(javax.swing.tree.TreePath, java.lang.Object) + */ + @Override + public void valueForPathChanged(TreePath path, Object newValue) { + throw new RuntimeException("Not implemented"); + } + +}
participants (1)
-
chatellier@users.labs.libre-entreprise.org