Author: sletellier Date: 2009-03-17 13:33:34 +0000 (Tue, 17 Mar 2009) New Revision: 1981 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/RangeOfValuesUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx Log: Factor of range of value is done Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/GearTabUI.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -115,7 +115,7 @@ <JLabel text="isisfish.gear.rangeValues" enabled='{isActif()}'/> </cell> <cell fill='horizontal' weightx='1.0'> - <RangeOfValuesUI id="rangeOfValues" actif='{isActif()}' constructorParams='this'/> + <RangeOfValuesUI id="rangeOfValues" actif='{isActif()}' constructorParams='this' decorator='boxed' _bean='{GearImpl.class}' _method='"PossibleValue"'/> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/MetierTabUI.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -91,7 +91,7 @@ <JLabel text="isisfish.metier.rangeValues" enabled='{isActif()}'/> </cell> <cell fill='horizontal' weightx='1.0'> - <JTextField id="fieldMetierParam" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getGearParameterValue())}' onKeyReleased='getBean().setGearParameterValue(fieldMetierParam.getText())' enabled='{isActif()}' decorator='boxed' _bean='{MetierImpl.class}' _method='"GearParameterValue"'/> + <JTextField id="fieldMetierParam" text='{jaxx.runtime.SwingUtil.getStringValue(getBean().getGearParameterValue())}' onKeyReleased='getBean().setGearParameterValue(fieldMetierParam.getText())' enabled='{isActif()}' decorator='boxed' editable='{false}'/> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/RangeOfValuesUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/RangeOfValuesUI.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/RangeOfValuesUI.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -50,7 +50,7 @@ <JComboBox id="fieldGearParamType" onActionPerformed='paramChanged()' enabled='{isActif()}'/> </cell> <cell fill='horizontal' weightx='0.5'> - <JTextField id="fieldGearParamPossibleValue" text='{getBean().getPossibleValue() == null ? "" : getBean().getPossibleValue().getValues()}' onKeyReleased='paramChanged()' enabled='{isActif()}' decorator='boxed' _bean='{GearImpl.class}' _method='"PossibleValue"'/> + <JTextField id="fieldGearParamPossibleValue" text='{getBean().getPossibleValue() == null ? "" : getBean().getPossibleValue().getValues()}' onKeyReleased='paramChanged()' enabled='{isActif()}'/> </cell> </row> </Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -149,7 +149,7 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <org.codelutin.math.matrix.gui.MatrixPanelEditor id="fieldStrategyMonthInfoProportion" linearModelShowDefault='{true}' linearModel='{false}' matrix='{getStrategyMonthInfo().getProportionMetier() == null ? null : getStrategyMonthInfo().getProportionMetier().copy()}' enabled='{isActif()}' decorator='boxed' _bean='{StrategyMonthInfoImpl.class}' _method='"ProportionMetier"'/> + <org.codelutin.math.matrix.gui.MatrixPanelEditor id="fieldStrategyMonthInfoProportion" linearModelShowDefault='{true}' linearModel='{true}' matrix='{getStrategyMonthInfo().getProportionMetier() == null ? null : getStrategyMonthInfo().getProportionMetier().copy()}' enabled='{isActif()}' decorator='boxed' _bean='{StrategyMonthInfoImpl.class}' _method='"ProportionMetier"'/> </cell> </row> </Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/DefaultContinuousPanel.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -56,7 +56,7 @@ }); -public void init(JTextField cMax, JTextField cMin, int inc){ +public void init(JTextField cMin, JTextField cMax){ continueMax = cMax; continueMin = cMin; continueMax.setEnabled(isContinueSelected()); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-03-17 13:33:34 UTC (rev 1981) @@ -45,6 +45,11 @@ import org.codelutin.math.matrix.gui.MatrixPanelEditor; import org.codelutin.topia.persistence.TopiaEntity; import fr.ifremer.isisfish.ui.input.RangeOfValuesUI; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import javax.swing.JPanel; /** * @@ -113,12 +118,7 @@ ipResult.setModel(ip.getModel().clone()); result = ipResult; } else if (result instanceof RangeOfValuesUI){ - RangeOfValuesUI origine = (RangeOfValuesUI)c; - RangeOfValuesUI ui = new RangeOfValuesUI(new JAXXInitialContext().add(new InputAction())); - ui.setBean(e); - ui.setActif(true); - ui.refresh(); - result = ui; + result = new JTextField(""); } else if (result instanceof PopulationMigrationMigrationUI){ PopulationMigrationMigrationUI origine = (PopulationMigrationMigrationUI)c; PopulationMigrationMigrationUI ui = new PopulationMigrationMigrationUI(new JAXXInitialContext().add(new InputAction())); @@ -175,7 +175,7 @@ continuousPanel = new DefaultContinuousPanel(); result = continuousPanel; } - continuousPanel.init(getNewBoundEditor(c, e), getNewBoundEditor(c, e), 0); + continuousPanel.init(getNewBoundEditor(c, e), getNewBoundEditor(c, e)); } catch (Exception ex) { Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex); } @@ -216,7 +216,7 @@ continuousPanel = new DefaultContinuousPanel(); result = continuousPanel; } - continuousPanel.init(new JTextField(String.valueOf(domain.getMinBound())), new JTextField(String.valueOf(domain.getMaxBound())), domain.getCardinality()); + continuousPanel.init(new JTextField(String.valueOf(domain.getMinBound())), new JTextField(String.valueOf(domain.getMaxBound()))); } catch (Exception ex) { Logger.getLogger(EditorHelper.class.getName()).log(Level.SEVERE, null, ex); } @@ -233,6 +233,8 @@ } else if (result instanceof JTable){ // ((JTable) result).setModel(((JTable)c).getModel()); + } else if (result instanceof RangeOfValuesUI){ + result = new JTextField(value.toString()); } else if (result instanceof MatrixPanelEditor){ MatrixPanelEditor ui = (MatrixPanelEditor) c; MatrixPanelEditor matrix = new MatrixPanelEditor(); @@ -336,17 +338,37 @@ } else if (c instanceof IntervalPanel){ // ((IntervalPanel) result).setModel((BeanUtils.getProperty(e, fieldName))); - } else if (result instanceof PopulationMigrationMigrationUI){ + } else if (c instanceof RangeOfValuesUI){ + + } else if (c instanceof PopulationMigrationMigrationUI){ result = ((PopulationMigrationMigrationUI)c).getPopInfo().getMigrationMatrix(); - } else if (result instanceof PopulationMigrationEmigrationUI){ + } else if (c instanceof PopulationMigrationEmigrationUI){ result = ((PopulationMigrationEmigrationUI)c).getPopInfo().getEmigrationMatrix(); - } else if (result instanceof PopulationMigrationImmigrationUI){ + } else if (c instanceof PopulationMigrationImmigrationUI){ result = ((PopulationMigrationImmigrationUI)c).getPopInfo().getImmigrationMatrix(); } return result; } + public static boolean isRangeOfValue(JComponent c){ + if (c instanceof RangeOfValuesUI){ + return true; + } + return false; + } + public static boolean isContinue(JComponent c){ + if (c instanceof RangeOfValuesUI){ + RangeOfValuesUI ui = (RangeOfValuesUI)c; + if (ui.getFieldGearParamType().getSelectedItem().equals("Float")){ + String value = ui.getFieldGearParamPossibleValue().getText(); + if (value.matches("^\\ *[0-9]*\\ *\\-\\ *[0-9]*\\ *$")){ + return true; + } + } + } + return false; + } public static boolean canBeContinue(JComponent c, TopiaEntity e){ String fieldName = (String) c.getClientProperty("method"); if (c instanceof JTextComponent) { @@ -356,7 +378,12 @@ return true; } else if (c instanceof MatrixPanelEditor){ return true; - } + } else if (c instanceof RangeOfValuesUI){ + RangeOfValuesUI ui = (RangeOfValuesUI)c; + if (ui.getFieldGearParamType().getSelectedItem().equals("Float")){ + return true; + } + } return false; } public static boolean canBeContinue(JComponent c, Object o){ @@ -379,4 +406,57 @@ } return result; } + +// RangeOfValue + public static ContinuousPanelContainer getContinuousRangeOfValuePanel(JComponent cOrigine, TopiaEntity bean){ + DefaultContinuousPanel continuousPanel = new DefaultContinuousPanel(); + RangeOfValuesUI ui = (RangeOfValuesUI)cOrigine; + String value = ui.getFieldGearParamPossibleValue().getText(); + String min = "0"; + String max = "0"; + if (value.matches("^\\ *[0-9]*\\ *\\-\\ *[0-9]*\\ *$")){ + int first = 0; + if(value.startsWith("-")){ + first = 1; + } + first = value.indexOf("-"); + if (first != -1){ + min = value.substring(0, first); + max = value.substring(first+1); + } + } + continuousPanel.init(new JTextField(min), new JTextField(max)); + return continuousPanel; + } + public static List<String> getDiscretRangeOfValueValues(JComponent cOrigine, TopiaEntity bean){ + List<String> result = new ArrayList<String>(); + RangeOfValuesUI ui = (RangeOfValuesUI)cOrigine; + String value = ui.getFieldGearParamPossibleValue().getText(); + if (value.matches("^\\ *[0-9]*\\ *\\-\\ *[0-9]*\\ *$")){ + int first = 0; + if(value.startsWith("-")){ + first = 1; + } + first = value.indexOf("-"); + int min = 0; + int max = 0; + if (first != -1){ + min = Integer.valueOf(value.substring(0, first).trim()); + max = Integer.valueOf(value.substring(first+1).trim()); + } + for (int i = min;i <= max;i++){ + result.add(i + ""); + } + } else{ + if (value.indexOf(";") != -1){ + for (String s : value.split("\\;")){ + result.add(s); + } + } + else { + result.add(value); + } + } + return result; + } } Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-17 09:44:29 UTC (rev 1980) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/FactorWizard.jaxx 2009-03-17 13:33:34 UTC (rev 1981) @@ -36,8 +36,6 @@ <Boolean id='continueSelected' javaBean='false'/> - <Boolean id='tabVisible' javaBean='false'/> - <Boolean id='saveEnabled' javaBean='false'/> <Boolean id='existingValue' javaBean='false'/> @@ -92,10 +90,31 @@ factorName.setText(bean.toString() + "." + methodName); setContinuePossible(b); + boolean selected = EditorHelper.isContinue(cOrigine); + setContinueSelected(selected); + continueRadion.setSelected(selected); if (isContinuePossible()){ - continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean); + if (EditorHelper.isRangeOfValue(cOrigine)){ + continuousPanel = EditorHelper.getContinuousRangeOfValuePanel(cOrigine, bean); + } + else { + continuousPanel = EditorHelper.getContinuousPanel(cOrigine, bean); + } init(); } + if (!isContinueSelected()){ + int i = 0; + for (String s : EditorHelper.getDiscretRangeOfValueValues(cOrigine, bean)){ + JTextField text = new JTextField(s); + discretComponents.add(text); + tabPane.add(text, "Factor " + (i+1)); + i++; + } + } + if (continuousPanel != null){ + continuousPanel.setContinueSelected(selected); + } + setContinueSelected(EditorHelper.isContinue(cOrigine)); setSaveEnabled(!factorName.getText().equals("")); } @@ -136,14 +155,12 @@ } setContinuePossible(EditorHelper.canBeContinue(cOrigine, cache)); - setTabVisible(true); this.pack(); } setSaveEnabled(!factorName.getText().equals("")); } protected void init(){ continuousPanelContainer.add(continuousPanel, BorderLayout.CENTER); - setTabVisible(true); this.pack(); } protected JComponent getNewComponent(){ @@ -158,7 +175,6 @@ discretComponents.add(c); tabPane.add(c, "Factor " + (i+1)); } - setTabVisible(true); this.pack(); } protected FactorAction getFactorAction(){ @@ -194,7 +210,7 @@ </row> <row> <cell columns='4' fill='horizontal' weightx='1'> - <JRadioButton id='continueRadion' text='isisfish.factor.continue' buttonGroup='factorType' visible='{isContinuePossible()}' selected='false' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/> + <JRadioButton id='continueRadion' text='isisfish.factor.continue' buttonGroup='factorType' visible='{isContinuePossible()}' selected='{false}' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/> </cell> </row> <row> @@ -204,7 +220,7 @@ </row> <row> <cell columns='4' fill='horizontal' weightx='1'> - <JRadioButton id='discret' text='isisfish.factor.discret' selected='true' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/> + <JRadioButton id='discret' text='isisfish.factor.discret' selected='{true}' buttonGroup='factorType' onActionPerformed='setContinueSelected(continueRadion.isSelected())'/> </cell> </row> <row> @@ -219,8 +235,8 @@ </cell> </row> <row> - <cell columns='4' fill='both' weightx='1' weighty='0.5'> - <JTabbedPane id='tabPane' visible='{isTabVisible() && !isContinueSelected()}' enabled='{!isContinueSelected()}'/> + <cell columns='4' fill='both' weightx='1' weighty='0.3'> + <JTabbedPane id='tabPane' visible='{!isContinueSelected()}' enabled='{!isContinueSelected()}'/> </cell> </row> <row> @@ -229,7 +245,7 @@ </cell> </row> <row> - <cell columns='4' fill='both' weightx='1' weighty='0.5'> + <cell columns='4' fill='both' weightx='1' weighty='1'> <JScrollPane> <JTextArea id='comment'/> </JScrollPane>