Author: chatellier Date: 2009-11-04 18:14:13 +0000 (Wed, 04 Nov 2009) New Revision: 2738 Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesEditorUI.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/EditorHelper.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx Log: Replace JaxxMatrixEditor by MatrixPanelEditor and use proper jaxx change events. Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -18,12 +18,26 @@ *##%*/ --> <JPanel layout='{new BorderLayout()}'> - <script> - <![CDATA[ - public void setContent(Container c) { + <script><![CDATA[ + + protected WelcomeSaveVerifier getVerifier() { + return getContextValue(WelcomeSaveVerifier.class); + } + + public void setContent(Component c) { this.add(c, BorderLayout.CENTER); } + public void close(JFrame f) { + if (getVerifier().allIsSaved()) { + exit(f); + } + } + + protected void exit(JFrame f) { + f.dispose(); + } + /** * Change status message and stop progress bar if running. * @@ -42,20 +56,6 @@ public void setStatusMessage(String message, boolean running) { statusBar.setStatusMessage(message, running); } - - public void close(JFrame f) { - if (getVerifier().allIsSaved()) { - exit(f); - } - } - - protected void exit(JFrame f) { - f.dispose(); - } - - protected WelcomeSaveVerifier getVerifier() { - return getContextValue(WelcomeSaveVerifier.class); - } ]]> </script> <StatusBarUI id='statusBar' constraints="BorderLayout.SOUTH" /> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -25,34 +25,35 @@ import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; - // chatellier already done in SimulAction constructor - //simulUI.getContextValue(SimulAction.class).init(); - - //queueUI.setContextValue(simulUI.getContextValue(SimulAction.class)); - public void selTab(int i){ - simulTabs.setSelectedIndex(i); + /** Change tab selection. */ + public void setQueueTabSelection() { + simulTabs.setSelectedIndex(5); } - public void refresh() { + + /*public void refresh() { simulUI.refresh(); sensitivityUI.refresh(); - } + }*/ ]]> </script> <JTabbedPane id="simulTabs" tabPlacement='{JTabbedPane.LEFT}' constraints="BorderLayout.CENTER"> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/book.gif"))}'> - <fr.ifremer.isisfish.ui.input.InputUI id='inputUI' constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier()).add(this)'/> + <fr.ifremer.isisfish.ui.input.InputUI id='inputUI' + constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())' /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/simulation.gif"))}'> - <fr.ifremer.isisfish.ui.simulator.SimulUI id='simulUI' constructorParams='new JAXXInitialContext().add(new SimulAction()).add(this)'/> + <fr.ifremer.isisfish.ui.simulator.SimulUI id='simulUI' + constructorParams='new JAXXInitialContext().add(new SimulAction()).add(this)' /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/sensitivities.gif"))}'> - <fr.ifremer.isisfish.ui.sensitivity.SensitivityUI id="sensitivityUI" constructorParams='new JAXXInitialContext().add(new InputAction()).add(new InputSaveVerifier()).add(new SimulAction()).add(this)'/> + <fr.ifremer.isisfish.ui.sensitivity.SensitivityUI id="sensitivityUI" + constructorParams='new JAXXInitialContext().add(new InputAction()).add(new InputSaveVerifier()).add(new SimulAction()).add(this)' /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/calc.gif"))}'> - <fr.ifremer.isisfish.ui.result.ResultView/> + <fr.ifremer.isisfish.ui.result.ResultView /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/bookPage.gif"))}'> - <fr.ifremer.isisfish.ui.script.ScriptUI/> + <fr.ifremer.isisfish.ui.script.ScriptUI /> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/Queue.gif"))}'> <fr.ifremer.isisfish.ui.queue.QueueUI /> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -55,15 +55,19 @@ toolTipManager.setInitialDelay(0); toolTipManager.setDismissDelay(60000); - protected void openFrame(Container c, String title) { + protected void openFrame(Component c, String title) { JFrame f = new JFrame(); f.setLayout(new BorderLayout()); - WelcomePanelUI welcome = new WelcomePanelUI(new JAXXInitialContext().add(verifier).add(this)); + + JAXXInitialContext childContext = new JAXXInitialContext().add(verifier).add(this); + WelcomePanelUI welcome = new WelcomePanelUI(childContext); + welcome.setContent(c); f.add(welcome, BorderLayout.CENTER); f.setTitle(title); f.setSize(new Dimension(800, 600)); f.setDefaultCloseOperation(f.DO_NOTHING_ON_CLOSE); + allFrameOpened.put(f, welcome); f.addWindowListener(new WindowAdapter() { @Override @@ -72,6 +76,7 @@ allFrameOpened.get(f).close(f); } }); + org.nuiton.widget.SwingUtil.center(f); f.setVisible(true); } public void close() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationCapturabilityUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -23,20 +23,15 @@ <fr.ifremer.isisfish.entities.PopulationImpl id='bean' javaBean='null'/> <script><![CDATA[ - import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationImpl; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; -MatrixPanelListener listener = new MatrixPanelListener() { - @Override - public void matrixChanged(MatrixPanelEvent event) { - if (getBean() != null && fieldPopulationCapturability.getMatrix() != null) { - getBean().setCapturability(fieldPopulationCapturability.getMatrix().copy()); - } +protected void populationCapturabilityMatrixChanged(MatrixPanelEvent event) { + if (getBean() != null && fieldPopulationCapturability.getMatrix() != null) { + getBean().setCapturability(fieldPopulationCapturability.getMatrix().copy()); } -}; +} addPropertyChangeListener("bean", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -64,13 +59,13 @@ if (getBean() != null){ if (getBean().getCapturability() != null) { - fieldPopulationCapturability.removeMatrixPanelListener(listener); + //fieldPopulationCapturability.removeMatrixPanelListener(listener); fieldPopulationCapturability.setMatrix(getBean().getCapturability().copy()); } } // TODO add only once, not at all refresh - fieldPopulationCapturability.addMatrixListener(listener); + //fieldPopulationCapturability.addMatrixListener(listener); } @Override @@ -88,9 +83,10 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='0.5'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationCapturability' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id ='fieldPopulationCapturability' matrix='{getBean().getCapturability() == null ? null : getBean().getCapturability().copy()}' - enabled='{isActif()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"Capturability"'/> + enabled='{isActif()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"Capturability"' + onMatrixChanged="populationCapturabilityMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationGroupUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -43,7 +43,6 @@ import fr.ifremer.isisfish.entities.PopulationImpl; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; addPropertyChangeListener("populationGroup", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -177,9 +176,9 @@ <JLabel text="isisfish.populationGroup.naturalDeathRate" enabled='{isPopGroupNotNull()}'/> </cell> <cell columns='2' fill='both' weightx='1.0' weighty='0.5'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='fieldPopulationGroupNaturalDeathRate' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='fieldPopulationGroupNaturalDeathRate' enabled='false' decorator='boxed' _bean='{PopulationImpl.class}' _method='"NaturalDeathRateMatrix"' /> - <!-- this bindings totaly break UI + <!-- this bindings totally break UI matrix='{getBean() == null || getPopulationGroup() == null ? null : ((AbstractMatrixND)getBean().getNaturalDeathRateMatrix()).getSubMatrixOnSemantic(0, getPopulationGroup())}' --> </cell> </row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationEmigrationUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -34,13 +34,10 @@ import fr.ifremer.isisfish.entities.PopulationSeasonInfoImpl; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationGroup; import fr.ifremer.isisfish.entities.PopulationSeasonInfo; import fr.ifremer.isisfish.entities.Zone; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; addPropertyChangeListener("bean", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -91,8 +88,7 @@ remove.setEnabled(false); setAddButton(); - // TODO add listener only once - populationMigrationEmigrationTable.addMatrixListener(new MatrixPanelListener() { + /*populationMigrationEmigrationTable.addMatrixListener(new MatrixPanelListener() { @Override public void matrixChanged(MatrixPanelEvent arg0) { remove.setEnabled(populationMigrationEmigrationTable.getTable().getSelectedRow() != -1); @@ -100,8 +96,16 @@ popInfo.setMigrationMatrix(populationMigrationEmigrationTable.getMatrix().clone()); } } - }); + });*/ } + + protected void populationMigrationEmigrationMatrixChanged(MatrixPanelEvent event) { + remove.setEnabled(populationMigrationEmigrationTable.getTable().getSelectedRow() != -1); + if (popInfo != null){ + popInfo.setMigrationMatrix(populationMigrationEmigrationTable.getMatrix().clone()); + } + } + protected void setFieldPopulationMigrationMigrationGroupChooserModel(){ if (getBean() != null && getBean().getPopulationGroup() != null){ jaxx.runtime.SwingUtil.fillComboBox(fieldPopulationMigrationEmigrationGroupChooser,getBean().getPopulationGroup(), null, true); @@ -120,35 +124,35 @@ Double.parseDouble(fieldPopulationMigrationEmigrationCoefficient.getText())); populationMigrationEmigrationTable.setMatrix(getPopInfo().getEmigrationMatrix().clone()); } - protected void remove(){ + + protected void remove() { + log.debug("removeEmigration called"); + try { + int row = populationMigrationEmigrationTable.getTable().getSelectedRow(); + Object group = populationMigrationEmigrationTable.getTable().getValueAt(row, 0); + Object departure = populationMigrationEmigrationTable.getTable().getValueAt(row, 1); - log.debug("removeEmigration called"); - try { - int row = populationMigrationEmigrationTable.getTable().getSelectedRow(); - Object group = populationMigrationEmigrationTable.getTable().getValueAt(row, 0); - Object departure = populationMigrationEmigrationTable.getTable().getValueAt(row, 1); - - MatrixND mat = popInfo.getEmigrationMatrix().clone(); - mat.setValue(group, departure, 0); - popInfo.setEmigrationMatrix(mat); - remove.setEnabled(false); - }catch(Exception eee){ - log.error("Can't remove migration", eee); - } + MatrixND mat = popInfo.getEmigrationMatrix().clone(); + mat.setValue(group, departure, 0); + popInfo.setEmigrationMatrix(mat); + remove.setEnabled(false); + } catch(Exception eee) { + log.error("Can't remove migration", eee); + } } - protected void groupChanged(){ + protected void groupChanged() { setGPopSelected(fieldPopulationMigrationEmigrationGroupChooser.getSelectedItem() != null); setAddButton(); } - protected void coefChanged(){ + protected void coefChanged() { setCoefNonVide(!fieldPopulationMigrationEmigrationCoefficient.getText().equals("")); setAddButton(); } - protected void zoneChanged(){ + protected void zoneChanged() { setZoneDepartSelected(fieldPopulationMigrationEmigrationDepartureZoneChooser.getSelectedItem() != null); setAddButton(); } - protected void setAddButton(){ + protected void setAddButton() { add.setEnabled(getGPopSelected() && getZoneDepartSelected() && getCoefNonVide()); } ]]> @@ -186,7 +190,9 @@ </row> <row columns='4'> <cell fill='both' weightx='1.0' weighty='1.0'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id ='populationMigrationEmigrationTable' linearModel="true" enabled='{isActif()}'/> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id ='populationMigrationEmigrationTable' + linearModel="true" enabled='{isActif()}' + onMatrixChanged="populationMigrationEmigrationMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationImmigrationUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -39,7 +39,6 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; addPropertyChangeListener("bean", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -61,15 +60,22 @@ remove.setEnabled(populationMigrationImmigrationTable.getTable().getSelectedRow() != -1); } }); -populationMigrationImmigrationTable.addMatrixListener(new MatrixPanelListener() { + +/*populationMigrationImmigrationTable.addMatrixListener(new MatrixPanelListener() { @Override public void matrixChanged(MatrixPanelEvent arg0) { - if (getPopInfo() != null){ + if (getPopInfo() != null) { getPopInfo().setImmigrationMatrix(populationMigrationImmigrationTable.getMatrix().clone()); } } -}); +});*/ +protected void populationMigrationImmigrationMatrixChanged(MatrixPanelEvent event) { + if (getPopInfo() != null){ + getPopInfo().setImmigrationMatrix(populationMigrationImmigrationTable.getMatrix().clone()); + } +} + public void init(PopulationSeasonInfo pi) { // add null before, for second to be considered as a changed event // otherwize, setBean has no effect @@ -177,7 +183,9 @@ </row> <row columns='4'> <cell fill='both' weightx='1.0' weighty='1.0'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='populationMigrationImmigrationTable' linearModel="true" enabled='{isActif()}'/> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='populationMigrationImmigrationTable' + linearModel="true" enabled='{isActif()}' + onMatrixChanged="populationMigrationImmigrationMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationMigrationMigrationUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -39,7 +39,6 @@ import fr.ifremer.isisfish.entities.Zone; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; addPropertyChangeListener("bean", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -61,15 +60,12 @@ remove.setEnabled(populationMigrationMigrationTable.getTable().getSelectedRow() != -1); } }); -MatrixPanelListener listener = new MatrixPanelListener() { - @Override - public void matrixChanged(MatrixPanelEvent arg0) { - if (getPopInfo() != null){ - getPopInfo().setMigrationMatrix(populationMigrationMigrationTable.getMatrix().clone()); - } - } -}; +protected void populationMigrationMigrationMatrixChanged(MatrixPanelEvent event) { + if (getPopInfo() != null) { + getPopInfo().setMigrationMatrix(populationMigrationMigrationTable.getMatrix().clone()); + } +} public void init(PopulationSeasonInfo pi) { // add null before, for second to be considered as a changed event // otherwize, setBean has no effect @@ -100,7 +96,7 @@ setFieldPopulationMigrationMigrationDepartureZoneChooserModel(); setFieldPopulationMigrationMigrationArrivalZoneChooserModel(); - populationMigrationMigrationTable.addMatrixListener(listener); + //populationMigrationMigrationTable.addMatrixListener(listener); remove.setEnabled(false); setAddButton(); @@ -196,7 +192,9 @@ </row> <row columns='4'> <cell fill='both' weightx='1.0' weighty='1.0'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id ='populationMigrationMigrationTable' linearModel='{true}' enabled='{isActif()}'/> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id ='populationMigrationMigrationTable' + linearModel='{true}' enabled='{isActif()}' + onMatrixChanged="populationMigrationMigrationMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationRecruitmentUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -23,13 +23,11 @@ <fr.ifremer.isisfish.entities.PopulationImpl id='bean' javaBean='null'/> <script><![CDATA[ - import fr.ifremer.isisfish.entities.Equation; import fr.ifremer.isisfish.entities.Formule; import fr.ifremer.isisfish.entities.Population; import fr.ifremer.isisfish.entities.PopulationImpl; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; import jaxx.runtime.swing.editor.NumberEditor; addPropertyChangeListener("bean", new PropertyChangeListener() { @@ -47,16 +45,13 @@ } }); -MatrixPanelListener listener = new MatrixPanelListener() { - @Override - public void matrixChanged(MatrixPanelEvent event) { - if (getBean() != null){ - if (fieldPopulationRecruitmentDistribution.getMatrix() != null){ - getBean().setRecruitmentDistribution(fieldPopulationRecruitmentDistribution.getMatrix().copy()); - } +protected void populationRecruitmentDistributionMatrixChanged(MatrixPanelEvent event) { + if (getBean() != null){ + if (fieldPopulationRecruitmentDistribution.getMatrix() != null){ + getBean().setRecruitmentDistribution(fieldPopulationRecruitmentDistribution.getMatrix().copy()); } } -}; +} @Override public void refresh() { @@ -77,7 +72,7 @@ } // TODO add only once - fieldPopulationRecruitmentDistribution.addMatrixListener(listener); + //fieldPopulationRecruitmentDistribution.addMatrixListener(listener); } @Override @@ -119,9 +114,10 @@ <JLabel text="isisfish.populationRecruitment.recruitmentDistribution" enabled='{isActif()}'/> </cell> <cell fill='both' weightx='1.0' weighty='0.5'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id ='fieldPopulationRecruitmentDistribution' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id ='fieldPopulationRecruitmentDistribution' matrix='{getBean().getRecruitmentDistribution() == null ? null : getBean().getRecruitmentDistribution().copy()}' - enabled='{isActif()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"RecruitmentDistribution"'/> + enabled='{isActif()}' decorator='boxed' _bean='{PopulationImpl.class}' _method='"RecruitmentDistribution"' + onMatrixChanged="populationRecruitmentDistributionMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonSpacializedUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -33,22 +33,16 @@ import fr.ifremer.isisfish.ui.util.ErrorHelper; import org.nuiton.math.matrix.MatrixND; -import org.nuiton.math.matrix.gui.JAXXMatrixEditor; +import org.nuiton.math.matrix.gui.MatrixPanelEditor; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; -protected MatrixPanelListener matrixPanelListener; - -matrixPanelListener = new MatrixPanelListener() { - @Override - public void matrixChanged(MatrixPanelEvent event) { - if (getPopulationSeasonInfo() != null && matrixPanelPopulationSeasonLengthChange.getMatrix() != null) { - // must be a copy for fire event - MatrixND lengthChangeMatrix = matrixPanelPopulationSeasonLengthChange.getMatrix().copy(); - getPopulationSeasonInfo().setLengthChangeMatrix(lengthChangeMatrix); - } +protected void populationSeasonLengthMatrixChanged(MatrixPanelEvent event) { + if (getPopulationSeasonInfo() != null && matrixPanelPopulationSeasonLengthChange.getMatrix() != null) { + // must be a copy for fire event + MatrixND lengthChangeMatrix = matrixPanelPopulationSeasonLengthChange.getMatrix().copy(); + getPopulationSeasonInfo().setLengthChangeMatrix(lengthChangeMatrix); } -}; +} /*addPropertyChangeListener("populationSeasonInfo", new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { @@ -64,7 +58,7 @@ @Override public void refresh() { // TODO add only once - matrixPanelPopulationSeasonLengthChange.addMatrixListener(matrixPanelListener); + //matrixPanelPopulationSeasonLengthChange.addMatrixListener(matrixPanelListener); } @Override @@ -110,10 +104,10 @@ protected void showSpacializedMatrixChangeOfGroup() { PopulationSeasonInfo popInfo = getPopulationSeasonInfo(); MatrixND lengthChangeMatrix = popInfo.getLengthChangeMatrix(); - if (popInfo.getSimpleLengthChangeMatrix()){ + if (popInfo.getSimpleLengthChangeMatrix()) { lengthChangeMatrix = popInfo.spacializeLengthChangeMatrix(lengthChangeMatrix); } - JAXXMatrixEditor panel = new JAXXMatrixEditor(false, 800, 300); + MatrixPanelEditor panel = new MatrixPanelEditor(false, 800, 300); panel.setMatrix(lengthChangeMatrix); JOptionPane.showMessageDialog(null, panel, _("isisfish.populationSeasons.spacialized.visualisation"), JOptionPane.INFORMATION_MESSAGE); } @@ -161,11 +155,12 @@ <Panel/> </cell> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='matrixPanelPopulationSeasonLengthChange' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='matrixPanelPopulationSeasonLengthChange' enabled='{isPopSeasonInfoNotNull()}' _bean='{PopulationSeasonInfoImpl.class}' _method='"LengthChangeMatrix"' visible='{isAgeGroupType()}' decorator='boxed' - matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix().copy()}' /> + matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getLengthChangeMatrix().copy()}' + onMatrixChanged="populationSeasonLengthMatrixChanged(event)" /> </cell> </row> </Table> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationSeasonsUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -37,9 +37,8 @@ import fr.ifremer.isisfish.ui.widget.IntervalPanel; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; -protected MatrixPanelListener matrixPanelListener; +//protected MatrixPanelListener matrixPanelListener; protected Interval seasonInterval; protected boolean init = false; @@ -104,7 +103,7 @@ } }); -matrixPanelListener = new MatrixPanelListener() { +/*matrixPanelListener = new MatrixPanelListener() { @Override public void matrixChanged(MatrixPanelEvent event) { if (getPopulationSeasonInfo() != null && fieldPopulationSeasonReproductionDistribution.getMatrix() != null) { @@ -115,8 +114,18 @@ getPopulationSeasonInfo().setReproductionDistribution(reproductionDistribution); } } -}; +};*/ +protected void populationSeasonReproductionDistributionMatrixChanged(MatrixPanelEvent event) { + if (getPopulationSeasonInfo() != null && fieldPopulationSeasonReproductionDistribution.getMatrix() != null) { + MatrixND reproductionDistribution = fieldPopulationSeasonReproductionDistribution.getMatrix().copy(); + if (log.isDebugEnabled()) { + log.debug("Matrix ReproductionDistribution modified : " + reproductionDistribution); + } + getPopulationSeasonInfo().setReproductionDistribution(reproductionDistribution); + } +} + @Override public void refresh() { if (!isActif()) { @@ -143,7 +152,7 @@ seasonIntervalPanel.setLabelRenderer(Month.MONTH); seasonIntervalPanel.setModel(seasonInterval); - fieldPopulationSeasonReproductionDistribution.addMatrixListener(matrixPanelListener); + //fieldPopulationSeasonReproductionDistribution.addMatrixListener(matrixPanelListener); if(getPopulationSeasonInfo() != null) { PopulationSeasonInfoImpl popInfo = getPopulationSeasonInfo(); @@ -297,11 +306,12 @@ visible='{getPopulationSeasonInfo().getReproduction()}'/> </cell> <cell fill='both' weightx='1.0' weighty='0.2'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='fieldPopulationSeasonReproductionDistribution' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='fieldPopulationSeasonReproductionDistribution' matrix='{getPopulationSeasonInfo() == null ? null : getPopulationSeasonInfo().getReproductionDistribution().copy()}' enabled='{isPopSeasonInfoNotNull()}' visible='{getPopulationSeasonInfo().getReproduction()}' - decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"ReproductionDistribution"'/> + decorator='boxed' _bean='{PopulationSeasonInfoImpl.class}' _method='"ReproductionDistribution"' + onMatrixChanged="populationSeasonReproductionDistributionMatrixChanged(event)" /> </cell> </row> <row> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesEditorUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesEditorUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/PopulationZonesEditorUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -26,23 +26,27 @@ import fr.ifremer.isisfish.entities.Zone; import fr.ifremer.isisfish.ui.input.population.ZoneListModel; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; -MatrixPanelListener listener = new MatrixPanelListener() { +/*MatrixPanelListener listener = new MatrixPanelListener() { @Override public void matrixChanged(MatrixPanelEvent event) { fieldPopulationMappingZoneReproZoneRecruChanged(); } -}; +};*/ +protected void populationMappingZoneReproZoneRecruMatrixChanged(MatrixPanelEvent event) { + //fieldPopulationMappingZoneReproZoneRecruChanged(); + getBean().setMappingZoneReproZoneRecru(fieldPopulationMappingZoneReproZoneRecru.getMatrix().clone()); +} + @Override public void refresh(){ setPopulationZonesPresenceModel(); setFieldPopulationZonesReproductionModel(getSelectedValues(populationZonesPresence)); setFieldPopulationZonesRecruitmentModel(getSelectedValues(populationZonesPresence)); - fieldPopulationMappingZoneReproZoneRecru.removeMatrixPanelListener(listener); + //fieldPopulationMappingZoneReproZoneRecru.removeMatrixPanelListener(listener); setFieldPopulationMappingZoneReproZoneRecru(); - fieldPopulationMappingZoneReproZoneRecru.addMatrixListener(listener); + //fieldPopulationMappingZoneReproZoneRecru.addMatrixListener(listener); } @Override @@ -50,9 +54,9 @@ } -protected void fieldPopulationMappingZoneReproZoneRecruChanged(){ +/*protected void fieldPopulationMappingZoneReproZoneRecruChanged(){ getBean().setMappingZoneReproZoneRecru(fieldPopulationMappingZoneReproZoneRecru.getMatrix()); -} +}*/ protected void setFieldPopulationMappingZoneReproZoneRecru(){ if (getBean() != null){ if (getBean().getMappingZoneReproZoneRecru() != null){ @@ -153,7 +157,9 @@ </row> <row> <cell columns='3' fill='both' weightx='1.0' weighty='0.5'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='fieldPopulationMappingZoneReproZoneRecru' constructorParams='false' enabled='{isActif()}'/> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='fieldPopulationMappingZoneReproZoneRecru' + constructorParams='false' enabled='{isActif()}' + onMatrixChanged="populationMappingZoneReproZoneRecruMatrixChanged(event)" /> </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-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/StrategyOneMonthInfoUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -30,15 +30,14 @@ import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.StrategyImpl; import org.nuiton.math.matrix.gui.MatrixPanelEvent; -import org.nuiton.math.matrix.gui.MatrixPanelListener; import jaxx.runtime.swing.editor.NumberEditor; import fr.ifremer.isisfish.entities.TripType; -protected MatrixPanelListener matrixListener; +//protected MatrixPanelListener matrixListener; protected int month = 0; -matrixListener = new MatrixPanelListener() { +/*matrixListener = new MatrixPanelListener() { @Override public void matrixChanged(MatrixPanelEvent event) { if (getStrategyMonthInfo() != null && fieldStrategyMonthInfoProportion.getMatrix() != null) { @@ -47,8 +46,15 @@ } } }; -fieldStrategyMonthInfoProportion.addMatrixListener(matrixListener); +fieldStrategyMonthInfoProportion.addMatrixListener(matrixListener);*/ +protected void strategyMonthInfoProportionMatrixChanged(MatrixPanelEvent event) { + if (getStrategyMonthInfo() != null && fieldStrategyMonthInfoProportion.getMatrix() != null) { + log.debug("Matrix modified : " + fieldStrategyMonthInfoProportion.getMatrix()); + getStrategyMonthInfo().setProportionMetier(fieldStrategyMonthInfoProportion.getMatrix().copy()); + } +} + @Override public void refresh() { Strategy strategy = (Strategy)getVerifier().getEntity(Strategy.class); @@ -147,8 +153,9 @@ </row> <row> <cell columns='2' fill='both' weightx='1.0' weighty='1.0'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id="fieldStrategyMonthInfoProportion" linearModelShowDefault='{true}' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id="fieldStrategyMonthInfoProportion" linearModelShowDefault='{true}' linearModel='{true}' matrix='{getStrategyMonthInfo().getProportionMetier() == null ? null : getStrategyMonthInfo().getProportionMetier().copy()}' + onMatrixChanged="strategyMonthInfoProportionMatrixChanged(event)" enabled='{isActif()}' decorator='boxed' _bean='{fr.ifremer.isisfish.entities.StrategyMonthInfoImpl.class}' _method='"ProportionMetier"'/> </cell> </row> 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-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/EditorHelper.java 2009-11-04 18:14:13 UTC (rev 2738) @@ -49,7 +49,7 @@ import jaxx.runtime.JAXXInitialContext; import jaxx.runtime.swing.JAXXList; import org.nuiton.math.matrix.MatrixND; -import org.nuiton.math.matrix.gui.JAXXMatrixEditor; +import org.nuiton.math.matrix.gui.MatrixPanelEditor; import org.nuiton.topia.persistence.TopiaEntity; import fr.ifremer.isisfish.ui.input.RangeOfValuesUI; import fr.ifremer.isisfish.ui.input.SelectivityEditorUI; @@ -93,7 +93,7 @@ } else if (result instanceof MatrixEditor) { MatrixEditor ui = (MatrixEditor) c; MatrixND m = (MatrixND) callMethod(e, fieldName); - JAXXMatrixEditor matrix = new JAXXMatrixEditor(false); + MatrixPanelEditor matrix = new MatrixPanelEditor(false); if (m != null) { matrix.setMatrix(m.clone()); } @@ -342,7 +342,7 @@ } else if (result instanceof MatrixEditor) { MatrixEditor ui = (MatrixEditor) c; MatrixND m = (MatrixND) value; - JAXXMatrixEditor matrix = new JAXXMatrixEditor(false); + MatrixPanelEditor matrix = new MatrixPanelEditor(false); if (m != null) { matrix.setMatrix(m.clone()); } @@ -491,8 +491,8 @@ } else if (c instanceof JTable) { // ((JTable) result).setText(BeanUtils.getProperty(e, fieldName)); - } else if (c instanceof JAXXMatrixEditor) { - result = ((JAXXMatrixEditor) c).getMatrix(); + } else if (c instanceof MatrixPanelEditor) { + result = ((MatrixPanelEditor) c).getMatrix(); } else if (c instanceof JComboBox) { result = ((JComboBox) c).getSelectedItem(); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/MatrixContinuousPanelUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -27,7 +27,7 @@ <JLabel text='isisfish.factor.value' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> </cell> <cell fill='both' weightx='1' weighty='1'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id='componentPanel' dimensionEdit='{false}' + <org.nuiton.math.matrix.gui.MatrixPanelEditor id='componentPanel' dimensionEdit='{false}' matrix='{getMatrix() == null ? null : getMatrix().clone()}' visible='{isContinuePossible()}' enabled='{isContinueSelected()}'/> </cell> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-11-04 13:46:52 UTC (rev 2737) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-11-04 18:14:13 UTC (rev 2738) @@ -198,15 +198,14 @@ if (!isSensitivity()) { simulAction.launchSimulation(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); } - else{ + else { simulAction.launchSimulationWhithSensibility(fieldSimulParamsName.getText(), (SimulatorLauncher)comboSelLauncher.getSelectedItem()); } // dans le cas d'une fenetre independante, il n'y a pas de ParentContainer WelcomeTabUI parent = getParentContainer(WelcomeTabUI.class); if (parent != null) { - // 5 = queue simulation tab - parent.selTab(5); + parent.setQueueTabSelection(); } } protected void enablePreSimul() { @@ -577,7 +576,7 @@ <cell columns="4" fill="both" weightx="1.0" weighty="0.6"> <JTabbedPane id="parametersTabbedPane" minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'> <tab title='{_("isisfish.params.populationNumbers")}'> - <org.nuiton.math.matrix.gui.JAXXMatrixEditor id="simulParamsNumbers" name="isisfish.params.populationNumbers"/> + <org.nuiton.math.matrix.gui.MatrixPanelEditor id="simulParamsNumbers" name="isisfish.params.populationNumbers"/> </tab> <tab title='{_("isisfish.params.ruleParameters")}'> <JScrollPane minimumSize='{new Dimension(0,0)}' preferredSize='{new Dimension(0,0)}'>