Example usage for org.jfree.chart.entity EntityCollection getEntity

List of usage examples for org.jfree.chart.entity EntityCollection getEntity

Introduction

In this page you can find the example usage for org.jfree.chart.entity EntityCollection getEntity.

Prototype

public ChartEntity getEntity(double x, double y);

Source Link

Document

Returns an entity whose area contains the specified point.

Usage

From source file:org.jfree.experimental.chart.swt.ChartComposite.java

public void mouseDown(MouseEvent event) {

    Rectangle scaledDataArea = getScreenDataArea(event.x, event.y);
    if (scaledDataArea == null)
        return;/*  w  w w  . j  a  v  a 2 s  .  co  m*/
    this.zoomPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
    int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    int y = (int) ((event.y - getClientArea().y) / this.scaleY);

    this.anchor = new Point2D.Double(x, y);
    this.chart.setNotify(true); // force a redraw
    this.canvas.redraw();

    // new entity code
    ChartEntity entity = null;
    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse down event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseClicked(chartEvent);
    }
}

From source file:org.gumtree.vis.hist2d.Hist2DPanel.java

/**
 * Handles a 'mouse dragged' event.//from   w  w  w  .j  av  a2 s .  c om
 *
 * @param e  the mouse event.
 */
public void mouseDragged(MouseEvent e) {

    setHorizontalTraceLocation(e.getX());
    setVerticalTraceLocation(e.getY());

    Insets insets = getInsets();
    int x = (int) ((e.getX() - insets.left) / getScaleX());
    int y = (int) ((e.getY() - insets.top) / getScaleY());

    EntityCollection entities = null;
    ChartEntity entity = null;
    if (getChartRenderingInfo() != null) {
        entities = getChartRenderingInfo().getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }
    if (entity instanceof XYItemEntity) {
        IDataset dataset = (IDataset) ((XYItemEntity) entity).getDataset();
        int item = ((XYItemEntity) entity).getItem();
        setChartX(dataset.getXValue(0, item));
        setChartY(dataset.getYValue(0, item));
        setChartZ(((XYZDataset) dataset).getZValue(0, item));
    }

    //        if (isMaskingEnabled() && (e.getModifiers() & maskingKeyMask) != 0) {
    if (isMaskingEnabled()) {
        int cursorType = findCursorOnSelectedItem(e.getX(), e.getY());
        setCursor(Cursor.getPredefinedCursor(cursorType));
    } else if (getCursor() != defaultCursor) {
        setCursor(defaultCursor);
    }

    // we can only generate events if the panel's chart is not null
    // (see bug report 1556951)
    Object[] listeners = getListeners(ChartMouseListener.class);
    if (getChart() != null) {
        XYZChartMouseEvent event = new XYZChartMouseEvent(getChart(), e, entity);
        event.setXYZ(getChartX(), getChartY(), getChartZ());
        for (int i = listeners.length - 1; i >= 0; i -= 1) {
            ((ChartMouseListener) listeners[i]).chartMouseMoved(event);
        }
    }
    if (getMaskDragIndicator() != Cursor.DEFAULT_CURSOR && getSelectedMask() != null
            && (e.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
        changeSelectedMask(e, entities);
    } else if (isMaskingEnabled() && (e.getModifiers() & maskingKeyMask) != 0) {
        makeNewMask(e, entities);
    } else {
        super.mouseDragged(e);
    }
}

From source file:org.jfree.experimental.chart.swt.ChartComposite.java

public void mouseMove(MouseEvent event) {

    // handle axis trace
    if (this.horizontalAxisTrace || this.verticalAxisTrace) {
        this.horizontalTraceLineY = event.y;
        this.verticalTraceLineX = event.x;
        this.canvas.redraw();
    }//from w w w  .ja v  a 2  s.c  o m

    // handle tool tips in a simple way
    if (this.displayToolTips) {
        String s = getToolTipText(event);
        if (s == null && this.canvas.getToolTipText() != null
                || s != null && !s.equals(this.canvas.getToolTipText()))
            this.canvas.setToolTipText(s);
    }

    // handle zoom box
    boolean hZoom, vZoom;
    if (this.zoomPoint != null) {
        Rectangle scaledDataArea = getScreenDataArea(this.zoomPoint.x, this.zoomPoint.y);
        org.eclipse.swt.graphics.Point movingPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
        if (this.orientation == PlotOrientation.HORIZONTAL) {
            hZoom = this.rangeZoomable;
            vZoom = this.domainZoomable;
        } else {
            hZoom = this.domainZoomable;
            vZoom = this.rangeZoomable;
        }
        if (hZoom && vZoom) {
            // selected rectangle shouldn't extend outside the data area...
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, this.zoomPoint.y,
                    movingPoint.x - this.zoomPoint.x, movingPoint.y - this.zoomPoint.y);
        } else if (hZoom) {
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, scaledDataArea.y,
                    movingPoint.x - this.zoomPoint.x, scaledDataArea.height);
        } else if (vZoom) {
            int ymax = Math.max(movingPoint.y, scaledDataArea.y);
            this.zoomRectangle = new Rectangle(scaledDataArea.x, this.zoomPoint.y, scaledDataArea.width,
                    ymax - this.zoomPoint.y);
        }
        this.canvas.redraw();
    }

    // new entity code
    ChartEntity entity = null;
    int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    int y = (int) ((event.y - getClientArea().y) / this.scaleY);

    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse move event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseMoved(chartEvent);
    }
}

From source file:com.munch.exchange.ExchangeChartComposite.java

/**
 * Handles a mouse down event.//from w ww . ja  va 2s. c o m
 *
 * @param event  the event.
 */
public void mouseDown(MouseEvent event) {

    Rectangle scaledDataArea = getScreenDataArea(event.x, event.y);
    if (scaledDataArea == null)
        return;
    this.zoomPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
    int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    int y = (int) ((event.y - getClientArea().y) / this.scaleY);

    this.anchor = new Point2D.Double(x, y);
    this.chart.setNotify(true); // force a redraw
    this.canvas.redraw();

    // new entity code
    ChartEntity entity = null;
    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse down event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseClicked(chartEvent);
    }
}

From source file:org.gumtree.vis.plot1d.Plot1DPanel.java

/**
 * Receives notification of mouse clicks on the panel. These are
 * translated and passed on to any registered {@link ChartMouseListener}s.
 *
 * @param event  Information about the mouse event.
 */// www.j a va  2s .  com
@Override
public void mouseClicked(MouseEvent event) {

    Insets insets = getInsets();
    int x = (int) ((event.getX() - insets.left) / getScaleX());
    int y = (int) ((event.getY() - insets.top) / getScaleY());

    setAnchor(new Point2D.Double(x, y));
    if (getChart() == null) {
        return;
    }
    //        getChart().setNotify(true);  // force a redraw
    // new entity code...
    //        if (listeners.length == 0) {
    //            return;
    //        }

    //        if ((event.getModifiers() & maskingSelectionMask) != 0) {
    if (isInternalLegendEnabled) {
        Rectangle2D screenArea = getScreenDataArea();
        Rectangle2D legendArea = new Rectangle2D.Double(screenArea.getMaxX() - internalLegendSetup.getMinX(),
                screenArea.getMinY() + internalLegendSetup.getMinY(), internalLegendSetup.getWidth(),
                internalLegendSetup.getHeight());
        if (legendArea.contains(event.getPoint())) {
            selectInternalLegend(true);
            selectMask(Double.NaN, Double.NaN);
            repaint();
            return;
        } else {
            selectInternalLegend(false);
        }
    }
    if (!isTextInputEnabled() && (event.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
        selectMask(ChartMaskingUtilities.translateScreenX(x, getScreenDataArea(), getChart()), Double.NaN);
        repaint();
    }
    if ((event.getModifiers() & seriesSelectionEventMask) == 0) {
        if (getSelectedMask() != null && (event.getModifiers() & MouseEvent.BUTTON1_MASK) != 0
                && !getSelectedMask().getRange()
                        .contains(ChartMaskingUtilities.translateScreenX(x, getScreenDataArea(), getChart()))) {
            selectMask(Double.NaN, Double.NaN);
        }
        repaint();
    } else if (!isTextInputEnabled()) {
        selectMask(ChartMaskingUtilities.translateScreenX(x, getScreenDataArea(), getChart()), Double.NaN);
        repaint();
    }

    ChartEntity entity = null;
    if (getChartRenderingInfo() != null) {
        EntityCollection entities = getChartRenderingInfo().getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
            if (entity instanceof XYItemEntity) {
                XYItemEntity xyEntity = (XYItemEntity) entity;
                //                   XYDataset dataset = xyEntity.getDataset();
                //                   int item = ((XYItemEntity) entity).getItem();
                //                   chartX = dataset.getXValue(xyEntity.getSeriesIndex(), item);
                //                   chartY = dataset.getYValue(xyEntity.getSeriesIndex(), item);
                //                   Point2D screenPoint = ChartMaskingUtilities.translateChartPoint(
                //                         new Point2D.Double(chartX, chartY), getScreenDataArea(), getChart());
                //                   if (getHorizontalAxisTrace()) {
                //                      horizontalTraceLocation = (int) screenPoint.getX();
                //                   }
                //                   if (getVerticalAxisTrace()) {
                //                      verticalTraceLocation = (int) screenPoint.getY();
                //                   }
                if ((event.getModifiers() & seriesSelectionEventMask) != 0
                        && (event.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
                    selectSeries(xyEntity.getSeriesIndex());
                    return;
                } else if ((event.getModifiers() & maskingSelectionMask) == 0
                        && (event.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
                    if (selectedSeriesIndex != xyEntity.getSeriesIndex()) {
                        selectSeries(-1);
                        return;
                    }
                }
            } else {
                if (selectedSeriesIndex >= 0) {
                    if ((event.getModifiers() & seriesSelectionEventMask) != 0
                            && (event.getModifiers() & maskingSelectionMask) == 0
                            && (event.getModifiers() & MouseEvent.BUTTON1_MASK) != 0) {
                        selectSeries(-1);
                        return;
                    }
                }
            }
        }
    }
    XYChartMouseEvent chartEvent = new XYChartMouseEvent(getChart(), event, entity);
    chartEvent.setXY(getChartX(), getChartY());
    Object[] listeners = getListeners(ChartMouseListener.class);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseClicked(chartEvent);
    }
    super.mouseClicked(event);
}

From source file:com.munch.exchange.parts.neuralnetwork.results.NeuralNetworkResultChartComposite.java

/**
 * Handles a mouse move event.// www  . j ava  2s  .co m
 *
 * @param event  the mouse event.
 */
public void mouseMove(MouseEvent event) {

    // handle axis trace
    if (this.horizontalAxisTrace || this.verticalAxisTrace) {
        this.horizontalTraceLineY = event.y;
        this.verticalTraceLineX = event.x;
        this.canvas.redraw();
    }

    // handle tool tips in a simple way
    if (this.displayToolTips) {
        String s = getToolTipText(event);
        if (s == null && this.canvas.getToolTipText() != null
                || s != null && !s.equals(this.canvas.getToolTipText()))
            this.canvas.setToolTipText(s);
    }

    // handle zoom box
    boolean hZoom, vZoom;
    if (this.zoomPoint != null) {
        Rectangle scaledDataArea = getScreenDataArea(this.zoomPoint.x, this.zoomPoint.y);
        org.eclipse.swt.graphics.Point movingPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
        if (this.orientation == PlotOrientation.HORIZONTAL) {
            hZoom = this.rangeZoomable;
            vZoom = this.domainZoomable;
        } else {
            hZoom = this.domainZoomable;
            vZoom = this.rangeZoomable;
        }
        if (hZoom && vZoom) {
            // selected rectangle shouldn't extend outside the data area...
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, this.zoomPoint.y,
                    movingPoint.x - this.zoomPoint.x, movingPoint.y - this.zoomPoint.y);
        } else if (hZoom) {
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, scaledDataArea.y,
                    movingPoint.x - this.zoomPoint.x, scaledDataArea.height);
        } else if (vZoom) {
            int ymax = Math.max(movingPoint.y, scaledDataArea.y);
            this.zoomRectangle = new Rectangle(scaledDataArea.x, this.zoomPoint.y, scaledDataArea.width,
                    ymax - this.zoomPoint.y);
        }
        this.canvas.redraw();
    }

    // new entity code
    ChartEntity entity = null;
    //int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    //int y = (int) ((event.y - getClientArea().y) / this.scaleY);

    int x = (int) ((event.x - getClientArea().x));
    int y = (int) ((event.y - getClientArea().y));

    //System.out.println("scaleX: "+this.scaleX);
    //System.out.println("this.scaleY: "+this.scaleY);

    //TODO

    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse move event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseMoved(chartEvent);
    }
}

From source file:org.gumtree.vis.plot1d.Plot1DPanel.java

@Override
public void mouseMoved(MouseEvent e) {
    Insets insets = getInsets();/* w  w w  . j a  va  2 s . c  om*/
    int x = (int) ((e.getX() - insets.left) / getScaleX());
    int y = (int) ((e.getY() - insets.top) / getScaleY());

    ChartEntity entity = null;
    if (getChartRenderingInfo() != null) {
        EntityCollection entities = getChartRenderingInfo().getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
            //                   boolean isDirty = false;
            int seriesIndex = -1;
            if (selectedSeriesIndex >= 0) {
                //                      double xInChart = ChartMaskingUtilities.translateScreenX(x, 
                //                            getScreenDataArea(), getChart());
                //                      XYDataset dataset = getChart().getXYPlot().getDataset();
                //                      PatternDataset patternDataset = (PatternDataset) dataset;
                //                      int itemIndex = patternDataset.getItemFromX(selectedSeriesIndex, xInChart);
                //                      if (itemIndex < patternDataset.getItemCount(selectedSeriesIndex)) {
                //                         chartX = patternDataset.getXValue(selectedSeriesIndex, itemIndex);
                //                         chartY = patternDataset.getYValue(selectedSeriesIndex, itemIndex);
                //                         Point2D axisTrace = ChartMaskingUtilities.translateChartPoint(
                //                               new Point2D.Double(chartX, chartY), getScreenDataArea(), getChart());
                //                         horizontalTraceLocation = (int) axisTrace.getX();
                //                         verticalTraceLocation = (int) axisTrace.getY();
                //                         if (getHorizontalAxisTrace() || getVerticalAxisTrace() || isToolTipFollowerEnabled) {
                //                            repaint();
                //                         }
                //                         seriesIndex = selectedSeriesIndex;
                //                         isDirty = true;
                //                      }
                seriesIndex = followDomainTrace(selectedSeriesIndex, x);
                if (seriesIndex >= 0
                        && (getHorizontalAxisTrace() || getVerticalAxisTrace() || isToolTipFollowerEnabled())) {
                    repaint();
                }
            } else if (getChart().getXYPlot().getSeriesCount() == 1) {
                //                      int seriesIndex0 = 0;
                //                      double xInChart = ChartMaskingUtilities.translateScreenX(x, 
                //                            getScreenDataArea(), getChart());
                //                      XYDataset dataset = getChart().getXYPlot().getDataset();
                //                      PatternDataset patternDataset = (PatternDataset) dataset;
                //                      int itemIndex = patternDataset.getItemFromX(seriesIndex0, xInChart);
                //                      if (itemIndex < patternDataset.getItemCount(seriesIndex0)) {
                //                         chartX = patternDataset.getXValue(seriesIndex0, itemIndex);
                //                         chartY = patternDataset.getYValue(seriesIndex0, itemIndex);
                //                         Point2D axisTrace = ChartMaskingUtilities.translateChartPoint(
                //                               new Point2D.Double(chartX, chartY), getScreenDataArea(), getChart());
                ////                         if (getScreenDataArea().contains(axisTrace)) {
                //                         horizontalTraceLocation = (int) axisTrace.getX();
                //                         verticalTraceLocation = (int) axisTrace.getY();
                //                         if (getHorizontalAxisTrace() || getVerticalAxisTrace() || isToolTipFollowerEnabled) {
                //                            repaint();
                //                         }
                //                         seriesIndex = seriesIndex0;
                //                         isDirty = true;
                ////                         }
                //                      }
                seriesIndex = followDomainTrace(0, x);
                if (seriesIndex >= 0
                        && (getHorizontalAxisTrace() || getVerticalAxisTrace() || isToolTipFollowerEnabled())) {
                    repaint();
                }
            } else if (entity instanceof XYItemEntity) {
                XYItemEntity xyEntity = (XYItemEntity) entity;
                XYDataset dataset = xyEntity.getDataset();
                int item = ((XYItemEntity) entity).getItem();
                seriesIndex = xyEntity.getSeriesIndex();
                double chartX = dataset.getXValue(seriesIndex, item);
                double chartY = dataset.getYValue(seriesIndex, item);
                Point2D screenPoint = ChartMaskingUtilities.translateChartPoint(
                        new Point2D.Double(chartX, chartY), getScreenDataArea(), getChart());
                setChartX(chartX);
                setChartY(chartY);
                setSeriesIndex(seriesIndex);
                setItemIndex(item);
                if (dataset instanceof IXYErrorDataset) {
                    setChartError(((IXYErrorDataset) dataset).getYError(seriesIndex, item));

                }
                if (getHorizontalAxisTrace()) {
                    setHorizontalTraceLocation((int) screenPoint.getX());
                }
                if (getVerticalAxisTrace()) {
                    setVerticalTraceLocation((int) screenPoint.getY());
                }
                if (getHorizontalAxisTrace() || getVerticalAxisTrace() || isToolTipFollowerEnabled()) {
                    repaint();
                }
                //                      isDirty = true;
            }
            if (seriesIndex >= 0) {
                Object[] listeners = getListeners(ChartMouseListener.class);
                if (getChart() != null) {
                    XYChartMouseEvent event = new XYChartMouseEvent(getChart(), e, entity);
                    event.setXY(getChartX(), getChartY());
                    event.setSeriesIndex(seriesIndex);
                    for (int i = listeners.length - 1; i >= 0; i -= 1) {
                        ((ChartMouseListener) listeners[i]).chartMouseMoved(event);
                    }
                }
            }

        }
        //              getChart().handleClick(x, y, getChartRenderingInfo());
    }

    if (isInternalLegendEnabled && isInternalLegendSelected) {
        int cursorType = findCursorOnSelectedItem(e.getX(), e.getY());
        setCursor(Cursor.getPredefinedCursor(cursorType));
    } else if (getCursor() != defaultCursor) {
        setCursor(defaultCursor);
    }

    super.mouseMoved(e);
    // we can only generate events if the panel's chart is not null
    // (see bug report 1556951)
}

From source file:com.munch.exchange.ExchangeChartComposite.java

/**
 * Handles a mouse move event./*from  ww  w.  j  a  v a  2s . c  o m*/
 *
 * @param event  the mouse event.
 */
public void mouseMove(MouseEvent event) {

    // handle axis trace
    if (this.horizontalAxisTrace || this.verticalAxisTrace) {
        this.horizontalTraceLineY = event.y;
        this.verticalTraceLineX = event.x;
        this.canvas.redraw();
    }

    // handle tool tips in a simple way
    if (this.displayToolTips) {
        String s = getToolTipText(event);
        if (s == null && this.canvas.getToolTipText() != null
                || s != null && !s.equals(this.canvas.getToolTipText()))
            this.canvas.setToolTipText(s);
    }

    // handle zoom box
    boolean hZoom, vZoom;
    if (this.zoomPoint != null) {
        Rectangle scaledDataArea = getScreenDataArea(this.zoomPoint.x, this.zoomPoint.y);
        org.eclipse.swt.graphics.Point movingPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
        if (this.orientation == PlotOrientation.HORIZONTAL) {
            hZoom = this.rangeZoomable;
            vZoom = this.domainZoomable;
        } else {
            hZoom = this.domainZoomable;
            vZoom = this.rangeZoomable;
        }
        if (hZoom && vZoom) {
            // selected rectangle shouldn't extend outside the data area...
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, this.zoomPoint.y,
                    movingPoint.x - this.zoomPoint.x, movingPoint.y - this.zoomPoint.y);
        } else if (hZoom) {
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, scaledDataArea.y,
                    movingPoint.x - this.zoomPoint.x, scaledDataArea.height);
        } else if (vZoom) {
            int ymax = Math.max(movingPoint.y, scaledDataArea.y);
            this.zoomRectangle = new Rectangle(scaledDataArea.x, this.zoomPoint.y, scaledDataArea.width,
                    ymax - this.zoomPoint.y);
        }
        this.canvas.redraw();
    }

    // new entity code
    ChartEntity entity = null;
    int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    int y = (int) ((event.y - getClientArea().y) / this.scaleY);
    System.out.println("scaleX: " + this.scaleX);
    System.out.println("scaleY: " + this.scaleY);
    //TODO

    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse move event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseMoved(chartEvent);
    }
}

From source file:com.munch.exchange.ExchangeChartComposite.java

/**
 * Returns a string for the tooltip./* w  w w.  jav a 2 s  .  c om*/
 *
 * @param e  the mouse event.
 *
 * @return A tool tip or <code>null</code> if no tooltip is available.
 */
public String getToolTipText(org.eclipse.swt.events.MouseEvent e) {
    String result = null;
    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            Rectangle insets = getClientArea();
            ChartEntity entity = entities.getEntity((int) ((e.x - insets.x) / this.scaleX),
                    (int) ((e.y - insets.y) / this.scaleY));
            if (entity != null) {
                result = entity.getToolTipText();
            }
        }
    }
    return result;

}

From source file:com.rcp.wbw.demo.ChartComposite.java

/**
 * Handles a mouse move event.//from   ww  w  . j a va2 s  . c o  m
 * 
 * @param event
 *            the mouse event.
 */
public void mouseMove(MouseEvent event) {

    // handle axis trace
    if (this.horizontalAxisTrace || this.verticalAxisTrace) {
        this.horizontalTraceLineY = event.y;
        this.verticalTraceLineX = event.x;
        this.canvas.redraw();
    }

    // handle tool tips in a simple way
    if (this.displayToolTips) {
        String s = getToolTipText(event);
        if (s == null && this.canvas.getToolTipText() != null
                || s != null && !s.equals(this.canvas.getToolTipText()))
            this.canvas.setToolTipText(s);
    }

    // handle zoom box
    boolean hZoom, vZoom;
    if (this.zoomPoint != null) {
        Rectangle scaledDataArea = getScreenDataArea(this.zoomPoint.x, this.zoomPoint.y);
        org.eclipse.swt.graphics.Point movingPoint = getPointInRectangle(event.x, event.y, scaledDataArea);
        if (this.orientation == PlotOrientation.HORIZONTAL) {
            hZoom = this.rangeZoomable;
            vZoom = this.domainZoomable;
        } else {
            hZoom = this.domainZoomable;
            vZoom = this.rangeZoomable;
        }
        if (hZoom && vZoom) {
            // selected rectangle shouldn't extend outside the data area...
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, this.zoomPoint.y,
                    movingPoint.x - this.zoomPoint.x, movingPoint.y - this.zoomPoint.y);
        } else if (hZoom) {
            this.zoomRectangle = new Rectangle(this.zoomPoint.x, scaledDataArea.y,
                    movingPoint.x - this.zoomPoint.x, scaledDataArea.height);
        } else if (vZoom) {
            int ymax = Math.max(movingPoint.y, scaledDataArea.y);
            this.zoomRectangle = new Rectangle(scaledDataArea.x, this.zoomPoint.y, scaledDataArea.width,
                    ymax - this.zoomPoint.y);
        }
        this.canvas.redraw();
    }

    // new entity code
    ChartEntity entity = null;
    int x = (int) ((event.x - getClientArea().x) / this.scaleX);
    int y = (int) ((event.y - getClientArea().y) / this.scaleY);

    if (this.info != null) {
        EntityCollection entities = this.info.getEntityCollection();
        if (entities != null) {
            entity = entities.getEntity(x, y);
        }
    }

    Object[] listeners = this.chartMouseListeners.getListeners(ChartMouseListener.class);
    if (listeners.length == 0) {
        return;
    }

    // pass mouse move event if some ChartMouseListener are listening
    java.awt.event.MouseEvent mouseEvent = SWTUtils.toAwtMouseEvent(event);
    ChartMouseEvent chartEvent = new ChartMouseEvent(getChart(), mouseEvent, entity);
    for (int i = listeners.length - 1; i >= 0; i -= 1) {
        ((ChartMouseListener) listeners[i]).chartMouseMoved(chartEvent);
    }
}