Example usage for org.jfree.chart ChartMouseListener ChartMouseListener

List of usage examples for org.jfree.chart ChartMouseListener ChartMouseListener

Introduction

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

Prototype

ChartMouseListener

Source Link

Usage

From source file:my.electrochem.ElectrochemUI.java

public ElectrochemUI() {
    super("Electrochem App");
    initComponents();/*from   w  ww. ja  v a  2  s . c om*/

    chartPanel = createChartPanel();

    chartPanel.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent e) {
            //System.out.println(e.getEntity() + " " + e.getEntity().getArea());           
            //System.out.println("X:"+e.getTrigger().getX()+"Y:"+e.getTrigger().getY());
            //XYPlot xyPlot2 = e.getChart().getXYPlot();
            // Problem: the coordinates displayed are the one of the previously selected point !
            //System.out.println(xyPlot2.getDomainCrosshairValue() + " "
            //        + xyPlot2.getRangeCrosshairValue());

            //createLineAnn(e.getChart().getXYPlot(), x1, y1, x2, y2);
            //createLineAnn(e.getChart().getXYPlot(), x1, y1, x2, y2);
            //if (!(click)) {
            //    e.getChart().getXYPlot().clearAnnotations();
            //}

        }

        @Override
        public void chartMouseMoved(ChartMouseEvent cme) {

        }
    });

    jPanel1.add(chartPanel, BorderLayout.CENTER);
    jPanel1.validate();

}

From source file:org.mwc.debrief.sensorfusion.views.MouseClickSolutionDemo.java

/**
 * @param title/*  w ww  .  j  ava2s  .  c o  m*/
 *            the frame title.
 */
public MouseClickSolutionDemo(final String title) {
    super(title);

    final TimeSeries s1 = new TimeSeries("Series to click");
    s1.add(new Month(2, 2001), 181.8);
    s1.add(new Month(3, 2001), 167.3);
    s1.add(new Month(4, 2001), 153.8);
    s1.add(new Month(5, 2001), 167.6);
    s1.add(new Month(6, 2001), 152.8);
    s1.add(new Month(7, 2001), 148.3);
    s1.add(new Month(8, 2001), 153.9);
    s1.add(new Month(9, 2001), 142.7);
    s1.add(new Month(10, 2001), 123.2);

    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);

    final JFreeChart chart = ChartFactory.createTimeSeriesChart("[Alt]-click to switch orientation", // title
            "Time axis", // x-axis label
            "Value axis", // y-axis label
            dataset, // data
            false, // create legend?
            false, // generate tooltips?
            false // generate URLs?
    );

    //FIX IS HERE
    fixProblem(chart);

    final ChartPanel chartPanel = new ChartPanel(chart);

    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));

    chartPanel.addChartMouseListener(new ChartMouseListener() {
        public void chartMouseMoved(final ChartMouseEvent arg0) {
        }

        public void chartMouseClicked(final ChartMouseEvent arg0) {
            System.out.println("clicked on:" + arg0.getEntity());

            if (arg0.getTrigger().isAltDown()) {
                if (chart.getXYPlot().getOrientation() == PlotOrientation.HORIZONTAL)
                    chart.getXYPlot().setOrientation(PlotOrientation.VERTICAL);
                else
                    chart.getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);
            }
        }
    });
    setContentPane(chartPanel);
}

From source file:scheduler.benchmarker.manager.CreateCombinedSplineChart.java

public ChartPanel createChartPanel() {
    XYDataset dataset = createDataset();
    NumberAxis numberaxis = new NumberAxis("EMAILS");
    numberaxis.setAutoRangeIncludesZero(true);
    numberaxis.setRange(0, dataset.getItemCount(1));
    numberaxis.setVisible(false);/*from   w  w w .j  a va2  s. com*/
    NumberAxis numberaxis1 = new NumberAxis("TIME CONSUMED");
    numberaxis.setAutoRangeIncludesZero(false);
    XYSplineRenderer xysplinerenderer = new XYSplineRenderer();
    XYPlot xyplot = new XYPlot(dataset, numberaxis, numberaxis1, xysplinerenderer);
    xyplot.setBackgroundPaint(Color.lightGray);
    xyplot.setDomainGridlinePaint(Color.white);
    xyplot.setRangeGridlinePaint(Color.white);
    xyplot.setFixedLegendItems(null);
    JFreeChart jfreechart = new JFreeChart(
            "PLAN VALUES FOR '" + sName[0] + "' AND '" + sName[1] + "' SCHEDULERS",
            new Font(Font.SANS_SERIF, Font.PLAIN, 11), xyplot, true);
    chartPanel = new ChartPanel(jfreechart, true);

    //Creating listener
    chartPanel.addChartMouseListener(new ChartMouseListener() {
        @Override
        public void chartMouseClicked(ChartMouseEvent e) {
            ChartEntity entity = e.getEntity();
            if (entity != null && (entity instanceof XYItemEntity)) {
                XYItemEntity item = (XYItemEntity) entity;

                String chartTitle = "COMPARISON OF '" + sName[0] + "' AND '" + sName[1]
                        + "' BEHAVIOUR FOR EMAIL '"
                        + dataSource.get(0).getPlanningResult().get(item.getItem()).getEmailName() + "'";
                createSubChart(new CreateCombinedCategoryPlot(
                        new PlanningResult[] { dataSource.get(0).getPlanningResult().get(item.getItem()),
                                dataSource.get(1).getPlanningResult().get(item.getItem()) },
                        pluginColor, chartTitle, new String[] { dataSource.get(0).getSchedulerUsed(),
                                dataSource.get(1).getSchedulerUsed() }).createChartPanel());
            }
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent e) {
            //DO NOTHING
        }

    });
    return chartPanel;
}

From source file:org.jfree.chart.demo.OverlaidBarChartDemo1.java

public static JPanel createDemoPanel() {
    JFreeChart jfreechart = createChart();
    ChartPanel chartpanel = new ChartPanel(jfreechart);
    chartpanel.addChartMouseListener(new ChartMouseListener() {

        public void chartMouseClicked(ChartMouseEvent chartmouseevent) {
            System.out.println(chartmouseevent.getEntity());
        }/*from  w  w  w. j ava 2s .  c o m*/

        public void chartMouseMoved(ChartMouseEvent chartmouseevent) {
        }

    });
    return chartpanel;
}

From source file:slash.navigation.converter.gui.profileview.ProfileView.java

public void initialize(PositionsModel positionsModel, final PositionsSelectionModel positionsSelectionModel,
        final UnitSystemModel unitSystemModel, final ProfileModeModel profileModeModel) {
    this.positionsModel = positionsModel;
    PatchedXYSeries series = new PatchedXYSeries("Profile");
    this.profileModel = new ProfileModel(positionsModel, series, unitSystemModel.getUnitSystem(),
            profileModeModel.getProfileMode());
    XYSeriesCollection dataset = new XYSeriesCollection(series);

    unitSystemModel.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            setUnitSystem(unitSystemModel.getUnitSystem());
        }/*from   w  ww.  j  a v a  2s.  c  o  m*/
    });
    profileModeModel.addChangeListener(new ChangeListener() {
        public void stateChanged(ChangeEvent e) {
            setProfileMode(profileModeModel.getProfileMode());
        }
    });

    JFreeChart chart = createChart(dataset);
    plot = createPlot(chart);

    ActionManager actionManager = Application.getInstance().getContext().getActionManager();
    for (ProfileMode mode : ProfileMode.values())
        actionManager.register("show-" + mode.name().toLowerCase(),
                new ToggleProfileModeAction(profileModeModel, mode));
    // since JFreeChart is not very nice to extensions - constructors calling protected methods... ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD
    LazyToolTipChartPanel.profileModeModel = profileModeModel;
    chartPanel = new LazyToolTipChartPanel(chart, false, true, true, true, true);
    chartPanel.addChartMouseListener(new ChartMouseListener() {
        public void chartMouseClicked(ChartMouseEvent e) {
            ChartEntity entity = e.getEntity();
            if (!(entity instanceof XYItemEntity))
                return;
            int row = ((XYItemEntity) entity).getItem();
            positionsSelectionModel.setSelectedPositions(new int[] { row }, true);
        }

        public void chartMouseMoved(ChartMouseEvent e) {
        }
    });
    chartPanel.setMouseWheelEnabled(true);

    updateAxis();
}

From source file:net.sourceforge.entrainer.jfreechart.UnitChart.java

private void init() {
    chart = new JFreeChart(getXYPlot());
    chartPanel = new ChartPanel(chart);

    chartPanel.addChartMouseListener(new ChartMouseListener() {
        public void chartMouseClicked(ChartMouseEvent event) {
        }/* w  w  w  .j ava2s.  c o m*/

        public void chartMouseMoved(ChartMouseEvent event) {
            if (event.getEntity() != null
                    && (currentEntity == null || !currentEntity.equals(event.getEntity()))) {
                if (event.getEntity() instanceof XYItemEntity) {
                    showPopup((XYItemEntity) event.getEntity());
                }
            } else if (event.getEntity() == null && timer != null) {
                timer.dismiss();
                timer = null;
                currentEntity = null;
            }
        }
    });

    getContentPane().add(chartPanel);

    addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
            if (e.isControlDown() && e.getClickCount() == 1) {
                openBrowser(getLocalDocAddress());
            }
        }
    });
}

From source file:ec.ui.view.RevisionSaSeriesView.java

/**
 * Constructs a new view/*  w  w w. j a  va 2 s. co  m*/
 */
public RevisionSaSeriesView() {
    setLayout(new BorderLayout());

    sRenderer = new XYLineAndShapeRenderer();
    sRenderer.setBaseShapesVisible(false);
    //sRenderer.setSeriesStroke(1, new BasicStroke(0.75f, 1, 1, 1.0f, new float[]{2f, 3f}, 0.0f));
    sRenderer.setBasePaint(themeSupport.getLineColor(ColorScheme.KnownColor.RED));

    revRenderer = new XYLineAndShapeRenderer(false, true);

    mainChart = createMainChart();

    chartpanel_ = new JChartPanel(ChartFactory.createLineChart(null, null, null, null, PlotOrientation.VERTICAL,
            false, false, false));

    documentpanel_ = ComponentFactory.getDefault().newHtmlView();

    JSplitPane splitpane = NbComponents.newJSplitPane(JSplitPane.VERTICAL_SPLIT, chartpanel_,
            NbComponents.newJScrollPane(documentpanel_));
    splitpane.setDividerLocation(0.5);
    splitpane.setResizeWeight(.5);

    popup = new ChartPopup(null, false);

    chartpanel_.addChartMouseListener(new ChartMouseListener() {
        @Override
        public void chartMouseClicked(ChartMouseEvent e) {
            if (lastIndexSelected != -1) {
                revRenderer.setSeriesShapesFilled(lastIndexSelected, false);
            }
            if (e.getEntity() != null) {
                if (e.getEntity() instanceof XYItemEntity) {
                    XYItemEntity item = (XYItemEntity) e.getEntity();
                    if (item.getDataset().equals(mainChart.getXYPlot().getDataset(REV_INDEX))) {
                        int i = item.getSeriesIndex();

                        revRenderer.setSeriesShape(i, new Ellipse2D.Double(-3, -3, 6, 6));
                        revRenderer.setSeriesShapesFilled(i, true);
                        revRenderer.setSeriesPaint(i, themeSupport.getLineColor(ColorScheme.KnownColor.BLUE));

                        lastIndexSelected = i;

                        showRevisionPopup(e);
                    }
                }
            }
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent cme) {
        }
    });

    chartpanel_.addPropertyChangeListener(new PropertyChangeListener() {
        @Override
        public void propertyChange(PropertyChangeEvent evt) {
            if (evt.getPropertyName().equals(JChartPanel.ZOOM_SELECTION_CHANGED)) {
                showSelectionPopup((Rectangle2D) evt.getNewValue());
            }
        }
    });

    this.add(splitpane, BorderLayout.CENTER);
    splitpane.setResizeWeight(0.5);

    onColorSchemeChange();
}

From source file:vteaexploration.plottools.panels.XYChartPanel.java

public void process(int x, int y, int l, String xText, String yText, String lText) {

    chartPanel = createChart(x, y, l, xText, yText, lText, imageGateOutline);
    JFrame f = new JFrame(title);
    f.setTitle(title);/*from  w  w  w  .  j a v  a2 s. co m*/
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setLayout(new BorderLayout(0, 5));
    f.add(chartPanel, BorderLayout.CENTER);

    chartPanel.setOpaque(false);
    chartPanel.setMouseWheelEnabled(false);
    chartPanel.setDomainZoomable(false);
    chartPanel.setRangeZoomable(false);
    chartPanel.setPreferredSize(new Dimension(550, 485));
    chartPanel.setBackground(new Color(0, 0, 0, 0));
    chartPanel.revalidate();
    chartPanel.repaint();
    //chartPanel.set

    chartPanel.addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent cme) {
            chartPanel.getParent().repaint();
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent cme) {
        }
    });

    chartPanel.addMouseMotionListener(new MouseMotionListener() {

        @Override
        public void mouseDragged(MouseEvent e) {
            chartPanel.getParent().repaint();

        }

        @Override
        public void mouseMoved(MouseEvent e) {
            chartPanel.getParent().repaint();
        }
    });

    chartPanel.addMouseListener(new MouseListener() {

        @Override
        public void mouseClicked(MouseEvent e) {
        }

        @Override
        public void mousePressed(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void mouseReleased(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void mouseEntered(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

        @Override
        public void mouseExited(MouseEvent e) {
            //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
        }

    });
    f.pack();
}

From source file:com.choicemaker.cm.modelmaker.gui.utils.HistoChartPanel.java

public HistoChartPanel(final JFreeChart chart, boolean properties, boolean save, boolean print, boolean zoom,
        boolean tooltips, final ModelMaker modelMaker) {
    super(chart, properties, save, print, zoom, tooltips);
    this.modelMaker = modelMaker;
    // horizontal zoom doesn't work, by setting false we don't get bogus menu item
    //      setHorizontalZoom(false);
    //      setVerticalZoom(true);
    final JCheckBoxMenuItem logYScale = new JCheckBoxMenuItem(
            ChoiceMakerCoreMessages.m.formatMessage("train.gui.modelmaker.panel.test.logscale.y"));
    logYScale.addItemListener(new ItemListener() {
        public void itemStateChanged(ItemEvent e) {
            CategoryPlot p = (CategoryPlot) chart.getPlot();
            Axis oldAxis = p.getRangeAxis();
            if (logYScale.isSelected()) {
                LogarithmicAxis yAxis = new LogarithmicAxis(ChoiceMakerCoreMessages.m
                        .formatMessage("train.gui.modelmaker.panel.histogram.cm.numpairs"));
                yAxis.setStrictValuesFlag(false);
                p.setRangeAxis(yAxis);//from  w ww .  j  a  va2  s .co  m
            } else {
                p.setRangeAxis(new NumberAxis(ChoiceMakerCoreMessages.m
                        .formatMessage("train.gui.modelmaker.panel.histogram.cm.numpairs")));
            }
            oldAxis.setPlot(null);
            chartChanged(new ChartChangeEvent(this));
        }
    });
    JPopupMenu popup = getPopupMenu();
    popup.addSeparator();
    popup.add(logYScale);
    popup.addSeparator();
    select = new JMenu("Select");
    final JMenuItem all = new JMenuItem("All");
    select.add(all);
    final JMenuItem cmDiffer = new JMenuItem("Human marked differ");
    select.add(cmDiffer);
    final JMenuItem cmHold = new JMenuItem("Human marked hold");
    select.add(cmHold);
    final JMenuItem cmMatch = new JMenuItem("Human marked match");
    select.add(cmMatch);
    ActionListener l = new ActionListener() {
        public void actionPerformed(ActionEvent ev) {
            ListeningMarkedRecordPairFilter filter = modelMaker.getFilter();
            filter.reset();
            filter.setFromPercentage(rangeFrom);
            filter.setToPercentage(rangeTo);
            Object src = ev.getSource();
            if (src != all) {
                boolean[] b = new boolean[Decision.NUM_DECISIONS];
                if (src == cmDiffer) {
                    b[Decision.DIFFER.toInt()] = true;
                } else if (src == cmHold) {
                    b[Decision.HOLD.toInt()] = true;
                } else if (src == cmMatch) {
                    b[Decision.MATCH.toInt()] = true;
                }
                filter.setHumanDecision(b);
            }
            modelMaker.filterMarkedRecordPairList();
        }
    };
    all.addActionListener(l);
    cmDiffer.addActionListener(l);
    cmHold.addActionListener(l);
    cmMatch.addActionListener(l);
    popup.add(select);
    addChartMouseListener(new ChartMouseListener() {
        public void chartMouseClicked(ChartMouseEvent evt) {
            ChartEntity e = evt.getEntity();
            if (e instanceof CategoryItemEntity) {
                CategoryItemEntity c = (CategoryItemEntity) e;
                int cat = c.getCategoryIndex();
                HistoCategoryDataset data = (HistoCategoryDataset) ((CategoryPlot) getChart().getPlot())
                        .getDataset();
                int len = data.getColumnCount();
                float step = 1f / len;
                rangeFrom = cat * step;
                rangeTo = rangeFrom + step;
                ListeningMarkedRecordPairFilter filter = modelMaker.getFilter();
                filter.reset();
                filter.setFromPercentage(rangeFrom);
                filter.setToPercentage(rangeTo);
                boolean[] b = new boolean[Decision.NUM_DECISIONS];
                int series = c.getSeries();
                if (data.isIncludeHolds() && series != 0) {
                    if (series == 1) {
                        series = 2;
                    } else {
                        series = 1;
                    }
                }
                b[series] = true;
                filter.setHumanDecision(b);
                modelMaker.filterMarkedRecordPairList();

            }
        }

        public void chartMouseMoved(ChartMouseEvent arg0) {
        }
    });
}

From source file:tw.edu.sju.ee.eea.module.iepe.file.IepeVoltageElement.java

public IepeVoltageElement(Lookup lkp) {
    info = lkp.lookup(IepeDataInfo.class);
    assert info != null;

    index = 0;//from   ww w.j a va  2  s.  c o  m
    length = 10000;

    cursor = new ValueMarker(0);
    cursor.setPaint(Color.black);
    initComponents();
    scrollBar.setMaximum(total);
    scrollLength();
    ((ChartPanel) chartPanel).addChartMouseListener(new ChartMouseListener() {

        @Override
        public void chartMouseClicked(ChartMouseEvent event) {
            chartMouseClicked = true;
        }

        @Override
        public void chartMouseMoved(ChartMouseEvent event) {
        }
    });
    scrollBar.addAdjustmentListener(new AdjustmentListener() {

        @Override
        public void adjustmentValueChanged(AdjustmentEvent e) {
            if (chartScroll) {
                index = e.getAdjustable().getValue();
                length = e.getAdjustable().getVisibleAmount();
                repaintChart();
            }
        }
    });
    info.getCursor().addIepeCursorListener(new IepeCursorListener() {

        @Override
        public void cursorMoved(IepeCursorEvent e) {
            cursor.setValue(e.getTime());
            double tmp = cursor.getValue() - index;
            if (tmp < 0 || tmp > length) {
                index = (int) (cursor.getValue() - (length * 0.05));
                scrollIndex();
            }
        }
    });
}