Author: chatellier Date: 2010-12-09 15:58:01 +0000 (Thu, 09 Dec 2010) New Revision: 384 Log: Display length structures graphs in L3 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 trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 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 2010-12-09 14:30:24 UTC (rev 383) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/common/DataHandler.java 2010-12-09 15:58:01 UTC (rev 384) @@ -25,9 +25,24 @@ package fr.ifremer.coser.ui.common; +import static org.nuiton.i18n.I18n._; + +import java.awt.Component; + +import javax.swing.JFrame; +import javax.swing.SwingUtilities; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.MatrixND; +import org.nuiton.math.matrix.viewer.MatrixViewerPanel; +import org.nuiton.math.matrix.viewer.renderer.MatrixChartRenderer; +import org.nuiton.math.matrix.viewer.renderer.MatrixInfoTableRenderer; +import org.nuiton.widget.SwingSession; +import fr.ifremer.coser.bean.AbstractDataContainer; +import fr.ifremer.coser.bean.Project; +import fr.ifremer.coser.services.ProjectService; import fr.ifremer.coser.ui.control.ControlHandler; /** @@ -41,6 +56,44 @@ */ public class DataHandler extends CommonHandler { - private static final Log log = LogFactory.getLog(ControlHandler.class); + private static final Log log = LogFactory.getLog(DataHandler.class); + /** + * Display lengthStructure matrix in matrixviewerpanel. + * + * @param parent parent component + * @param session session to restore frame state + * @param projectService projectService + * @param project project + * @param container data container + */ + public void displayLengthStructureGraph(final Component parent, final SwingSession session, + final ProjectService projectService, final Project project, final AbstractDataContainer container) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + try { + setWaitCursor(parent); + + // get matrix + MatrixND matrix = projectService.getLengthStructure(project, container); + + // display matrix viewer component + JFrame matrixViewerFrame = new JFrame(_("coser.ui.graph.lengthStructure")); + matrixViewerFrame.setName("lengthstructureframe"); + MatrixViewerPanel panel = new MatrixViewerPanel(); + panel.addMatrixRenderer(new MatrixInfoTableRenderer()); + panel.addMatrixRenderer(new MatrixChartRenderer()); + panel.addMatrix(matrix); + matrixViewerFrame.add(panel); + matrixViewerFrame.pack(); + matrixViewerFrame.setLocationRelativeTo(parent); + session.add(matrixViewerFrame); // session restore + matrixViewerFrame.setVisible(true); + } + 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 2010-12-09 14:30:24 UTC (rev 383) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/control/ControlHandler.java 2010-12-09 15:58:01 UTC (rev 384) @@ -862,42 +862,15 @@ } /** - * Display data graph, initialized with graph for first specy - * selected in specyComboModel. + * Display lengthStructure matrix in matrixviewerpanel. * * @param view view */ - public void displayLengthStructureGraph(final ControlView view) { - final Project project = view.getContextValue(Project.class); - final ProjectService projectService = view.getContextValue(ProjectService.class); - final SwingSession session = view.getContextValue(SwingSession.class); - - SwingUtilities.invokeLater(new Runnable() { - public void run() { - try { - setWaitCursor(view); - - // get matrix - MatrixND matrix = projectService.getLengthStructure(project, project.getControl()); - - // display matrix viewer component - JFrame matrixViewerFrame = new JFrame(_("coser.ui.graph.lengthStructure")); - matrixViewerFrame.setName("lengthstructureframe"); - MatrixViewerPanel panel = new MatrixViewerPanel(); - panel.addMatrixRenderer(new MatrixInfoTableRenderer()); - panel.addMatrixRenderer(new MatrixChartRenderer()); - panel.addMatrix(matrix); - matrixViewerFrame.add(panel); - matrixViewerFrame.pack(); - matrixViewerFrame.setLocationRelativeTo(view); - session.add(matrixViewerFrame); // session restore - matrixViewerFrame.setVisible(true); - } - finally { - setDefaultCursor(view); - } - } - }); + public void displayLengthStructureGraph(ControlView view) { + Project project = view.getContextValue(Project.class); + ProjectService projectService = view.getContextValue(ProjectService.class); + SwingSession session = view.getContextValue(SwingSession.class); + displayLengthStructureGraph(view, session, projectService, project, project.getControl()); } /** Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-09 14:30:24 UTC (rev 383) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionHandler.java 2010-12-09 15:58:01 UTC (rev 384) @@ -59,6 +59,7 @@ import org.jfree.chart.JFreeChart; import org.nuiton.math.matrix.MatrixND; import org.nuiton.math.matrix.gui.MatrixTableModelND; +import org.nuiton.widget.SwingSession; import fr.ifremer.coser.CoserBusinessException; import fr.ifremer.coser.CoserException; @@ -68,6 +69,7 @@ import fr.ifremer.coser.services.ProjectService; import fr.ifremer.coser.services.PublicationService; import fr.ifremer.coser.ui.common.DataHandler; +import fr.ifremer.coser.ui.control.ControlView; import fr.ifremer.coser.ui.result.SelectionAddResultDialog; import fr.ifremer.coser.ui.selection.model.OccurrenceDensitySpecyListModel; import fr.ifremer.coser.ui.util.CoserListSelectionModel; @@ -752,6 +754,19 @@ } /** + * Display lengthStructure matrix in matrixviewerpanel. + * + * @param view view + */ + public void displayLengthStructureGraph(SelectionListsView view) { + ProjectService projectService = view.getContextValue(ProjectService.class); + Project project = view.getContextValue(Project.class); + Selection selection = view.getContextValue(Selection.class); + SwingSession session = view.getContextValue(SwingSession.class); + displayLengthStructureGraph(view, session, projectService, project, selection); + } + + /** * Ajout les especes filtrées selectionnées dans la liste des especes * selectionnées. * Modified: trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx =================================================================== --- trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-12-09 14:30:24 UTC (rev 383) +++ trunk/coser-ui/src/main/java/fr/ifremer/coser/ui/selection/SelectionListsView.jaxx 2010-12-09 15:58:01 UTC (rev 384) @@ -91,7 +91,7 @@ </JPanel> </cell> <cell columns="2"> - <JButton icon="chart_bar.png" /> + <JButton icon="chart_bar.png" onActionPerformed="getHandler().displayLengthStructureGraph(this)" /> </cell> <cell /> <cell />