r2436 - in isis-fish/trunk/src/main/java/fr/ifremer/isisfish: . datastore ui/models/result ui/models/simulation ui/simulator
Author: chatellier Date: 2009-06-25 15:46:01 +0000 (Thu, 25 Jun 2009) New Revision: 2436 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListRenderer.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulation/SimulationNamesComboModel.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx Log: Refactor exportsUI and resultsUI Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisConfig.java 2009-06-25 15:46:01 UTC (rev 2436) @@ -580,7 +580,11 @@ for (String exportName : exportNames) { sb.append(SEP).append(exportName); } - String value = sb.toString().substring(1); + String value = sb.toString(); + // remove first SEP + if (value.length() > 0) { + value = value.substring(1); + } setOption(Option.DEFAULT_EXPORT_NAMES.key, value); saveForUser(); } @@ -618,7 +622,11 @@ for (String resultName : resultNames) { sb.append(SEP).append(resultName); } - String value = sb.toString().substring(1); + String value = sb.toString(); + // remove first SEP + if (value.length() > 0) { + value = value.substring(1); + } setOption(Option.DEFAULT_RESULT_NAMES.key, value); saveForUser(); } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/datastore/JavaSourceStorage.java 2009-06-25 15:46:01 UTC (rev 2436) @@ -27,7 +27,6 @@ import fr.ifremer.isisfish.IsisFish; import fr.ifremer.isisfish.IsisFishException; -import fr.ifremer.isisfish.simulator.AnalysePlan; import fr.ifremer.isisfish.util.CompileHelper; import fr.ifremer.isisfish.util.Doc; import fr.ifremer.isisfish.util.DocHelper; Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListModel.java 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListModel.java 2009-06-25 15:46:01 UTC (rev 2436) @@ -24,8 +24,6 @@ /** * Model pour la liste des noms de resultats de simulation. - * - * TODO don't work for now, worg with field name, not field values !!! * * @author chatellier * @version $Revision$ Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListRenderer.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListRenderer.java 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/result/ResultListRenderer.java 2009-06-25 15:46:01 UTC (rev 2436) @@ -22,6 +22,8 @@ import java.awt.Component; import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; import javax.swing.DefaultListCellRenderer; import javax.swing.JLabel; @@ -48,7 +50,14 @@ /** serialVersionUID. */ private static final long serialVersionUID = -4070846632975105788L; - + + /** Cache map for doc corresponding to value. */ + protected Map<String, String> docForValue; + + public ResultListRenderer() { + docForValue = new HashMap<String, String>(); + } + /* * @see javax.swing.ListCellRenderer#getListCellRendererComponent(javax.swing.JList, java.lang.Object, int, boolean, boolean) */ @@ -61,22 +70,30 @@ JLabel c = (JLabel)super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); String resultName = (String)value; + c.setText(resultName); - // c'est tres couteux d'avoir une instance - try { - ScriptStorage storage = ScriptStorage.getScript("ResultName.java"); - Doc fieldDoc = storage.getFieldDoc(resultName); - - // do this better ? - Field field = storage.getCodeClass().getField(resultName); - String resultValue = (String)field.get(null); - c.setText(resultValue); - String documentation = TooltipHelper.docToString(fieldDoc); - c.setToolTipText(documentation); - } catch (Exception e) { - String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", "ResultName.java")); - c.setToolTipText(errorTooltip); + String tooltip = docForValue.get(resultName); + if (tooltip == null) { + // c'est tres couteux d'avoir la doc en fonction + // de la valeur d'un des attributs + try { + ScriptStorage storage = ScriptStorage.getScript("ResultName.java"); + Class<?> resultNameClass = storage.getCodeClass(); + Field[] fields = resultNameClass.getFields(); + for (Field f : fields) { + String fieldValue = (String) f.get(null); + if (fieldValue != null && fieldValue.equals(resultName)) { + Doc doc = f.getAnnotation(Doc.class); + tooltip = TooltipHelper.docToString(doc); + } + } + } catch (Exception e) { + String errorTooltip = TooltipHelper.getErrorTooltip(_("isisfish.error.compile.fileerror", "ResultName.java")); + c.setToolTipText(errorTooltip); + } } + + setToolTipText(tooltip); return c; } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulation/SimulationNamesComboModel.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulation/SimulationNamesComboModel.java 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/models/simulation/SimulationNamesComboModel.java 2009-06-25 15:46:01 UTC (rev 2436) @@ -72,12 +72,6 @@ */ public void setSimulationNames(List<String> simulationsNames) { this.simulationsNames = simulationsNames; - - // default first selected - /* disable default selection - if (!sensitivityCalculatorNames.isEmpty()) { - setSelectedItem(sensitivityCalculatorNames.get(0)); - }*/ } /* Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ExportUI.jaxx 2009-06-25 15:46:01 UTC (rev 2436) @@ -19,49 +19,56 @@ --> <Table> <script><![CDATA[ - import jaxx.runtime.swing.Item; import fr.ifremer.isisfish.ui.WelcomePanelUI; - import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipComboBoxRenderer; + import fr.ifremer.isisfish.ui.models.export.ExportNameListModel; refresh(); - public ExportUI (SimulAction action){ + /*public ExportUI (SimulAction action) { setContextValue(action); + }*/ + + protected SimulAction getSimulAction() { + return getContextValue(SimulAction.class); } - + public void refresh() { - fieldSimulExportFolder.setText(getContextValue(SimulAction.class).getSimulationParameter().getExportDirectory()); + // fill ExportDirectory + String exportDirectory = getSimulAction().getSimulationParameter().getExportDirectory(); + fieldSimulExportFolder.setText(exportDirectory); + // fill export setListSimulExportChooseModel(); } protected void setListSimulExportChooseModel() { - java.util.List<String> values = getContextValue(SimulAction.class).getExportNames(); - java.util.List<String> selectedValue = getContextValue(SimulAction.class).getSimulationParameter().getExportNames(); - java.util.List<Item> items = new ArrayList<Item>(); - for (String s : values) { - boolean selected = false; - for (String sv : selectedValue) { - selected = (sv.equals(s) || selected); - } - items.add(new Item(s, s, s, selected)); + java.util.List<String> availableExports = getSimulAction().getExportNames(); + java.util.List<String> userExports = getSimulAction().getSimulationParameter().getExportNames(); + // userExports = intersection(userExports,availableExports) + userExports.retainAll(availableExports); + + ExportNameListModel exportModel = new ExportNameListModel(availableExports); + listSimulExportChoose.setModel(exportModel); + + for (String userExport : userExports) { + int index = availableExports.indexOf(userExport); + listSimulExportChoose.addSelectionInterval(index, index); } - listSimulExportChoose.setItems(items); - listSimulExportChoose.setCellRenderer(new SimpleToolTipComboBoxRenderer(ToolTipListModelFactory.createExportClassDocsModel(values))); } - - protected void exportChanged(){ - if (listSimulExportChoose.getSelectedIndex() > -1) { - Object[] values = listSimulExportChoose.getSelectedValues(); - java.util.List<String> exportNames = new LinkedList<String>(); - for (Object o : values) { - exportNames.add((String) o); - } - getContextValue(SimulAction.class).getSimulationParameter().setExportNames(exportNames); + + protected void saveExport() { + // set export directory + String exportDirectory = fieldSimulExportFolder.getText(); + getSimulAction().getSimulationParameter().setExportDirectory(exportDirectory); + + // Set exports (this can save empty list (not a big deal)) + Object[] values = listSimulExportChoose.getSelectedValues(); + java.util.List<String> exportNames = new LinkedList<String>(); + for (Object o : values) { + exportNames.add((String) o); } - } - - protected void saveExport(){ - getContextValue(SimulAction.class).saveExport(); + getSimulAction().getSimulationParameter().setExportNames(exportNames); + + getSimulAction().saveExport(); setInfoText(_("isisfish.export.saved")); } @@ -74,7 +81,8 @@ <row> <cell columns="4" fill="both" weightx="1.0" weighty="1.0"> <JScrollPane> - <JList id="listSimulExportChoose" selectionMode="2" onValueChanged='exportChanged()'/> + <JList id="listSimulExportChoose" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}" + cellRenderer='{new fr.ifremer.isisfish.ui.models.export.ExportNameListRenderer()}' /> </JScrollPane> </cell> </row> @@ -83,7 +91,7 @@ <JLabel text="isisfish.export.directory"/> </cell> <cell fill="horizontal" weightx="1.0"> - <JTextField id="fieldSimulExportFolder" onFocusLost='refresh()'/> + <JTextField id="fieldSimulExportFolder" /> </cell> <cell> <JButton text="isisfish.common.ellipsis" onActionPerformed='getContextValue(SimulAction.class).updateDirectory()'/> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2009-06-25 14:01:50 UTC (rev 2435) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ResultChoiceUI.jaxx 2009-06-25 15:46:01 UTC (rev 2436) @@ -20,45 +20,50 @@ <JPanel layout='{new BorderLayout()}'> <script><![CDATA[ import fr.ifremer.isisfish.ui.WelcomePanelUI; - import jaxx.runtime.swing.Item; - import fr.ifremer.isisfish.ui.widget.renderer.SimpleToolTipComboBoxRenderer; + import fr.ifremer.isisfish.ui.models.result.ResultListModel; - setListSimulExportChooseModel(); - public ResultChoiceUI (SimulAction action){ - setContextValue(action); + refresh(); + + public void refresh() { + setListSimulResultChooseModel(); } - public void refresh(){ - setListSimulExportChooseModel(); + + protected SimulAction getSimulAction() { + return getContextValue(SimulAction.class); } - protected void setListSimulExportChooseModel(){ - java.util.List<String> values = getContextValue(SimulAction.class).getResultNames(); - java.util.List<String> selectedValue = getContextValue(SimulAction.class).getDefaultResultNames(); - java.util.List<Item> items = new ArrayList<Item>(); - for (String s : values){ - boolean selected = false; - for (String sv : selectedValue){ - selected = (sv.equals(s) || selected); - } - items.add(new Item(s, s, s, selected)); + + protected void setListSimulResultChooseModel(){ + + java.util.List<String> availableResults = getSimulAction().getResultNames(); + java.util.List<String> userResults = getSimulAction().getDefaultResultNames(); + // userResults = intersection(userResults,availableResult) + userResults.retainAll(availableResults); + + ResultListModel resultModel = new ResultListModel(availableResults); + listResultNames.setModel(resultModel); + + for (String userResult : userResults) { + int index = availableResults.indexOf(userResult); + listResultNames.addSelectionInterval(index, index); } - listResultNames.setItems(items); - listResultNames.setCellRenderer(new SimpleToolTipComboBoxRenderer(ToolTipListModelFactory.createResultFieldsModel(values))); } - protected void saveResultNames(){ - if (listResultNames.getSelectedIndex() != -1){ - getContextValue(SimulAction.class).saveResultNames(listResultNames.getSelectedValues()); - setInfoText(_("isisfish.resultChoice.saved")); - } + + protected void saveResultNames() { + getContextValue(SimulAction.class).saveResultNames(listResultNames.getSelectedValues()); + setInfoText(_("isisfish.resultChoice.saved")); } - protected void setInfoText(String txt){ + + protected void setInfoText(String txt) { + // TODO remove getParentContainer use WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(txt); } ]]> </script> - <JLabel text="isisfish.resultChoice.save" horizontalAlignment="0" constraints='BorderLayout.NORTH'/> + <JLabel text="isisfish.resultChoice.save" horizontalAlignment="center" constraints='BorderLayout.NORTH'/> <JScrollPane constraints='BorderLayout.CENTER'> - <JList id="listResultNames" selectionMode="2"/> + <JList id="listResultNames" selectionMode="{javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION}" + cellRenderer='{new fr.ifremer.isisfish.ui.models.result.ResultListRenderer()}' /> </JScrollPane> <JButton constraints='BorderLayout.SOUTH' text="isisfish.common.saveNextSimulation" onActionPerformed='saveResultNames()'/> </JPanel>
participants (1)
-
chatellierï¼ users.labs.libre-entreprise.org