This is an automated email from the git hooks/post-receive script. New commit to branch feature/wloLikeFrequencyScreen#5128 in repository tutti. See http://git.codelutin.com/tutti.git commit 4ae2ba380088259ac02abf64b438278fcfc91343 Author: Kevin Morin <morin@codelutin.com> Date: Thu Oct 23 10:49:24 2014 +0200 refs #6000 [BIGFIN] Idée d'amélioration : graphique dans l'écran mensuration et liste enregistrement : s'imprégner de l'application android WLO --- .../frequency/SpeciesFrequencyUIHandler.java | 188 +++++++++++---------- 1 file changed, 103 insertions(+), 85 deletions(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java index 96aceed..6d8be0f 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/frequency/SpeciesFrequencyUIHandler.java @@ -356,26 +356,26 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci if (componentToFocus != null) { componentToFocus.grabFocus(); } - - boolean rafaleMode = newValue == FrequencyConfigurationMode.RAFALE; - SpeciesFrequencyUI ui = getUI(); - JSplitPane firstSplitPane = ui.getFirstSplitPane(); - JSplitPane secondSplitPane = ui.getSecondSplitPane(); - - int lastDividerLocation = secondSplitPane.getLastDividerLocation(); - if (lastDividerLocation == 0) { - lastDividerLocation = 200; - } - secondSplitPane.setDividerLocation(rafaleMode ? lastDividerLocation : 0); - secondSplitPane.setDividerSize(rafaleMode ? firstSplitPane.getDividerSize() : 0); - - ui.getLogsScrollPane().setVisible(rafaleMode); + updateLogVisibility(); } } ); } }); + getContext().addPropertyChangeListener(TuttiUIContext.PROPERTY_ICHTYOMETER_CONNECTED, new PropertyChangeListener() { + @Override + public void propertyChange(PropertyChangeEvent evt) { + SwingUtilities.invokeLater( + new Runnable() { + @Override + public void run() { + updateLogVisibility(); + } + }); + } + }); + // init histogram final XYSeries series = initHistogram(ui, step); @@ -448,59 +448,6 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } - private XYSeries initHistogram(SpeciesFrequencyUI ui, float step) { - final XYSeries series = new XYSeries("", true, false); - dataset = new XYSeriesCollection(series); - dataset.setIntervalPositionFactor(0); - dataset.setIntervalWidth(step); - - JFreeChart chart = ChartFactory.createXYBarChart(null, - t("tutti.editSpeciesFrequencies.table.header.lengthStep"), - false, - t("tutti.editSpeciesFrequencies.table.header.number"), - dataset); - chart.clearSubtitles(); - chart.getXYPlot().getRenderer().setSeriesPaint(0, getConfig().getColorComputedWeights()); - - final ChartPanel chartPanel = new ChartPanel(chart); - chartPanel.setDomainZoomable(false); - chartPanel.setMouseZoomable(false); - chartPanel.setPopupMenu(null); - - JPanel histogramPanel = ui.getHistogramPanel(); - histogramPanel.add(chartPanel, BorderLayout.CENTER); - return series; - } - - private void initLogTable(SpeciesFrequencyUI ui) { - JXTable logTable = ui.getLogsTable(); - - // create log table column model - DefaultTableColumnModelExt logColumnModel = new DefaultTableColumnModelExt(); - - { // Date - addColumnToModel(logColumnModel, - SpeciesFrequencyLogCellComponent.newEditor(this), - SpeciesFrequencyLogCellComponent.newRender(), - SpeciesFrequencyLogsTableModel.LABEL); - } - - // create log table model - SpeciesFrequencyLogsTableModel logTableModel = new SpeciesFrequencyLogsTableModel(logColumnModel); - logTableModel.setRows(new ArrayList<SpeciesFrequencyLogRowModel>()); - - logTable.setModel(logTableModel); - logTable.setColumnModel(logColumnModel); - - // by default do not authorize to change column orders - logTable.getTableHeader().setReorderingAllowed(false); - Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter( - HighlightPredicate.ODD, -// Color.RED); - getConfig().getColorAlternateRow()); - logTable.addHighlighter(evenHighlighter); - } - @Override protected JComponent getComponentToFocus() { FrequencyConfigurationMode configurationMode = getModel().getConfigurationMode(); @@ -892,6 +839,28 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci } } + /** + * Decrement the frequency of the lengthstep of the row + * @param logRow + */ + public void decrementLengthStep(SpeciesFrequencyLogRowModel logRow) { + if (logRow != null) { + SpeciesFrequencyTableModel tableModel = getTableModel(); + SpeciesFrequencyRowModel speciesFrequencyRowModel = tableModel.getRowCache().get(logRow.getLengthStep()); + if (speciesFrequencyRowModel != null) { + Integer number = speciesFrequencyRowModel.getNumber(); + if (number != null && number > 0) { + speciesFrequencyRowModel.setNumber(number - 1); + tableModel.fireTableDataChanged(); + } + } + + SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); + int index = logsTableModel.getRowIndex(logRow); + logsTableModel.removeRow(index); + } + } + //------------------------------------------------------------------------// //-- Internal methods --// //------------------------------------------------------------------------// @@ -1048,25 +1017,74 @@ public class SpeciesFrequencyUIHandler extends AbstractTuttiTableUIHandler<Speci return precision; } - /** - * Decrement the frequency of the lengthstep of the row - * @param logRow - */ - public void decrementLengthStep(SpeciesFrequencyLogRowModel logRow) { - if (logRow != null) { - SpeciesFrequencyTableModel tableModel = getTableModel(); - SpeciesFrequencyRowModel speciesFrequencyRowModel = tableModel.getRowCache().get(logRow.getLengthStep()); - if (speciesFrequencyRowModel != null) { - Integer number = speciesFrequencyRowModel.getNumber(); - if (number != null && number > 0) { - speciesFrequencyRowModel.setNumber(number - 1); - tableModel.fireTableDataChanged(); - } - } + protected void updateLogVisibility() { - SpeciesFrequencyLogsTableModel logsTableModel = (SpeciesFrequencyLogsTableModel) getUI().getLogsTable().getModel(); - int index = logsTableModel.getRowIndex(logRow); - logsTableModel.removeRow(index); + boolean logVisible = getModel().isRafaleMode() || getContext().isIchtyometerConnected(); + SpeciesFrequencyUI ui = getUI(); + JSplitPane firstSplitPane = ui.getFirstSplitPane(); + JSplitPane secondSplitPane = ui.getSecondSplitPane(); + + int lastDividerLocation = secondSplitPane.getLastDividerLocation(); + if (lastDividerLocation == 0) { + lastDividerLocation = 200; + } + secondSplitPane.setDividerLocation(logVisible ? lastDividerLocation : 0); + secondSplitPane.setDividerSize(logVisible ? firstSplitPane.getDividerSize() : 0); + + ui.getLogsScrollPane().setVisible(logVisible); + } + + protected XYSeries initHistogram(SpeciesFrequencyUI ui, float step) { + final XYSeries series = new XYSeries("", true, false); + dataset = new XYSeriesCollection(series); + dataset.setIntervalPositionFactor(0); + dataset.setIntervalWidth(step); + + JFreeChart chart = ChartFactory.createXYBarChart(null, + t("tutti.editSpeciesFrequencies.table.header.lengthStep"), + false, + t("tutti.editSpeciesFrequencies.table.header.number"), + dataset); + chart.clearSubtitles(); + chart.getXYPlot().getRenderer().setSeriesPaint(0, getConfig().getColorComputedWeights()); + + final ChartPanel chartPanel = new ChartPanel(chart); + chartPanel.setDomainZoomable(false); + chartPanel.setMouseZoomable(false); + chartPanel.setPopupMenu(null); + + JPanel histogramPanel = ui.getHistogramPanel(); + histogramPanel.add(chartPanel, BorderLayout.CENTER); + return series; + } + + protected void initLogTable(SpeciesFrequencyUI ui) { + JXTable logTable = ui.getLogsTable(); + + // create log table column model + DefaultTableColumnModelExt logColumnModel = new DefaultTableColumnModelExt(); + + { // Date + addColumnToModel(logColumnModel, + SpeciesFrequencyLogCellComponent.newEditor(this), + SpeciesFrequencyLogCellComponent.newRender(), + SpeciesFrequencyLogsTableModel.LABEL); } + + // create log table model + SpeciesFrequencyLogsTableModel logTableModel = new SpeciesFrequencyLogsTableModel(logColumnModel); + logTableModel.setRows(new ArrayList<SpeciesFrequencyLogRowModel>()); + + logTable.setModel(logTableModel); + logTable.setColumnModel(logColumnModel); + + // by default do not authorize to change column orders + logTable.getTableHeader().setReorderingAllowed(false); + Highlighter evenHighlighter = TuttiUIUtil.newBackgroundColorHighlighter( + HighlightPredicate.ODD, +// Color.RED); + getConfig().getColorAlternateRow()); + logTable.addHighlighter(evenHighlighter); } + } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.