Example usage for org.jfree.chart ChartPanel chartChanged

List of usage examples for org.jfree.chart ChartPanel chartChanged

Introduction

In this page you can find the example usage for org.jfree.chart ChartPanel chartChanged.

Prototype

@Override
public void chartChanged(ChartChangeEvent event) 

Source Link

Document

Receives notification of changes to the chart, and redraws the chart.

Usage

From source file:statistic.graph.Controller.java

public void notify(DiagramEvent event) {
    LOGGER.entering("Controller", "notify", event);
    DiagramData data = event.getDiagram();
    if (data == null) {
        return;/*from  w ww  .j a  v  a2s . co m*/
    }
    if (event instanceof DiagramChangedEvent) {
        ChartPanel chartPanel = chartPanels.get(data);
        if (chartPanel != null) {
            if (event instanceof DiagramTitleChangedEvent) {
                chartPanel.getChart().setTitle(((DiagramTitleChangedEvent) event).getNewTitle());
            } else if (event instanceof DiagramXAxisLabelChangedEvent) {
                chartPanel.getChart().getXYPlot().getDomainAxis()
                        .setLabel(((DiagramXAxisLabelChangedEvent) event).getNewXAxisLabel());
            } else if (event instanceof DiagramYAxisLabelChangedEvent) {
                chartPanel.getChart().getXYPlot().getRangeAxis()
                        .setLabel(((DiagramYAxisLabelChangedEvent) event).getNewYAxisLabel());
            } else {
                throw new AssertionError("This should not happen.");
            }
            chartPanel.chartChanged(
                    new ChartChangeEvent(event, chartPanel.getChart(), ChartChangeEventType.GENERAL));
        }
    } else if (event instanceof DiagramSelectionChangedEvent) {
    } else {
        if (event instanceof DiagramAddedEvent) {
            if (data.getType() == DiagramType.TABLE) {
                JTable table = createTable(data);
                JScrollPane pane = new JScrollPane(table);
                pane.setPreferredSize(new Dimension(scrollPane.getWidth() / 2 - 14, 300));
                tableScrollPanes.put(data, pane);
                contentPane.add(pane);
            } else {
                ChartPanel chartPanel = createChartPanel(data);
                //chartPanel.setPreferredSize(new Dimension(scrollPane.getWidth() / 2 - 14, 300));
                chartPanels.put(data, chartPanel);
                contentPane.add(chartPanel);
            }
        } else if (event instanceof DiagramRemovedEvent) {
            if (data.getType() == DiagramType.TABLE) {
                JScrollPane pane = tableScrollPanes.remove(data);
                contentPane.remove(pane);
            } else {
                ChartPanel chartPanel = chartPanels.remove(data);
                contentPane.remove(chartPanel);
            }
        } else if (event instanceof DiagramSequenceChangedEvent) {
            DiagramData data2 = ((DiagramSequenceChangedEvent) event).getDiagram2();
            Component component1 = getComponent(data);
            LOGGER.finest("1. Komponente: " + component1);
            Component component2 = getComponent(data2);
            LOGGER.finest("2. Komponente: " + component2);
            int index = 0;
            for (Component component : contentPane.getComponents()) {
                if (component == component1) {
                    break;
                }
                index++;
            }
            LOGGER.finest("1. Komponente befindet sich an Index: " + index);
            LOGGER.finest("Entferne 2. Komponente");
            contentPane.remove(component2);
            LOGGER.finest("Fge 2. Komponent an Index " + index + " wieder ein.");
            contentPane.add(component2, index);
        } else if (event instanceof DiagramTypeChangedEvent) {
            Component component = null;
            if (chartPanels.containsKey(data)) {
                component = chartPanels.get(data);
            } else if (tableScrollPanes.containsKey(data)) {
                component = tableScrollPanes.get(data);
            }
            int index = 0;
            for (Component c : contentPane.getComponents()) {
                if (c == component) {
                    break;
                }
                index++;
            }
            contentPane.remove(component);
            if (component instanceof ChartPanel) {
                chartPanels.remove(data);
            } else if (component instanceof JScrollPane) {
                tableScrollPanes.remove(data);
            }
            if (data.getType() == DiagramType.TABLE) {
                JTable table = createTable(data);
                JScrollPane pane = new JScrollPane(table);
                pane.setPreferredSize(new Dimension(scrollPane.getWidth() / 2 - 14, 300));
                component = pane;
                tableScrollPanes.put(data, pane);
            } else {
                ChartPanel panel = createChartPanel(data);
                component = panel;
                chartPanels.put(data, panel);
            }
            contentPane.add(component, index);
        } else {
            throw new AssertionError("This should not happen.");
        }
        scrollPane.validate();
        scrollPane.repaint();
    }
}