List of usage examples for org.jfree.chart.entity XYItemEntity getItem
public int getItem()
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); }