Example usage for org.jfree.chart.event ChartChangeEvent ChartChangeEvent

List of usage examples for org.jfree.chart.event ChartChangeEvent ChartChangeEvent

Introduction

In this page you can find the example usage for org.jfree.chart.event ChartChangeEvent ChartChangeEvent.

Prototype

public ChartChangeEvent(Object source, JFreeChart chart, ChartChangeEventType type) 

Source Link

Document

Creates a new chart change event.

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  ww  w  .  java2s .c om*/
    }
    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();
    }
}