Author: sletellier Date: 2009-03-18 12:25:10 +0000 (Wed, 18 Mar 2009) New Revision: 1998 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java Log: SensitivityChooserUI done Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-03-18 11:11:46 UTC (rev 1997) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityChooserUI.jaxx 2009-03-18 12:25:10 UTC (rev 1998) @@ -43,6 +43,7 @@ import fr.ifremer.isisfish.simulator.sensitivity.Domain; import fr.ifremer.isisfish.simulator.sensitivity.Factor; import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain; +import fr.ifremer.isisfish.export.SensitivityExport; public ComboBoxModel getSensitivityModel(){ java.util.List<Item> items = new ArrayList<Item>(); @@ -64,45 +65,7 @@ } protected void setTableModel(){ Map<String, Class<?>> values = getSimulAction().getSensitivityParameterNames((String)fieldSensitivitySelect.getSelectedItem()); - int row = 0; - if (values != null){ - 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<GenericCell> valuesList = new ArrayList<GenericCell>(); - java.util.List<Object> propertyList = new ArrayList<Object>(); - for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) { - String name = it.next(); - Object properties = getContextValue(SimulAction.class).getSensitivityParameterValue(name); - GenericCell value = new GenericCell(name, values.get(name), null); - valuesList.add(value); - propertyList.add(properties); - row++; - } - model.addColumn("Name", valuesList.toArray()); - model.addColumn("Value", propertyList.toArray()); - simulSensitivityParam.setModel(model); - ParameterColumnEditor cellEditor = new ParameterColumnEditor(); - cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage()); - simulSensitivityParam.getColumnModel().getColumn(1).setCellEditor(cellEditor); - simulSensitivityParam.getModel().addTableModelListener(new TableModelListener() { - @Override - public void tableChanged(TableModelEvent e) { - int row = e.getFirstRow(); - TableModel model = (TableModel)e.getSource(); - GenericCell data = (GenericCell) model.getValueAt(row, 0); - getContextValue(SimulAction.class).setSensitivityParameterValue(data.getName(), model.getValueAt(row, 1)); - } - }); - - } + setParamsTable(values, simulSensitivityParam); } public void setFactorCardinalityModel(){ DefaultTableModel model = new DefaultTableModel(){ @@ -142,17 +105,87 @@ }); } protected DefaultComboBoxModel getExportModel(){ - DefaultComboBoxModel model = new DefaultComboBoxModel(); + java.util.List<String> exports = getAction().getSensibilityExportNames(); + DefaultComboBoxModel model = new DefaultComboBoxModel(exports.toArray()); return model; } protected void exportListSelected(){ + remove.setEnabled(exportList.getSelectedIndex() != -1); + setExportParams(); } +protected void setExportParams(){ + Map<String, Class<?>> values = getAction().getSensitivityExportParameterNames(getSelectedExport()); + setParamsTable(values, exportParams); +} +protected void setParamsTable(Map<String, Class<?>> values, JTable table){ + int row = 0; + if (values != null){ + 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<GenericCell> valuesList = new ArrayList<GenericCell>(); + java.util.List<Object> propertyList = new ArrayList<Object>(); + for (Iterator<String> it = values.keySet().iterator(); it.hasNext();) { + String name = it.next(); + Object properties = getContextValue(SimulAction.class).getSensitivityParameterValue(name); + GenericCell value = new GenericCell(name, values.get(name), null); + valuesList.add(value); + propertyList.add(properties); + row++; + } + model.addColumn("Name", valuesList.toArray()); + model.addColumn("Value", propertyList.toArray()); + table.setModel(model); + ParameterColumnEditor cellEditor = new ParameterColumnEditor(); + cellEditor.setRegion(getContextValue(SimulAction.class).getRegionStorage()); + table.getColumnModel().getColumn(1).setCellEditor(cellEditor); + table.getModel().addTableModelListener(new TableModelListener() { + @Override + public void tableChanged(TableModelEvent e) { + int row = e.getFirstRow(); + TableModel model = (TableModel)e.getSource(); + GenericCell data = (GenericCell) model.getValueAt(row, 0); + getContextValue(SimulAction.class).setSensitivityParameterValue(data.getName(), model.getValueAt(row, 1)); + } + }); + + } +} +protected SensitivityExport getSelectedExport(){ + return (SensitivityExport)((GenericCell)exportList.getSelectedValue()).getValue(); +} protected void add(){ + getAction().addSensitivityExport((String)export.getSelectedItem()); + setExportListModel(); + clear.setEnabled(true); } protected void remove(){ + getAction().removeSensitivityExport(getSelectedExport()); + setExportListModel(); + remove.setEnabled(false); } protected void clear(){ + getAction().clearSensitivityExport(); + setExportListModel(); + clear.setEnabled(false); } +protected void setExportListModel(){ + DefaultListModel model = new DefaultListModel(); + for (SensitivityExport s : getAction().getSensibilityExports()){ + model.addElement(new GenericCell(s.getExportFilename(), s, s.getClass())); + } + exportList.setModel(model); +} +protected SimulAction getAction(){ + return getContextValue(SimulAction.class); +} ]]> </script> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-18 11:11:46 UTC (rev 1997) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulAction.java 2009-03-18 12:25:10 UTC (rev 1998) @@ -61,6 +61,8 @@ import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.Species; import fr.ifremer.isisfish.entities.Strategy; +import fr.ifremer.isisfish.export.Export; +import fr.ifremer.isisfish.export.SensitivityExport; import fr.ifremer.isisfish.logging.SimulationLoggerUtil; import fr.ifremer.isisfish.rule.Rule; import fr.ifremer.isisfish.simulator.AnalysePlan; @@ -102,6 +104,7 @@ protected RuleStorage ruleStorage = null; protected List<String> analysePlan = null; protected Map<Rule, String> rules = new HashMap<Rule, String>(); + protected Map<String, SensitivityExport> sensibilityExports = new HashMap<String, SensitivityExport>(); private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm"); protected List<String> oldSimulNames = null; protected String simulName = null; @@ -512,7 +515,20 @@ */ public List<String> getExportNames() { - return ExportStorage.getExportNames(); + List<String> result = new ArrayList<String>(); + List<String> exportNames = ExportStorage.getExportNames(); + for (String export : exportNames){ + try { + ExportStorage storage = ExportStorage.getExport(export); + Export exInstance = storage.getNewExportInstance(); + if (!SensitivityExport.class.isInstance(exInstance)) { + result.add(export); + } + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + return result; } public void updateDirectory() { @@ -609,6 +625,59 @@ ************ */ + public List<String> getSensibilityExportNames() { + List<String> result = new ArrayList<String>(); + List<String> exportNames = ExportStorage.getExportNames(); + for (String export : exportNames){ + try { + ExportStorage storage = ExportStorage.getExport(export); + Export exInstance = storage.getNewExportInstance(); + if (SensitivityExport.class.isInstance(exInstance)) { + result.add(export); + } + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + return result; + } + public Collection<SensitivityExport> getSensibilityExports(){ + return sensibilityExports.values(); + } + public List<SensitivityExport> getSensitivityExportList(){ + List<SensitivityExport> result = new ArrayList<SensitivityExport>(); + for (Map.Entry<String, SensitivityExport> entry : sensibilityExports.entrySet()) { + result.add(entry.getValue()); + } + return result; + } + public void addSensitivityExport(String name){ + try { + ExportStorage storage = ExportStorage.getExport(name); + SensitivityExport exInstance = (SensitivityExport) storage.getNewExportInstance(); + sensibilityExports.put(name, exInstance); + param.setSensitivityExport(getSensitivityExportList()); + } catch (IsisFishException ex) { + Logger.getLogger(SimulAction.class.getName()).log(Level.SEVERE, null, ex); + } + } + public void removeSensitivityExport(SensitivityExport export){ + Map<String, SensitivityExport> se = new HashMap<String, SensitivityExport>(); + for (Map.Entry<String, SensitivityExport> entry : sensibilityExports.entrySet()) { + if (!entry.getValue().equals(export)){ + se.put(entry.getKey(), entry.getValue()); + } + } + sensibilityExports = se; + param.setSensitivityExport(getSensitivityExportList()); + } + public void clearSensitivityExport(){ + sensibilityExports.clear(); + param.setSensitivityExport(getSensitivityExportList()); + } + public Map<String, Class<?>> getSensitivityExportParameterNames(SensitivityExport export){ + return ExportStorage.getParameterNames(export); + } public List<String> getSensitivityName(){ return SensitivityStorage.getSensitivityNames(); }
participants (1)
-
sletellier@users.labs.libre-entreprise.org