List of usage examples for org.jfree.chart.axis DateTickMarkPosition END
DateTickMarkPosition END
To view the source code for org.jfree.chart.axis DateTickMarkPosition END.
Click Source Link
From source file:com.xpn.xwiki.plugin.charts.params.DateTickMarkPositionChartParam.java
@Override protected void init() { addChoice("start", DateTickMarkPosition.START); addChoice("middle", DateTickMarkPosition.MIDDLE); addChoice("end", DateTickMarkPosition.END); }
From source file:org.xwiki.rendering.internal.macro.chart.source.AxisConfigurator.java
/** * Set the axes in the chart model.//from w w w . j a v a 2s . c o m * * @param plotType The target plot type. * @param chartModel The target chart model. * @throws MacroExecutionException if the axes are incorrectly configured. */ public void setAxes(PlotType plotType, SimpleChartModel chartModel) throws MacroExecutionException { AxisType[] defaultAxisTypes = plotType.getDefaultAxisTypes(); for (int i = 0; i < axisTypes.length; i++) { AxisType type = axisTypes[i]; if (i >= defaultAxisTypes.length) { if (type != null) { throw new MacroExecutionException("To many axes for plot type."); } continue; } if (type == null) { type = defaultAxisTypes[i]; } Axis axis; switch (type) { case NUMBER: NumberAxis numberAxis = new NumberAxis(); axis = numberAxis; setNumberLimits(numberAxis, i); break; case CATEGORY: axis = new CategoryAxis(); break; case DATE: DateAxis dateAxis = new DateAxis(); axis = dateAxis; dateAxis.setTickMarkPosition(DateTickMarkPosition.END); if (axisDateFormat[i] != null) { try { DateFormat dateFormat = new SimpleDateFormat(axisDateFormat[i], localeConfiguration.getLocale()); dateAxis.setDateFormatOverride(dateFormat); } catch (IllegalArgumentException e) { throw new MacroExecutionException( String.format("Invalid date format [%s].", axisDateFormat[i])); } } setDateLimits(dateAxis, i); break; default: throw new MacroExecutionException(String.format("Unsupported axis type [%s]", type.getName())); } chartModel.setAxis(i, axis); } }
From source file:ucar.unidata.idv.control.chart.TimeSeriesChart.java
/** * Make the plot/*w ww . ja v a 2 s . 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]; }