Author: sletellier Date: 2009-01-20 17:53:42 +0000 (Tue, 20 Jan 2009) New Revision: 1749 Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx Log: Multi save verifier Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/SaveVerfier.java 2009-01-20 17:53:42 UTC (rev 1749) @@ -0,0 +1,14 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +package fr.ifremer.isisfish.ui; + +/** + * + * @author letellier + */ +public interface SaveVerfier { + public int checkEdit(); +} 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-01-20 17:34:19 UTC (rev 1748) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomePanelUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749) @@ -33,12 +33,24 @@ <JPanel id='welcomePanelUI' layout='{new BorderLayout()}'> <script> <![CDATA[ + import fr.ifremer.isisfish.IsisFish; public void setContent(Container c){ this.add(c, BorderLayout.CENTER); } public void setInfoText(String s){ statusBar.getLabelStatus().setText(s); } + public void close() { + if (getVerifier().allIsSaved()){ + exit(); + } + } + protected void exit(){ + IsisFish.quit(); + } + protected WelcomeSaveVerifier getVerifier(){ + return getContextValue(WelcomeSaveVerifier.class); + } ]]> </script> Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java 2009-01-20 17:34:19 UTC (rev 1748) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeSaveVerifier.java 2009-01-20 17:53:42 UTC (rev 1749) @@ -6,26 +6,26 @@ package fr.ifremer.isisfish.ui; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; +import java.util.ArrayList; +import java.util.List; import javax.swing.JOptionPane; - /** * * @author letellier */ public class WelcomeSaveVerifier { - protected InputSaveVerifier inputVerifier = null; + protected List<fr.ifremer.isisfish.ui.SaveVerfier> verifiers = new ArrayList<fr.ifremer.isisfish.ui.SaveVerfier>(); - public void setInputVerifier(InputSaveVerifier inputVerifier) { - this.inputVerifier = inputVerifier; + public void addSaveVerifier(InputSaveVerifier inputVerifier) { + verifiers.add(inputVerifier); } - public InputSaveVerifier getInputVerifier() { - return inputVerifier; - } - public boolean allIsSaved(){ boolean exit = true; - int responce = inputVerifier.checkEdit(); + int responce = JOptionPane.CANCEL_OPTION; + for (fr.ifremer.isisfish.ui.SaveVerfier s : verifiers){ + responce = s.checkEdit(); + } //boolean exit = checkEdit(event, component); if (responce == JOptionPane.OK_OPTION){ } 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-01-20 17:34:19 UTC (rev 1748) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeTabUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749) @@ -49,7 +49,7 @@ <fr.ifremer.isisfish.ui.result.ResultView/> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/book.gif"))}'> - <fr.ifremer.isisfish.ui.input.InputUI constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())'/> + <fr.ifremer.isisfish.ui.input.InputUI constructorParams='new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier()).add(this)'/> </tab> <tab title=' ' icon='{new ImageIcon(getClass().getResource("/images/bookPage.gif"))}'> <fr.ifremer.isisfish.ui.script.ScriptUI/> 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-01-20 17:34:19 UTC (rev 1748) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/ui/WelcomeUI.jaxx 2009-01-20 17:53:42 UTC (rev 1749) @@ -49,16 +49,52 @@ import jaxx.runtime.JAXXInitialContext; import fr.ifremer.isisfish.ui.input.InputSaveVerifier; + java.util.Map <JFrame, WelcomePanelUI> allFrameOpened; + setContextValue(new WelcomeSaveVerifier()); + allFrameOpened = new java.util.HashMap <JFrame, WelcomePanelUI> (); welcomePanelUI.setContent(new WelcomeTabUI(new JAXXInitialContext().add(getVerifier()))); protected void openFrame(Container c, String title){ JFrame f = new JFrame(); f.setLayout(new BorderLayout()); - WelcomePanelUI welcome = new WelcomePanelUI(this); + WelcomePanelUI welcome = new WelcomePanelUI(new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(this)); 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 WindowListener() { + + @Override + public void windowOpened(WindowEvent e) { + } + + @Override + public void windowClosing(WindowEvent e) { + allFrameOpened.get((JFrame) e.getSource()).close(); + } + + @Override + public void windowClosed(WindowEvent e) { + } + + @Override + public void windowIconified(WindowEvent e) { + } + + @Override + public void windowDeiconified(WindowEvent e) { + } + + @Override + public void windowActivated(WindowEvent e) { + } + + @Override + public void windowDeactivated(WindowEvent e) { + } + }); f.setVisible(true); } public void close() { @@ -122,7 +158,7 @@ <JMenu text="isisfish.welcome.menu.frame"> <JMenuItem text="isisfish.welcome.menu.simulation" onActionPerformed='openFrame(new SimulUI(new SimulAction()), _("isisfish.simulation.title"))'/> <JMenuItem text="isisfish.welcome.menu.result" onActionPerformed='openFrame(new ResultView(), _("isisfish.result.title"))'/> - <JMenuItem text="isisfish.welcome.menu.input" onActionPerformed='openFrame(new InputUI(new JAXXInitialContext().add(this).add(new InputAction()).add(new InputSaveVerifier())), _("isisfish.input.title"))'/> + <JMenuItem text="isisfish.welcome.menu.input" onActionPerformed='openFrame(new InputUI(new JAXXInitialContext().add(getContextValue(WelcomeSaveVerifier.class)).add(new InputAction()).add(new InputSaveVerifier())), _("isisfish.input.title"))'/> <JMenuItem text="isisfish.welcome.menu.script" onActionPerformed='openFrame(new ScriptUI(), _("isisfish.script.title"))'/> <JSeparator/> <JMenuItem text="isisfish.welcome.menu.queue" onActionPerformed='openFrame(new QueueUI(), _("isisfish.queue.title"))'/>