Example usage for org.jfree.chart.event ChartChangeEventType GENERAL

List of usage examples for org.jfree.chart.event ChartChangeEventType GENERAL

Introduction

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

Prototype

ChartChangeEventType GENERAL

To view the source code for org.jfree.chart.event ChartChangeEventType GENERAL.

Click Source Link

Document

GENERAL.

Usage

From source file:org.yccheok.jstock.gui.charting.InvestmentFlowChartJDialog.java

private void addChangeListener(ChartPanel chartPanel) {
    chartPanel.getChart().addChangeListener(new ChartChangeListener() {
        @Override//www .j a  v a  2  s . c  o  m
        public void chartChanged(ChartChangeEvent event) {
            if (event.getType() == ChartChangeEventType.GENERAL) {
                // Sequence is important. We will use invest information box as master.
                // ROI information box will be adjusted accordingly.
                investmentFlowLayerUI.updateInvestPoint();
                investmentFlowLayerUI.updateROIPoint();
            }
        }
    });
}

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 w w  .j a  v a 2 s  .  c  o 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();
    }
}

From source file:com.android.ddmuilib.log.event.EventDisplay.java

Control createCompositeChart(final Composite parent, EventLogParser logParser, String title) {
    mChart = ChartFactory.createTimeSeriesChart(null, null /* timeAxisLabel */, null /* valueAxisLabel */,
            null, /* dataset. set below */
            true /* legend */, false /* tooltips */, false /* urls */);

    // get the font to make a proper title. We need to convert the swt font,
    // into an awt font.
    Font f = parent.getFont();/* ww  w.j av a  2 s  .  c  o m*/
    FontData[] fData = f.getFontData();

    // event though on Mac OS there could be more than one fontData, we'll only use
    // the first one.
    FontData firstFontData = fData[0];

    java.awt.Font awtFont = SWTUtils.toAwtFont(parent.getDisplay(), firstFontData, true /* ensureSameSize */);

    mChart.setTitle(new TextTitle(title, awtFont));

    final XYPlot xyPlot = mChart.getXYPlot();
    xyPlot.setRangeCrosshairVisible(true);
    xyPlot.setRangeCrosshairLockedOnData(true);
    xyPlot.setDomainCrosshairVisible(true);
    xyPlot.setDomainCrosshairLockedOnData(true);

    mChart.addChangeListener(new ChartChangeListener() {
        @Override
        public void chartChanged(ChartChangeEvent event) {
            ChartChangeEventType type = event.getType();
            if (type == ChartChangeEventType.GENERAL) {
                // because the value we need (rangeCrosshair and domainCrosshair) are
                // updated on the draw, but the notification happens before the draw,
                // we process the click in a future runnable!
                parent.getDisplay().asyncExec(new Runnable() {
                    @Override
                    public void run() {
                        processClick(xyPlot);
                    }
                });
            }
        }
    });

    mChartComposite = new ChartComposite(parent, SWT.BORDER, mChart, ChartComposite.DEFAULT_WIDTH,
            ChartComposite.DEFAULT_HEIGHT, ChartComposite.DEFAULT_MINIMUM_DRAW_WIDTH,
            ChartComposite.DEFAULT_MINIMUM_DRAW_HEIGHT, 3000, // max draw width. We don't want it to zoom, so we put a big number
            3000, // max draw height. We don't want it to zoom, so we put a big number
            true, // off-screen buffer
            true, // properties
            true, // save
            true, // print
            true, // zoom
            true); // tooltips

    mChartComposite.addDisposeListener(new DisposeListener() {
        @Override
        public void widgetDisposed(DisposeEvent e) {
            mValueTypeDataSetMap.clear();
            mDataSetCount = 0;
            mOccurrenceDataSet = null;
            mChart = null;
            mChartComposite = null;
            mValueDescriptorSeriesMap.clear();
            mOcurrenceDescriptorSeriesMap.clear();
        }
    });

    return mChartComposite;

}

From source file:org.yccheok.jstock.gui.charting.ChartJDialog.java

/**
 * Returns chart change listener, which will be responsible for handling
 * zooming event./*from w  w  w.  j a v  a  2s.c  o m*/
 *
 * @return chart change listener, which will be responsible for handling
 * zooming event
 */
private ChartChangeListener getChartChangeListner() {
    return new ChartChangeListener() {
        @Override
        public void chartChanged(ChartChangeEvent event) {
            // Is weird. This works well for zoom-in. When we add new CCI or
            // RIS. This event function will be triggered too. However, the
            // returned draw area will always be the old draw area, unless
            // you move your move over.
            // Even I try to capture event.getType() == ChartChangeEventType.NEW_DATASET
            // also doesn't work.
            if (event.getType() == ChartChangeEventType.GENERAL) {
                ChartJDialog.this.chartLayerUI.updateTraceInfos();
                // Re-calculating high low value.
                ChartJDialog.this.updateHighLowJLabels();
            }
        }
    };
}