Author: sletellier Date: 2009-05-19 20:31:04 +0000 (Tue, 19 May 2009) New Revision: 2257 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/RegionMonitor.java Modified: 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/InputUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx Log: Refresh region in comboBox Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/RegionMonitor.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/RegionMonitor.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/RegionMonitor.java 2009-05-19 20:31:04 UTC (rev 2257) @@ -0,0 +1,53 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package fr.ifremer.isisfish.ui; + +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; + +/** + * + * @author letellier + */ +public class RegionMonitor { + + /** pour le support des modifications de propriétés */ + protected final PropertyChangeSupport pcs; + protected Boolean regionChanged = false; + protected static String REGION_PROPERTY = "regionChanged"; + + public RegionMonitor() { + this.pcs = new PropertyChangeSupport(this); + } + + public void changeRegion(){ + setRegionChanged(!regionChanged); + } + + protected Boolean getRegionChanged() { + return regionChanged; + } + + protected void setRegionChanged(Boolean regionChanged) { + pcs.firePropertyChange(REGION_PROPERTY, this.regionChanged, regionChanged); + this.regionChanged = regionChanged; + } + + public void addRegionPropertyChangeListener(PropertyChangeListener listener) { + pcs.addPropertyChangeListener(REGION_PROPERTY, listener); + } + + public void removeRegionPropertyChangeListener(PropertyChangeListener listener) { + pcs.removePropertyChangeListener(REGION_PROPERTY, listener); + } + + public void removePropertyChangeListeners() { + for (PropertyChangeListener listener : pcs.getPropertyChangeListeners()) { + pcs.removePropertyChangeListener(listener); + } + } + +} 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-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -25,6 +25,7 @@ import fr.ifremer.isisfish.ui.input.InputAction; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; + protected RegionMonitor regionMonitor = getContextValue(RegionMonitor.class); simulUI.getContextValue(SimulAction.class).init(); queueUI.setContextValue(simulUI.getContextValue(SimulAction.class)); public void selTab(int i){ @@ -38,13 +39,13 @@ </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(regionMonitor).add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier()).add(this)'/> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/simulation.gif"))}'> - <fr.ifremer.isisfish.ui.simulator.SimulUI id='simulUI' constructorParams='new SimulAction()'/> + <fr.ifremer.isisfish.ui.simulator.SimulUI id='simulUI' constructorParams='new JAXXInitialContext().add(regionMonitor).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(regionMonitor).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/> 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-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -37,19 +37,21 @@ import fr.ifremer.isisfish.ui.simulator.launcher.SSHLauncherConfigUI; import fr.ifremer.isisfish.ui.vcs.VCSConfigUI; import org.codelutin.widget.AboutFrame; + import jaxx.runtime.DefaultJAXXContext; import jaxx.runtime.JAXXInitialContext; - import jaxx.runtime.DefaultJAXXContext; Map<JFrame, WelcomePanelUI> allFrameOpened; WelcomeSaveVerifier verifier = new WelcomeSaveVerifier(); + RegionMonitor regionMonitor = new RegionMonitor(); + setContextValue(regionMonitor); setContextValue(verifier); allFrameOpened = new java.util.HashMap<JFrame, WelcomePanelUI>(); - welcomePanelUI.setContent(new WelcomeTabUI(new JAXXInitialContext().add(getVerifier()))); + welcomePanelUI.setContent(new WelcomeTabUI(new JAXXInitialContext().add(getVerifier()).add(regionMonitor))); protected void openFrame(Container c, String title) { JFrame f = new JFrame(); f.setLayout(new BorderLayout()); - WelcomePanelUI welcome = new WelcomePanelUI(new JAXXInitialContext().add(verifier).add(this)); + WelcomePanelUI welcome = new WelcomePanelUI(new JAXXInitialContext().add(verifier).add(regionMonitor).add(this)); welcome.setContent(c); f.add(welcome, BorderLayout.CENTER); f.setTitle(title); Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2009-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/input/InputUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -43,46 +43,39 @@ <fr.ifremer.isisfish.entities.FisheryRegionImpl id='region' javaBean='null'/> <script><![CDATA[ +import fr.ifremer.isisfish.ui.input.*; +import java.awt.*; +import java.awt.event.*; +import java.lang.*; +import java.util.*; +import javax.swing.*; +import static org.codelutin.i18n.I18n._; import fr.ifremer.isisfish.ui.Common; import fr.ifremer.isisfish.ui.WelcomeSaveVerifier; -import fr.ifremer.isisfish.ui.widget.editor.GenericCell; import fr.ifremer.isisfish.ui.WelcomePanelUI; -import javax.swing.tree.DefaultMutableTreeNode; +import fr.ifremer.isisfish.ui.WelcomeAction; import javax.swing.tree.DefaultTreeModel; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import fr.ifremer.isisfish.entities.Cell; -import fr.ifremer.isisfish.entities.Gear; -import fr.ifremer.isisfish.entities.Metier; -import fr.ifremer.isisfish.entities.Port; -import fr.ifremer.isisfish.entities.SetOfVessels; -import fr.ifremer.isisfish.entities.Species; -import fr.ifremer.isisfish.entities.Strategy; -import fr.ifremer.isisfish.entities.TripType; -import fr.ifremer.isisfish.entities.VesselType; -import fr.ifremer.isisfish.entities.Zone; -import fr.ifremer.isisfish.entities.Population; -import javax.swing.tree.TreeNode; import javax.swing.tree.TreePath; -import org.codelutin.topia.persistence.TopiaEntity; -import org.codelutin.topia.TopiaException; -import jaxx.runtime.JAXXContextEntryDef; import jaxx.runtime.swing.navigation.NavigationTreeModel.NavigationTreeNode; -import jaxx.runtime.swing.navigation.NavigationTreeModelBuilder; import jaxx.runtime.swing.navigation.NavigationUtil; -import fr.ifremer.isisfish.entities.FisheryRegion; import fr.ifremer.isisfish.entities.FisheryRegionImpl; import jaxx.runtime.swing.navigation.NavigationTreeModel; -import jaxx.runtime.Decorator; -import jaxx.runtime.JXPathDecorator; import org.codelutin.topia.TopiaContext; -import fr.ifremer.isisfish.entities.FisheryRegion; import fr.ifremer.isisfish.datastore.RegionStorage; -import fr.ifremer.isisfish.ui.WelcomeTabUI; +import fr.ifremer.isisfish.ui.RegionMonitor; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; getContextValue(WelcomeSaveVerifier.class).addSaveVerifier(getVerifier()); new fr.ifremer.isisfish.ui.input.InputNavigationTreeSelectionAdapter(this); +getContextValue(RegionMonitor.class).addRegionPropertyChangeListener(new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + setFieldCurrentRegionModel(); + } +}); + protected InputAction getAction(){ return getContextValue(InputAction.class); } @@ -93,7 +86,6 @@ return getContextValue(RegionStorage.class); } protected void setFieldCurrentRegionModel(){ - getParentContainer(WelcomeTabUI.class).refresh(); fieldCurrentRegion.setModel(getFieldCurrentRegionModel()); } protected DefaultComboBoxModel getFieldCurrentRegionModel(){ @@ -157,11 +149,14 @@ WelcomePanelUI root = getParentContainer(WelcomePanelUI.class); root.setInfoText(s); } +protected void regionChange(){ + getContextValue(RegionMonitor.class).changeRegion(); +} protected void newRegion() { String name = fieldNewRegion.getText(); setInfoText(_("isisfish.message.creating.region", name)); getContextValue(InputAction.class).newRegion(name); - setFieldCurrentRegionModel(); + regionChange(); fieldCurrentRegion.setSelectedItem(name); JButtonNewRegion.setEnabled(false); fieldNewRegion.setText(""); @@ -178,23 +173,23 @@ protected void importRegion() { setInfoText(_("isisfish.message.import.zip")); getContextValue(InputAction.class).importRegion(); - setFieldCurrentRegionModel(); + regionChange(); setInfoText(_("isisfish.message.import.finished")); } protected void importRegionAndRename() { setInfoText(_("isisfish.message.import.zip")); getContextValue(InputAction.class).importRegionAndRename(); - setFieldCurrentRegionModel(); + regionChange(); setInfoText(_("isisfish.message.import.finished")); } protected void importV2Region() { setInfoText(_("isisfish.message.import.xml.v2.file") + getContextValue(InputAction.class).importV2Region()); - setFieldCurrentRegionModel(); + regionChange(); setInfoText(_("isisfish.message.import.finished")); } protected void importRegionFromSimulation() { setInfoText(_("isisfish.message.import", getContextValue(InputAction.class).importRegionFromSimulation())); - setFieldCurrentRegionModel(); + regionChange(); setInfoText(_("isisfish.message.export.done")); } protected void exportRegion() { @@ -203,13 +198,13 @@ } protected void copyRegion() { setInfoText(_("isisfish.message.copy.region", getContextValue(InputAction.class).copyRegion(getRegionStorage()))); - setFieldCurrentRegionModel(); + regionChange(); setInfoText(_("isisfish.message.copy.finished")); } protected void removeRegion() { setInfoText(_("isisfish.message.removing.region", getRegionStorage().getName())); setInfoText(getContextValue(InputAction.class).removeRegion(getRegionStorage(), false)); - setFieldCurrentRegionModel(); + regionChange(); regionNull(); } protected void commitRegionInCVS() { Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2009-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/sensitivity/SensitivityUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -70,7 +70,7 @@ </JMenuBar> <JTabbedPane id="sensitivityTabs" constraints="BorderLayout.CENTER"> <tab title='isisfish.params.title'> - <ParamsUI id='paramsUI' sensitivity='{true}' constructorParams='getContextValue(SimulAction.class)'/> + <ParamsUI id='paramsUI' sensitivity='{true}' constructorParams='this'/> </tab> <tab title='isisfish.sensitivity.title'> <SensitivityTabUI id="sensitivityTabUI" constructorParams='new JAXXInitialContext().add(new InputAction()).add(new InputSaveVerifier()).add(this)'/> @@ -79,16 +79,16 @@ <SensitivityChooserUI id="sensitivityChooserUI" constructorParams='this'/> </tab> <tab id="exportUITab" title='isisfish.export.title'> - <ExportUI id="exportUI" constructorParams='getContextValue(SimulAction.class)'/> + <ExportUI id="exportUI" constructorParams='this'/> </tab> <tab id="resultChoiceUITab" title='isisfish.resultChoice.title'> - <ResultChoiceUI id="resultChoiceUI" constructorParams='getContextValue(SimulAction.class)'/> + <ResultChoiceUI id="resultChoiceUI" constructorParams='this'/> </tab> <tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'> - <AdvancedParamsUI id="advancedParamsUI" constructorParams='getContextValue(SimulAction.class)'/> + <AdvancedParamsUI id="advancedParamsUI" constructorParams='this'/> </tab> <tab id="secondPassUITab" title='isisfish.sensitivity.secondpass.title'> - <SensitivitySecondPassUI id="sensitivitySecondPassUI" constructorParams='new JAXXInitialContext().add(this)'/> + <SensitivitySecondPassUI id="sensitivitySecondPassUI" constructorParams='this'/> </tab> </JTabbedPane> </JPanel> 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-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/ParamsUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -26,6 +26,7 @@ import fr.ifremer.isisfish.ui.Common; import fr.ifremer.isisfish.ui.WelcomePanelUI; import fr.ifremer.isisfish.ui.WelcomeTabUI; +import fr.ifremer.isisfish.ui.RegionMonitor; import fr.ifremer.isisfish.simulator.launcher.SimulatorLauncher; import fr.ifremer.isisfish.entities.Strategy; import fr.ifremer.isisfish.entities.Population; @@ -51,6 +52,13 @@ SimulationServiceListener simulationListener; SimulAction simulAction = getContextValue(SimulAction.class); +getContextValue(RegionMonitor.class).addRegionPropertyChangeListener(new PropertyChangeListener() { + + @Override + public void propertyChange(PropertyChangeEvent evt) { + fieldSimulParamsRegion.setModel(new DefaultComboBoxModel(Common.getRegionItem())); + } +}); // end constructor code simulationListener = new SimulationServiceListener() { @Override Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx 2009-05-19 16:56:42 UTC (rev 2256) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/simulator/SimulUI.jaxx 2009-05-19 20:31:04 UTC (rev 2257) @@ -99,22 +99,22 @@ </JMenuBar> <JTabbedPane id="simulTabs" constraints='BorderLayout.CENTER'> <tab id="paramsUITab" title='isisfish.params.title'> - <ParamsUI id="paramsUI" constructorParams='getContextValue(SimulAction.class)'/> + <ParamsUI id="paramsUI" constructorParams='this'/> </tab> <tab id="preScriptUITab" title='isisfish.preScript.title' enabled='false'> - <PreScriptsUI id="preSciptUI" constructorParams='getContextValue(SimulAction.class)'/> + <PreScriptsUI id="preSciptUI" constructorParams='this'/> </tab> <tab id="sensUITab" title='isisfish.sens.title' enabled='false'> - <SensUI id="sensUI" constructorParams='getContextValue(SimulAction.class)'/> + <SensUI id="sensUI" constructorParams='this'/> </tab> <tab id="exportUITab" title='isisfish.export.title'> - <ExportUI id="exportUI" constructorParams='getContextValue(SimulAction.class)'/> + <ExportUI id="exportUI" constructorParams='this'/> </tab> <tab id="resultChoiceUITab" title='isisfish.resultChoice.title'> - <ResultChoiceUI id="resultChoiceUI" constructorParams='getContextValue(SimulAction.class)'/> + <ResultChoiceUI id="resultChoiceUI" constructorParams='this'/> </tab> <tab id="advancedParamsUITab" title='isisfish.advancedParameters.title'> - <AdvancedParamsUI id="advencedParamsUI" constructorParams='getContextValue(SimulAction.class)'/> + <AdvancedParamsUI id="advencedParamsUI" constructorParams='this'/> </tab> </JTabbedPane> </JPanel> \ No newline at end of file
participants (1)
-
sletellier@users.labs.libre-entreprise.org