List of usage examples for org.jfree.data.time RegularTimePeriod getLastMillisecond
public abstract long getLastMillisecond();
From source file:org.jfree.chart.demo.XYBarChartDemo7.java
private static void addItem(XYIntervalSeries xyintervalseries, RegularTimePeriod regulartimeperiod, RegularTimePeriod regulartimeperiod1, int i) { xyintervalseries.add(regulartimeperiod.getFirstMillisecond(), regulartimeperiod.getFirstMillisecond(), regulartimeperiod1.getLastMillisecond(), i, (double) i - 0.45000000000000001D, (double) i + 0.45000000000000001D); }
From source file:org.jstockchart.time.SegmentedTimeSeries.java
/** * Adds a <code>TimeSeriesDataItem</code> instance to the series. * //from w w w . ja va 2 s . c o m * @param item * the <code>TimeSeriesDataItem</code> instance. */ public void addItem(TimeSeriesDataItem item) { if (lastItem != null) { long lastStart = lastItem.getPeriod().getFirstMillisecond(); long thisStart = item.getPeriod().getFirstMillisecond(); long thisEnd = item.getPeriod().getLastMillisecond(); int diff = 0; if (step > 0) { diff = (int) ((thisStart - lastStart) / (thisEnd - thisStart) - 1) / step; } RegularTimePeriod bufPeriod = lastItem.getPeriod().next(); Number bufValue = lastItem.getValue(); for (int i = 0; i < diff; i++) { TimeSeriesDataItem bufItem = new TimeSeriesDataItem(bufPeriod, bufValue); if (timeline != null) { if (timeline.containsDomainValue(bufPeriod.getLastMillisecond())) { timeseries.addOrUpdate(bufItem); size++; } } else { timeseries.add(bufItem); size++; } bufPeriod = bufItem.getPeriod().next(); } } timeseries.addOrUpdate(item); //timeseries.add(item); size++; lastItem = item; }
From source file:org.jfree.data.time.ohlc.OHLCSeriesCollection.java
/** * Returns the x-value for a time period. * * @param period the time period (<code>null</code> not permitted). * * @return The x-value./*w w w . j a v a2 s . c o m*/ */ protected synchronized long getX(RegularTimePeriod period) { long result = 0L; if (this.xPosition == TimePeriodAnchor.START) { result = period.getFirstMillisecond(); } else if (this.xPosition == TimePeriodAnchor.MIDDLE) { result = period.getMiddleMillisecond(); } else if (this.xPosition == TimePeriodAnchor.END) { result = period.getLastMillisecond(); } return result; }
From source file:ucar.unidata.idv.control.chart.TimeSeriesChart.java
/** * Make the plot//w ww. ja va 2s . c om * * @return The plot_ */ public Plot doMakePlot() { IdvPreferenceManager pref = control.getControlContext().getIdv().getPreferenceManager(); TimeZone timeZone = pref.getDefaultTimeZone(); NumberAxis valueAxis = new FixedWidthNumberAxis(""); final SimpleDateFormat sdf = new SimpleDateFormat( ((dateFormat != null) ? dateFormat : pref.getDefaultDateFormat())); sdf.setTimeZone(timeZone); DateAxis timeAxis = new DateAxis("Time (" + timeZone.getID() + ")", timeZone) { protected List xxxxxrefreshTicksHorizontal(Graphics2D g2, Rectangle2D dataArea, RectangleEdge edge) { List ticks = super.refreshTicksHorizontal(g2, dataArea, edge); List<Tick> result = new java.util.ArrayList<Tick>(); Font tickLabelFont = getTickLabelFont(); g2.setFont(tickLabelFont); if (isAutoTickUnitSelection()) { selectAutoTickUnit(g2, dataArea, edge); } DateTickUnit unit = getTickUnit(); Date tickDate = calculateLowestVisibleTickValue(unit); Date upperDate = getMaximumDate(); Date firstDate = null; while (tickDate.before(upperDate)) { if (!isHiddenValue(tickDate.getTime())) { // work out the value, label and position String tickLabel; DateFormat formatter = getDateFormatOverride(); if (firstDate == null) { if (formatter != null) { tickLabel = formatter.format(tickDate); } else { tickLabel = getTickUnit().dateToString(tickDate); } firstDate = tickDate; } else { double msdiff = tickDate.getTime() - firstDate.getTime(); int hours = (int) (msdiff / 1000 / 60 / 60); tickLabel = hours + "H"; } // tickLabel = tickLabel; TextAnchor anchor = null; TextAnchor rotationAnchor = null; double angle = 0.0; if (isVerticalTickLabels()) { anchor = TextAnchor.CENTER_RIGHT; rotationAnchor = TextAnchor.CENTER_RIGHT; if (edge == RectangleEdge.TOP) { angle = Math.PI / 2.0; } else { angle = -Math.PI / 2.0; } } else { if (edge == RectangleEdge.TOP) { anchor = TextAnchor.BOTTOM_CENTER; rotationAnchor = TextAnchor.BOTTOM_CENTER; } else { anchor = TextAnchor.TOP_CENTER; rotationAnchor = TextAnchor.TOP_CENTER; } } Tick tick = new DateTick(tickDate, tickLabel, anchor, rotationAnchor, angle); result.add(tick); tickDate = unit.addToDate(tickDate, getTimeZone()); } else { tickDate = unit.rollDate(tickDate, getTimeZone()); continue; } // could add a flag to make the following correction optional... switch (unit.getUnit()) { case (DateTickUnit.MILLISECOND): case (DateTickUnit.SECOND): case (DateTickUnit.MINUTE): case (DateTickUnit.HOUR): case (DateTickUnit.DAY): break; case (DateTickUnit.MONTH): tickDate = calculateDateForPositionX(new Month(tickDate, getTimeZone()), getTickMarkPosition()); break; case (DateTickUnit.YEAR): tickDate = calculateDateForPositionX(new Year(tickDate, getTimeZone()), getTickMarkPosition()); break; default: break; } } return result; } private Date calculateDateForPositionX(RegularTimePeriod period, DateTickMarkPosition position) { if (position == null) { throw new IllegalArgumentException("Null 'position' argument."); } Date result = null; if (position == DateTickMarkPosition.START) { result = new Date(period.getFirstMillisecond()); } else if (position == DateTickMarkPosition.MIDDLE) { result = new Date(period.getMiddleMillisecond()); } else if (position == DateTickMarkPosition.END) { result = new Date(period.getLastMillisecond()); } return result; } }; timeAxis.setDateFormatOverride(sdf); final XYPlot[] xyPlotHolder = { null }; xyPlotHolder[0] = new MyXYPlot(new TimeSeriesCollection(), timeAxis, valueAxis, null) { public void drawBackground(Graphics2D g2, Rectangle2D area) { super.drawBackground(g2, area); drawSunriseSunset(g2, xyPlotHolder[0], area); } }; if (animationTimeAnnotation != null) { xyPlotHolder[0].addAnnotation(animationTimeAnnotation); } return xyPlotHolder[0]; }