Author: chatellier Date: 2011-02-01 16:03:37 +0000 (Tue, 01 Feb 2011) New Revision: 635 Log: Open graph frame only once Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2011-02-01 14:05:29 UTC (rev 634) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2011-02-01 16:03:37 UTC (rev 635) @@ -3,7 +3,7 @@ * $Id$ * $HeadURL$ * %% - * Copyright (C) 2010 Ifremer, Codelutin, Chatellier Eric + * Copyright (C) 2010 - 2011 Ifremer, Codelutin, Chatellier Eric * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as @@ -30,6 +30,8 @@ import javax.swing.JFrame; import javax.swing.SwingUtilities; +import jaxx.runtime.JAXXContext; + import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.viewer.MatrixViewerPanel; import org.nuiton.math.matrix.viewer.renderer.MatrixChartRenderer; @@ -70,6 +72,12 @@ // get matrix MatrixND matrix = projectService.getLengthStructure(project, container); + // close previous opened + JFrame previousFrame = (JFrame)((JAXXContext)parent).getContextValue(JFrame.class, "lengthstructureframe"); + if (previousFrame != null) { + previousFrame.dispose(); + } + // display matrix viewer component JFrame matrixViewerFrame = new JFrame(_("coser.ui.graph.lengthStructure")); matrixViewerFrame.setName("lengthstructureframe"); @@ -81,9 +89,12 @@ matrixViewerFrame.add(panel); matrixViewerFrame.pack(); matrixViewerFrame.setLocationRelativeTo(parent); + session.add(matrixViewerFrame); // session restore matrixViewerFrame.toFront(); - session.add(matrixViewerFrame); // session restore matrixViewerFrame.setVisible(true); + + // register current frame + ((JAXXContext)parent).setContextValue(matrixViewerFrame, "lengthstructureframe"); } finally { setDefaultCursor(parent); Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2011-02-01 14:05:29 UTC (rev 634) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2011-02-01 16:03:37 UTC (rev 635) @@ -42,6 +42,7 @@ import java.util.Set; import java.util.UUID; +import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuItem; import javax.swing.JOptionPane; @@ -58,6 +59,7 @@ import javax.swing.event.TreeSelectionEvent; import javax.swing.tree.TreePath; +import jaxx.runtime.JAXXContext; import jaxx.runtime.JAXXUtil; import jaxx.runtime.SwingUtil; import jaxx.runtime.validator.swing.SwingValidator; @@ -872,6 +874,12 @@ Map<String, JFreeChart> charts = view.getContextValue(Map.class, "CompareCatchLengthGraph"); List<String> species = new ArrayList<String>(charts.keySet()); + // close previous opened + JFrame previousFrame = (JFrame)view.getContextValue(JFrame.class, "comparenumberframe"); + if (previousFrame != null) { + previousFrame.dispose(); + } + ControlGraphFrame frame = new ControlGraphFrame(view); frame.setHandler(ControlHandler.this); frame.setContextValue(charts); @@ -883,7 +891,11 @@ frame.pack(); frame.setLocationRelativeTo(view); session.add(frame); // session restore + frame.toFront(); frame.setVisible(true); + + // register current frame + view.setContextValue(frame, "comparenumberframe"); } /**