Example usage for org.jfree.chart.entity XYItemEntity getItem

List of usage examples for org.jfree.chart.entity XYItemEntity getItem

Introduction

In this page you can find the example usage for org.jfree.chart.entity XYItemEntity getItem.

Prototype

public int getItem() 

Source Link

Document

Returns the item index.

Usage

From source file:org.pentaho.platform.uifoundation.chart.XYZSeriesCollectionChartComponent.java

private void populateInfo(final ChartRenderingInfo info) {
    if (urlTemplate == null) {
        return;// w  w  w .  j a  v a  2s . c o  m
    }
    Iterator iter = info.getEntityCollection().iterator();
    while (iter.hasNext()) {
        ChartEntity entity = (ChartEntity) iter.next();
        if (entity instanceof XYItemEntity) {
            if (urlTemplate != null) {
                XYItemEntity xyItemEntity = (XYItemEntity) entity;
                if (paramName == null) {
                    xyItemEntity.setURLText(urlTemplate);
                } else {
                    try {
                        int seriesIndex = xyItemEntity.getSeriesIndex();
                        int itemIndex = xyItemEntity.getItem();
                        String xySeriesKey = (String) ((XYZSeriesCollectionChartDefinition) xyItemEntity
                                .getDataset()).getSeriesKey(seriesIndex);
                        String encodedVal = URLEncoder.encode(xySeriesKey, LocaleHelper.getSystemEncoding());
                        String drillURL = TemplateUtil.applyTemplate(urlTemplate, paramName, encodedVal);
                        String itemValueStr = ((XYZSeriesCollectionChartDefinition) xyItemEntity.getDataset())
                                .getX(seriesIndex, itemIndex).toString();
                        encodedVal = URLEncoder.encode(itemValueStr, LocaleHelper.getSystemEncoding());
                        if (seriesName == null) {
                            drillURL = TemplateUtil.applyTemplate(drillURL, "SERIES", encodedVal); //$NON-NLS-1$
                        } else {
                            drillURL = TemplateUtil.applyTemplate(drillURL, seriesName, encodedVal);
                        }
                        xyItemEntity.setURLText(drillURL);
                    } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

From source file:org.pentaho.platform.uifoundation.chart.TimeSeriesCollectionChartComponent.java

private void populateInfo(final ChartRenderingInfo info) {
    if (urlTemplate == null) {
        return;/*from   ww  w. ja  va 2 s  . c o  m*/
    }
    Iterator iter = info.getEntityCollection().iterator();
    while (iter.hasNext()) {
        ChartEntity entity = (ChartEntity) iter.next();
        if (entity instanceof XYItemEntity) {
            if (urlTemplate != null) {
                XYItemEntity xyItemEntity = (XYItemEntity) entity;
                if (paramName == null) {
                    xyItemEntity.setURLText(urlTemplate);
                } else {
                    try {
                        int seriesIndex = xyItemEntity.getSeriesIndex();
                        int itemIndex = xyItemEntity.getItem();
                        String xySeriesKey = (String) ((TimeSeriesCollection) xyItemEntity.getDataset())
                                .getSeriesKey(seriesIndex);
                        String encodedVal = URLEncoder.encode(xySeriesKey, LocaleHelper.getSystemEncoding());
                        String drillURL = TemplateUtil.applyTemplate(urlTemplate, paramName, encodedVal);
                        String itemValueStr = ((TimeSeriesCollection) xyItemEntity.getDataset())
                                .getX(seriesIndex, itemIndex).toString();
                        encodedVal = URLEncoder.encode(itemValueStr, LocaleHelper.getSystemEncoding());
                        if (seriesName == null) {
                            drillURL = TemplateUtil.applyTemplate(drillURL, "SERIES", encodedVal); //$NON-NLS-1$
                        } else {
                            drillURL = TemplateUtil.applyTemplate(drillURL, seriesName, encodedVal);
                        }
                        xyItemEntity.setURLText(drillURL);
                    } catch (UnsupportedEncodingException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}

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

private void showPopup(XYItemEntity entity) {
    currentEntity = entity;/*from w w  w.j av a 2 s.  c o  m*/
    MediatorConstants name = (MediatorConstants) dataset.getSeriesKey(entity.getSeriesIndex());
    double value = dataset.getYValue(entity.getSeriesIndex(), entity.getItem()) * getMultiple(name);
    double time = dataset.getXValue(entity.getSeriesIndex(), entity.getItem());

    if (timer != null) {
        timer.dismiss();
    }

    timer = new UnitValueTimer(name, value, time);

    timer.start();
}

From source file:net.sf.maltcms.chromaui.charts.events.MSChartHandler.java

/**
 *
 * @param v/*from  w ww .j  ava2s . c  om*/
 */

@Override
public void listen(final IEvent<XYItemEntity> v) {
    Runnable r = new Runnable() {

        @Override
        public void run() {
            //                System.out.println("MSChartHandler received XYItemEntity!");
            XYItemEntity e = v.get();
            if (scan != null) {
                //                    System.out.println("Removing old scan");
                ic.remove(scan);
            }
            if (lastChromatogram != null) {
                //                    System.out.println("Removing old chromatogram");
                ic.remove(lastChromatogram);
            }
            //                System.out.println("Removed old entities!");
            scan = ds.getTarget(e.getSeriesIndex(), e.getItem());
            //                System.out.println("Retrieved scan");
            lastChromatogram = ds.getSource(e.getSeriesIndex());
            //                System.out.println("Retrieved chromatogram");
            //                System.out.println("Adding scan and chromatogram to instance content");
            ic.add(scan);
            ic.add(lastChromatogram);
        }
    };
    es.submit(r);
}

From source file:com.haskins.cloudtrailviewer.feature.MetricsFeature.java

@Override
public void chartMouseClicked(ChartMouseEvent cme) {

    try {//  w ww  . java 2  s  .c o m
        XYItemEntity xyitem = (XYItemEntity) cme.getEntity();
        TimeSeriesCollection dataset = (TimeSeriesCollection) xyitem.getDataset();
        List<TimeSeries> series = dataset.getSeries();
        TimeSeries timeSeries = series.get(xyitem.getSeriesIndex());
        Second second = (Second) timeSeries.getTimePeriod(xyitem.getItem());

        if (!eventTable.isVisible()) {

            jsp.setDividerLocation(0.5);
            jsp.setDividerSize(3);
            eventTable.setVisible(true);
        }

        eventTable.clearEvents();
        eventTable.setEvents(secondEvents.get(second));

    } catch (Exception e) {
        LOGGER.log(Level.WARNING, "Problem responding to Chart click event", e);
    }
}

From source file:org.locationtech.udig.processingtoolbox.tools.ChartComposite2.java

@SuppressWarnings("rawtypes")
@Override/* www .ja  va 2s  .c  o  m*/
public void zoom(Rectangle selection) {
    if (map == null || layer == null) {
        return;
    }
    Set<FeatureId> selected = new HashSet<FeatureId>();
    try {
        XYSeriesCollection ds = (XYSeriesCollection) getChart().getXYPlot().getDataset(2);
        XYSeries selectionSeries = ds.getSeries(0);
        selectionSeries.clear();

        EntityCollection entities = this.getChartRenderingInfo().getEntityCollection();
        Iterator iter = entities.iterator();
        while (iter.hasNext()) {
            ChartEntity entity = (ChartEntity) iter.next();
            if (entity instanceof XYItemEntity) {
                XYItemEntity item = (XYItemEntity) entity;
                if (item.getSeriesIndex() != 0) {
                    continue;
                }

                java.awt.Rectangle bound = item.getArea().getBounds();
                if (selection.intersects(bound.x, bound.y, bound.width, bound.height)) {
                    XYSeriesCollection dataSet = (XYSeriesCollection) item.getDataset();
                    XYSeries xySeries = dataSet.getSeries(item.getSeriesIndex());
                    XYDataItem xyDataItem = xySeries.getDataItem(item.getItem());
                    if (xyDataItem instanceof XYDataItem2) {
                        XYDataItem2 dataItem = (XYDataItem2) xyDataItem;
                        selectionSeries.add(dataItem);
                        selected.add(ff.featureId(dataItem.getFeature().getID()));
                    }
                }
            }
        }
    } catch (Exception e) {
        // skip
    } finally {
        if (selected.size() > 0) {
            map.select(ff.id(selected), layer);
        } else {
            map.select(Filter.EXCLUDE, layer);
        }
        this.forceRedraw();
    }
}

From source file:org.n52.server.io.EESGenerator.java

/**
 * Creates the image entities./*from w ww . j av  a  2s  .  c o  m*/
 * 
 * @param entities
 *            the entities
 * @return the array list
 */
private ImageEntity[] createImageEntities(EntityCollection entities) {
    ArrayList<ImageEntity> imageEntities = new ArrayList<ImageEntity>();

    if (!this.isOverview) {
        // reducer
        int xyItemCount = 0;
        for (Iterator<?> iter = entities.iterator(); iter.hasNext();) {
            Object o = iter.next();
            if (o instanceof XYItemEntity) {
                xyItemCount++;
            }
        }
        int reducer = 1;
        if (xyItemCount > TOOLTIP_MIN_COUNT) {
            reducer = xyItemCount / TOOLTIP_MIN_COUNT;
        }
        LOGGER.debug("Reduce " + xyItemCount + " Entities to " + (xyItemCount / reducer) + " Tooltips");

        int counter = 0;
        for (Iterator<?> iter = entities.iterator(); iter.hasNext();) {
            counter++;
            Object o = iter.next();
            if ((counter % reducer) == 0) {
                if (o instanceof XYItemEntity) {
                    XYItemEntity e = (XYItemEntity) o;

                    ImageEntity imageEntity = new ImageEntity(
                            new Bounds(e.getArea().getBounds2D().getMinX(), e.getArea().getBounds2D().getMaxX(),
                                    e.getArea().getBounds2D().getMinY(), e.getArea().getBounds2D().getMaxY()),
                            e.getDataset().getGroup().getID());

                    double time = e.getDataset().getXValue(e.getSeriesIndex(), e.getItem());
                    double value = e.getDataset().getYValue(e.getSeriesIndex(), e.getItem());
                    String uom = e.getURLText().split(";")[0];
                    String color = e.getURLText().split(";")[1];
                    imageEntity.putHoverHtmlFragment(createHoverHtmlString(color, time, value, uom));
                    imageEntities.add(imageEntity);
                }
            }
        }
    }
    return imageEntities.toArray(new ImageEntity[imageEntities.size()]);
}

From source file:dbseer.gui.actions.ExplainChartAction.java

@Override
public void actionPerformed(ActionEvent actionEvent) {
    if (type == DBSeerConstants.EXPLAIN_SELECT_NORMAL_REGION) {
        Set<XYItemEntity> selectedItems = panel.getSelectedItems();
        ArrayList<Double> region = panel.getNormalRegion();
        region.clear();//from ww  w. ja  v a2s .c o  m

        for (XYItemEntity item : selectedItems) {
            region.add(item.getDataset().getX(item.getSeriesIndex(), item.getItem()).doubleValue());
        }
        ArrayList<Double> otherRegion = panel.getAnomalyRegion();
        otherRegion.removeAll(region);
        DBSeerXYLineAndShapeRenderer renderer = (DBSeerXYLineAndShapeRenderer) panel.getChart().getXYPlot()
                .getRenderer();
        renderer.setSelectedNormal(selectedItems);
        panel.clearRectangle();
        panel.setRefreshBuffer(true);
        panel.repaint();
    } else if (type == DBSeerConstants.EXPLAIN_APPEND_NORMAL_REGION) {
        DBSeerXYLineAndShapeRenderer renderer = (DBSeerXYLineAndShapeRenderer) panel.getChart().getXYPlot()
                .getRenderer();
        Set<XYItemEntity> previousItems = renderer.getSelectedNormal();
        Set<XYItemEntity> selectedItems = panel.getSelectedItems();
        ArrayList<Double> region = panel.getNormalRegion();

        for (XYItemEntity item : selectedItems) {
            region.add(item.getDataset().getX(item.getSeriesIndex(), item.getItem()).doubleValue());
        }
        ArrayList<Double> otherRegion = panel.getAnomalyRegion();
        otherRegion.removeAll(region);
        if (previousItems != null) {
            previousItems.addAll(selectedItems);
            renderer.setSelectedNormal(previousItems);
        } else {
            renderer.setSelectedNormal(selectedItems);
        }
        panel.clearRectangle();
        panel.setRefreshBuffer(true);
        panel.repaint();
    } else if (type == DBSeerConstants.EXPLAIN_SELECT_ANOMALY_REGION) {
        Set<XYItemEntity> selectedItems = panel.getSelectedItems();
        ArrayList<Double> region = panel.getAnomalyRegion();
        region.clear();

        for (XYItemEntity item : selectedItems) {
            region.add(item.getDataset().getX(item.getSeriesIndex(), item.getItem()).doubleValue());
        }
        ArrayList<Double> otherRegion = panel.getNormalRegion();
        otherRegion.removeAll(region);
        DBSeerXYLineAndShapeRenderer renderer = (DBSeerXYLineAndShapeRenderer) panel.getChart().getXYPlot()
                .getRenderer();
        renderer.setSelectedAnomaly(selectedItems);
        panel.clearRectangle();
        panel.setRefreshBuffer(true);
        panel.repaint();
    } else if (type == DBSeerConstants.EXPLAIN_APPEND_ANOMALY_REGION) {
        DBSeerXYLineAndShapeRenderer renderer = (DBSeerXYLineAndShapeRenderer) panel.getChart().getXYPlot()
                .getRenderer();
        Set<XYItemEntity> previousItems = renderer.getSelectedAnomaly();
        Set<XYItemEntity> selectedItems = panel.getSelectedItems();
        ArrayList<Double> region = panel.getAnomalyRegion();

        for (XYItemEntity item : selectedItems) {
            region.add(item.getDataset().getX(item.getSeriesIndex(), item.getItem()).doubleValue());
        }
        ArrayList<Double> otherRegion = panel.getNormalRegion();
        otherRegion.removeAll(region);
        if (previousItems != null) {
            previousItems.addAll(selectedItems);
            renderer.setSelectedAnomaly(previousItems);
        } else {
            renderer.setSelectedAnomaly(selectedItems);
        }
        panel.clearRectangle();
        panel.setRefreshBuffer(true);
        panel.repaint();
    } else if (type == DBSeerConstants.EXPLAIN_CLEAR_REGION) {
        ArrayList<Double> region = panel.getNormalRegion();
        region.clear();
        region = panel.getAnomalyRegion();
        region.clear();

        DBSeerXYLineAndShapeRenderer renderer = (DBSeerXYLineAndShapeRenderer) panel.getChart().getXYPlot()
                .getRenderer();
        renderer.clearAnomaly();
        renderer.clearNormal();

        DefaultListModel explanationListModel = panel.getControlPanel().getExplanationListModel();
        explanationListModel.clear();
        DefaultListModel predicateListModel = panel.getControlPanel().getPredicateListModel();
        predicateListModel.clear();

        panel.clearRectangle();
        panel.setRefreshBuffer(true);
        panel.repaint();

    } else if (type == DBSeerConstants.EXPLAIN_EXPLAIN) {
        explain();
    } else if (type == DBSeerConstants.EXPLAIN_TOGGLE_PREDICATES) {
        togglePredicates();
    } else if (type == DBSeerConstants.EXPLAIN_SAVE_PREDICATES) {
        savePredicates();
    } else if (type == DBSeerConstants.EXPLAIN_UPDATE_EXPLANATIONS) {
        updateExplanations();
    }
}

From source file:edu.ucla.stat.SOCR.motionchart.MotionMouseListener.java

protected JPanel getItemPanel(final JDialog dialog, XYItemEntity item, ChartMouseEvent event) {
    MotionDataSet dataset = (MotionDataSet) event.getChart().getXYPlot().getDataset();
    MotionTableModel model = dataset.getTableModel();
    DefaultTableModel tModel = new DefaultTableModel(2, 0);
    ArrayList<String> rowIds = new ArrayList<String>();

    Integer row = model.getKeyMap().get(dataset.getSeriesKey(item.getSeriesIndex())).get(item.getItem());
    rowIds.add(row + ":");

    int columnCount = model.getColumnCount();

    for (int c = 0; c < columnCount; c++) {
        tModel.addColumn(model.getColumnName(c));
        tModel.setValueAt(model.getValueAt(row, c), 0, c);
    }/*from ww w  .j  a  v a  2s.  c  om*/

    rowIds.add("Mappings:");

    Object category = dataset.getCategory(item.getSeriesIndex(), item.getItem());
    if (category != null) {
        tModel.setValueAt(category, 1, model.getCategoryMapping());
    }

    Object key = dataset.getSeriesKey(item.getSeriesIndex());
    if (key != null) {
        tModel.setValueAt(key, 1, model.getKeyMapping());
    }

    Object x = dataset.getX(item.getSeriesIndex(), item.getItem());
    if (x != null) {
        tModel.setValueAt(x, 1, model.getXAxisMapping());
    }

    Object y = dataset.getY(item.getSeriesIndex(), item.getItem());
    if (y != null) {
        tModel.setValueAt(y, 1, model.getYAxisMapping());
    }

    Object size = dataset.getSize(item.getSeriesIndex(), item.getItem());
    if (size != null) {
        tModel.setValueAt(size, 1, model.getSizeMapping());
    }

    Color color = dataset.getColor(item.getSeriesIndex(), item.getItem());
    if (color != null) {
        //String colorText = "RGB(" + color.getRed() + "," + color.getGreen() + "," + color.getBlue() + ")";
        tModel.setValueAt(color, 1, model.getColorMapping());
    }

    return getPanel(dialog, tModel, rowIds);
}

From source file:org.trade.ui.chart.CandlestickChart.java

/**
 * A demonstration application showing a candlestick chart.
 * //w  w w. j  a  va 2 s . c  o  m
 * @param title
 *            the frame title.
 * @param strategyData
 *            StrategyData
 */
public CandlestickChart(final String title, StrategyData strategyData, Tradingday tradingday) {

    this.strategyData = strategyData;
    this.setLayout(new BorderLayout());
    // Used to mark the current price
    stroke = new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL, 0, new float[] { 10, 3 }, 0);
    valueMarker = new ValueMarker(0.00, Color.black, stroke);

    this.chart = createChart(this.strategyData, title, tradingday);

    BlockContainer container = new BlockContainer(new BorderArrangement());
    container.add(titleLegend1, RectangleEdge.LEFT);
    container.add(titleLegend2, RectangleEdge.RIGHT);
    container.add(new EmptyBlock(2000, 0));
    CompositeTitle legends = new CompositeTitle(container);
    legends.setPosition(RectangleEdge.BOTTOM);
    this.chart.addSubtitle(legends);

    final ChartPanel chartPanel = new ChartPanel(this.chart);
    chartPanel.setFillZoomRectangle(true);
    chartPanel.setMouseZoomable(true, true);
    chartPanel.setRefreshBuffer(true);
    chartPanel.setDoubleBuffered(true);
    chartPanel.setVerticalAxisTrace(true);
    chartPanel.setHorizontalAxisTrace(true);
    chartPanel.addChartMouseListener(new ChartMouseListener() {

        public void chartMouseMoved(ChartMouseEvent e) {
        }

        public void chartMouseClicked(final ChartMouseEvent e) {
            CombinedDomainXYPlot combinedXYplot = (CombinedDomainXYPlot) e.getChart().getPlot();
            @SuppressWarnings("unchecked")
            List<XYPlot> subplots = combinedXYplot.getSubplots();
            if (e.getTrigger().getClickCount() == 2) {
                double xItem = 0;
                double yItem = 0;
                if (e.getEntity() instanceof XYItemEntity) {
                    XYItemEntity xYItemEntity = ((XYItemEntity) e.getEntity());
                    xItem = xYItemEntity.getDataset().getXValue(xYItemEntity.getSeriesIndex(),
                            xYItemEntity.getItem());
                    yItem = xYItemEntity.getDataset().getYValue(xYItemEntity.getSeriesIndex(),
                            xYItemEntity.getItem());
                } else {
                    PlotEntity plotEntity = ((PlotEntity) e.getEntity());
                    XYPlot plot = (XYPlot) plotEntity.getPlot();
                    xItem = plot.getDomainCrosshairValue();
                    yItem = plot.getRangeCrosshairValue();
                }

                for (XYPlot xyplot : subplots) {

                    double x = xyplot.getDomainCrosshairValue();
                    double y = xyplot.getRangeCrosshairValue();

                    /*
                     * If the cross hair is from a right-hand y axis we need
                     * to convert this to a left-hand y axis.
                     */
                    String rightAxisName = ", Price: ";
                    double rangeLowerLeft = 0;
                    double rangeUpperLeft = 0;
                    double rangeLowerRight = 0;
                    double rangeUpperRight = 0;
                    double yRightLocation = 0;
                    for (int index = 0; index < xyplot.getRangeAxisCount(); index++) {
                        AxisLocation axisLocation = xyplot.getRangeAxisLocation(index);
                        Range range = xyplot.getRangeAxis(index).getRange();

                        if (axisLocation.equals(AxisLocation.BOTTOM_OR_LEFT)
                                || axisLocation.equals(AxisLocation.TOP_OR_LEFT)) {
                            rangeLowerLeft = range.getLowerBound();
                            rangeUpperLeft = range.getUpperBound();
                            rightAxisName = ", " + xyplot.getRangeAxis(index).getLabel() + ": ";
                        }
                        if (y >= range.getLowerBound() && y <= range.getUpperBound()
                                && (axisLocation.equals(AxisLocation.BOTTOM_OR_RIGHT)
                                        || axisLocation.equals(AxisLocation.TOP_OR_RIGHT))) {
                            rangeUpperRight = range.getUpperBound();
                            rangeLowerRight = range.getLowerBound();
                        }
                    }
                    if ((rangeUpperRight - rangeLowerRight) > 0) {
                        yRightLocation = rangeLowerLeft + ((rangeUpperLeft - rangeLowerLeft)
                                * ((y - rangeLowerRight) / (rangeUpperRight - rangeLowerRight)));
                    } else {
                        yRightLocation = y;
                    }

                    String text = " Time: " + dateFormatShort.format(new Date((long) (x))) + rightAxisName
                            + new Money(y);
                    if (x == xItem && y == yItem) {
                        titleLegend1.setText(text);
                        if (null == clickCrossHairs) {
                            clickCrossHairs = new XYTextAnnotation(text, x, yRightLocation);
                            clickCrossHairs.setTextAnchor(TextAnchor.BOTTOM_LEFT);
                            xyplot.addAnnotation(clickCrossHairs);
                        } else {
                            clickCrossHairs.setText(text);
                            clickCrossHairs.setX(x);
                            clickCrossHairs.setY(yRightLocation);
                        }
                    }
                }
            } else if (e.getTrigger().getClickCount() == 1 && null != clickCrossHairs) {
                for (XYPlot xyplot : subplots) {
                    if (xyplot.removeAnnotation(clickCrossHairs)) {
                        clickCrossHairs = null;
                        titleLegend1.setText(" Time: 0, Price :0.0");
                        break;
                    }
                }
            }
        }
    });
    this.add(chartPanel, null);
    this.strategyData.getCandleDataset().getSeries(0).addChangeListener(this);
}