Java 类org.jfree.chart.axis.DateTickUnitType 实例源码

项目:jasperreports    文件:GenericChartTheme.java   
/**
 * Returns the specific org.jfree.chart.axis.DateTickUnit time unit constant
 * related to the String value passed as argument
 * 
 * @param timePeriodUnit - a String represented by one of the following
 * accepted values: ["Year", "Month", "Day", "Hour", "Minute", "Second", "Millisecond"]
 * @return the specific org.jfree.chart.axis.DateTickUnit time unit constant
 */
protected DateTickUnitType getTimePeriodUnit(String timePeriodUnit)
{
    if (timePeriodUnit == null)
        return DateTickUnitType.DAY;
    return timePeriodUnit.equals("Year")
        ? DateTickUnitType.YEAR
        : timePeriodUnit.equals("Month")
        ? DateTickUnitType.MONTH
        : timePeriodUnit.equals("Hour")
        ? DateTickUnitType.HOUR
        : timePeriodUnit.equals("Minute")
        ? DateTickUnitType.MINUTE
        : timePeriodUnit.equals("Second")
        ? DateTickUnitType.SECOND
        : timePeriodUnit.equals("Millisecond")
        ? DateTickUnitType.MILLISECOND
        : DateTickUnitType.DAY;
}
项目:conqat    文件:SeriesCreatorBase.java   
/** Constructor. */
private FixedDateTickUnit() {
    super(DateTickUnitType.DAY, 1);

    Calendar c = Calendar.getInstance();
    Date today = DateUtils.getNow();

    c.setTime(today);
    tickDates.add(c.getTime());

    c.setTime(today);
    c.add(Calendar.DAY_OF_MONTH, -2);
    tickDates.add(c.getTime());

    c.setTime(today);
    c.add(Calendar.DAY_OF_MONTH, -7);
    tickDates.add(c.getTime());

    c.setTime(today);
    c.add(Calendar.MONTH, -1);
    tickDates.add(c.getTime());
}
项目:iveely.ml    文件:ChartUtils.java   
public static void setTimeSeriesRender(Plot plot, boolean isShowData, boolean isShapesVisible) {

        XYPlot xyplot = (XYPlot) plot;
        xyplot.setNoDataMessage(NO_DATA_MSG);
        xyplot.setInsets(new RectangleInsets(10, 10, 5, 10));

        XYLineAndShapeRenderer xyRenderer = (XYLineAndShapeRenderer) xyplot.getRenderer();

        xyRenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
        xyRenderer.setBaseShapesVisible(false);
        if (isShowData) {
            xyRenderer.setBaseItemLabelsVisible(true);
            xyRenderer.setBaseItemLabelGenerator(new StandardXYItemLabelGenerator());
            xyRenderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE1, TextAnchor.BOTTOM_CENTER));
        }
        xyRenderer.setBaseShapesVisible(isShapesVisible);

        DateAxis domainAxis = (DateAxis) xyplot.getDomainAxis();
        domainAxis.setAutoTickUnitSelection(false);
        DateTickUnit dateTickUnit = new DateTickUnit(DateTickUnitType.YEAR, 1, new SimpleDateFormat("yyyy-MM"));
        domainAxis.setTickUnit(dateTickUnit);

        StandardXYToolTipGenerator xyTooltipGenerator = new StandardXYToolTipGenerator("{1}:{2}", new SimpleDateFormat("yyyy-MM-dd"), new DecimalFormat("0"));
        xyRenderer.setBaseToolTipGenerator(xyTooltipGenerator);

        setXY_XAixs(xyplot);
        setXY_YAixs(xyplot);

    }
项目:jasperreports    文件:SimpleChartTheme.java   
protected void setAxisBounds(Axis axis, AxisSettings axisSettings, DateTickUnitType timePeriodUnit, Comparable<?> minValue, Comparable<?> maxValue) throws JRException
{
    if (axis instanceof ValueAxis)
    {
        if (axis instanceof DateAxis)
        {
            if (minValue != null)
            {
                ((DateAxis)axis).setMinimumDate((Date)minValue);
            }
            if (maxValue != null)
            {
                ((DateAxis)axis).setMaximumDate((Date)maxValue);
            }
        }
        else
        {
            if (minValue != null)
            {
                ((ValueAxis)axis).setLowerBound(((Number)minValue).doubleValue());
            }
            if (maxValue != null)
            {
                ((ValueAxis)axis).setUpperBound(((Number)maxValue).doubleValue());
            }
        }

        calculateTickUnits(axis, axisSettings, timePeriodUnit);
    }
}
项目:astor    文件:DateAxisTests.java   
/**
 * Confirm that the equals method can distinguish all the required fields.
 */
public void testEquals() {

    DateAxis a1 = new DateAxis("Test");
    DateAxis a2 = new DateAxis("Test");
    assertTrue(a1.equals(a2));
    assertFalse(a1.equals(null));
    assertFalse(a1.equals("Some non-DateAxis object"));

    // tickUnit
    a1.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 7));
    assertFalse(a1.equals(a2));
    a2.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 7));
    assertTrue(a1.equals(a2));

    // dateFormatOverride
    a1.setDateFormatOverride(new SimpleDateFormat("yyyy"));
    assertFalse(a1.equals(a2));
    a2.setDateFormatOverride(new SimpleDateFormat("yyyy"));
    assertTrue(a1.equals(a2));

    // tickMarkPosition
    a1.setTickMarkPosition(DateTickMarkPosition.END);
    assertFalse(a1.equals(a2));
    a2.setTickMarkPosition(DateTickMarkPosition.END);
    assertTrue(a1.equals(a2));

    // timeline
    a1.setTimeline(SegmentedTimeline.newMondayThroughFridayTimeline());
    assertFalse(a1.equals(a2));
    a2.setTimeline(SegmentedTimeline.newMondayThroughFridayTimeline());
    assertTrue(a1.equals(a2));

}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 millisecond.
 */
public void testPreviousStandardDateMillisecondA() {
    MyDateAxis axis = new MyDateAxis("Millisecond");
    Millisecond m0 = new Millisecond(458, 58, 31, 12, 1, 4, 2007);
    Millisecond m1 = new Millisecond(459, 58, 31, 12, 1, 4, 2007);

    Date d0 = new Date(m0.getFirstMillisecond());
    Date end = new Date(m1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.MILLISECOND, 1);
    axis.setTickUnit(unit);

    // START: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    // MIDDLE: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d0, end);
    psd = axis.previousStandardDate(d0, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    // END: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d0, end);
    psd = axis.previousStandardDate(d0, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 10 milliseconds (just for the sake of having a multiple).
 */
public void testPreviousStandardDateMillisecondB() {
    MyDateAxis axis = new MyDateAxis("Millisecond");
    Millisecond m0 = new Millisecond(458, 58, 31, 12, 1, 4, 2007);
    Millisecond m1 = new Millisecond(459, 58, 31, 12, 1, 4, 2007);

    Date d0 = new Date(m0.getFirstMillisecond());
    Date end = new Date(m1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.MILLISECOND, 10);
    axis.setTickUnit(unit);

    // START: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    // MIDDLE: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d0, end);
    psd = axis.previousStandardDate(d0, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    // END: check d0
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d0, end);
    psd = axis.previousStandardDate(d0, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());
}
项目:astor    文件:DateTickUnitTests.java   
/**
 * Two objects that are equal are required to return the same hashCode.
 */
public void testHashCode() {
    DateTickUnit t1 = new DateTickUnit(DateTickUnitType.DAY, 1);
    DateTickUnit t2 = new DateTickUnit(DateTickUnitType.DAY, 1);
    assertTrue(t1.equals(t2));
    int h1 = t1.hashCode();
    int h2 = t2.hashCode();
    assertEquals(h1, h2);
}
项目:pinot    文件:AnomalyGraphGenerator.java   
private DateTickUnit getDateTickUnit(final TimeGranularity timeGranularity,
    final long windowMillis) {
  long windowBuckets = timeGranularity.convertToUnit(windowMillis);
  int tickSize = (int) Math.ceil(windowBuckets / (double) NUM_X_TICKS);
  DateTickUnitType unitType;
  switch (timeGranularity.getUnit()) {
  case DAYS:
    unitType = DateTickUnitType.DAY;
    break;
  case HOURS:
    unitType = DateTickUnitType.HOUR;
    break;
  case MILLISECONDS:
    unitType = DateTickUnitType.MILLISECOND;
    break;
  case MINUTES:
    unitType = DateTickUnitType.MINUTE;
    break;
  case SECONDS:
    unitType = DateTickUnitType.SECOND;
    break;
  default:
    throw new IllegalArgumentException(
        "Unsupported time unit granularity: " + timeGranularity.getUnit());
  }
  return new DateTickUnit(unitType, tickSize);
}
项目:aorra    文件:CotsOutbreak.java   
public Drawable createChart(final ATSCollection dataset, Dimension dimension) {
    JFreeChart chart = ChartFactory.createTimeSeriesChart(
            dataset.get(Attribute.TITLE),  // title
            dataset.get(Attribute.X_AXIS_LABEL), // x-axis label
            dataset.get(Attribute.Y_AXIS_LABEL),   // y-axis label
            dataset,            // data
            false,               // create legend?
            false,               // generate tooltips?
            false               // generate URLs?
        );
    chart.setBackgroundPaint(Color.white);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.white);
    plot.setDomainGridlinePaint(Color.lightGray);
    plot.setRangeGridlinePaint(Color.lightGray);
    plot.setAxisOffset(new RectangleInsets(5.0, 5.0, 5.0, 5.0));
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);
    final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
    rangeAxis.setAutoRangeIncludesZero(true);
    rangeAxis.setTickUnit(new NumberTickUnit(
        (Math.round(Math.floor(getMaxOutbreaks(dataset)))/20)+1, new DecimalFormat("0")));
    XYItemRenderer r = plot.getRenderer();
    r.setSeriesPaint(0, dataset.get(Attribute.SERIES_COLOR));
    DateAxis axis = (DateAxis) plot.getDomainAxis();
    final SimpleDateFormat dateFormatter = new SimpleDateFormat("yy"); 
    axis.setDateFormatOverride(dateFormatter);
    DateTickUnit unit = new DateTickUnit(DateTickUnitType.YEAR, 1, dateFormatter);
    axis.setTickUnit(unit);
    return new JFreeChartDrawable(chart, dimension);
}
项目:jasperreports    文件:SimpleChartTheme.java   
/**
 * Sets all the axis formatting options.  This includes the colors and fonts to use on
 * the axis as well as the color to use when drawing the axis line.
 *
 * @param axis the axis to format
 * @param labelFont the font to use for the axis label
 * @param labelColor the color of the axis label
 * @param tickLabelFont the font to use for each tick mark value label
 * @param tickLabelColor the color of each tick mark value label
 * @param tickLabelMask formatting mask for the label.  If the axis is a NumberAxis then
 *                      the mask should be <code>java.text.DecimalFormat</code> mask, and
 *                      if it is a DateAxis then the mask should be a
 *                      <code>java.text.SimpleDateFormat</code> mask.
 * @param verticalTickLabels flag to draw tick labels at 90 degrees
 * @param lineColor color to use when drawing the axis line and any tick marks
 * @param isRangeAxis used to distinguish between range and domain axis type
 */
protected void configureAxis(
        Axis axis,
        JRFont labelFont,
        Color labelColor,
        JRFont tickLabelFont,
        Color tickLabelColor,
        String tickLabelMask,
        Boolean verticalTickLabels,
        Paint lineColor,
        AxisSettings axisSettings,
        Comparable<?> axisMinValue,
        Comparable<?> axisMaxValue
        ) throws JRException
{
    configureAxis(axis, labelFont, labelColor, tickLabelFont, tickLabelColor, tickLabelMask, verticalTickLabels, lineColor, axisSettings, DateTickUnitType.YEAR, axisMinValue, axisMaxValue);
}
项目:jasperreports    文件:SimpleChartTheme.java   
/**
     * Sets all the axis formatting options.  This includes the colors and fonts to use on
     * the axis as well as the color to use when drawing the axis line.
     *
     * @param axis the axis to format
     * @param labelFont the font to use for the axis label
     * @param labelColor the color of the axis label
     * @param tickLabelFont the font to use for each tick mark value label
     * @param tickLabelColor the color of each tick mark value label
     * @param tickLabelMask formatting mask for the label.  If the axis is a NumberAxis then
     *                      the mask should be <code>java.text.DecimalFormat</code> mask, and
     *                      if it is a DateAxis then the mask should be a
     *                      <code>java.text.SimpleDateFormat</code> mask.
     * @param verticalTickLabels flag to draw tick labels at 90 degrees
     * @param lineColor color to use when drawing the axis line and any tick marks
     * @param isRangeAxis used to distinguish between range and domain axis type
     * @param timeUnit time unit used to create a DateAxis
     */
    protected void configureAxis(
            Axis axis,
            JRFont labelFont,
            Color labelColor,
            JRFont tickLabelFont,
            Color tickLabelColor,
            String tickLabelMask,
            Boolean verticalTickLabels,
            Paint lineColor,
            AxisSettings axisSettings,
            DateTickUnitType timePeriod,
            Comparable<?> axisMinValue,
            Comparable<?> axisMaxValue
            ) throws JRException
    {
        Boolean axisVisible = axisSettings.getVisible();

        if (axisVisible == null || axisVisible.booleanValue())
        {
            setAxisLine(axis, lineColor, axisSettings);

//          Double defaultFixedDimension = getAxisSettings(isRangeAxis);
//          if (defaultFixedDimension != null)
//          {
//              axis.setFixedDimension(defaultFixedDimension.doubleValue());
//          }

            setAxisLabel(axis, labelFont, labelColor, axisSettings);
            setAxisTickLabels(axis, tickLabelFont, tickLabelColor, tickLabelMask, axisSettings);
            setAxisTickMarks(axis, lineColor, axisSettings);
            setAxisBounds(axis, axisSettings, timePeriod, axisMinValue, axisMaxValue);
            if (verticalTickLabels != null && axis instanceof ValueAxis)
            {
                ((ValueAxis)axis).setVerticalTickLabels(verticalTickLabels.booleanValue());
            }

        }
        else
        {
            axis.setVisible(false);
        }
    }
项目:jasperreports    文件:SimpleChartTheme.java   
/**
     *
     */
    protected JFreeChart createXYBarChart() throws JRException
    {
        IntervalXYDataset tmpDataset = (IntervalXYDataset)getDataset();

        boolean isDate = true;
        if ( getChart().getDataset().getDatasetType() == JRChartDataset.XY_DATASET ){
            isDate = false;
        }

        ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());
        JFreeChart jfreeChart =
            ChartFactory.createXYBarChart(
                evaluateTextExpression(getChart().getTitleExpression()),
                evaluateTextExpression(((JRBarPlot)getPlot()).getCategoryAxisLabelExpression()),
                isDate,
                evaluateTextExpression(((JRBarPlot)getPlot()).getValueAxisLabelExpression()),
                tmpDataset,
                getPlot().getOrientationValue().getOrientation(),
                isShowLegend(),
                true,
                false
                );

        configureChart(jfreeChart, getPlot());

        XYPlot xyPlot = (XYPlot)jfreeChart.getPlot();
        //plot.setNoDataMessage("No data to display");
//      ((XYPlot)plot.getDomainAxis()).setTickMarksVisible(
//          ((JRBarPlot)getPlot()).isShowTickMarks()
//          );
//      ((CategoryAxis)plot.getDomainAxis()).setTickLabelsVisible(
//              ((JRBarPlot)getPlot()).isShowTickLabels()
//              );
//      ((NumberAxis)plot.getRangeAxis()).setTickMarksVisible(
//              ((JRBarPlot)getPlot()).isShowTickMarks()
//              );
//      ((NumberAxis)plot.getRangeAxis()).setTickLabelsVisible(
//              ((JRBarPlot)getPlot()).isShowTickLabels()
//              );


        XYBarRenderer itemRenderer = (XYBarRenderer)xyPlot.getRenderer();
        itemRenderer.setBaseItemLabelGenerator((XYItemLabelGenerator)getLabelGenerator());
        itemRenderer.setShadowVisible(false);

        JRBarPlot barPlot = (JRBarPlot)getPlot();
        boolean isShowLabels = barPlot.getShowLabels() == null ? false : barPlot.getShowLabels().booleanValue();

        itemRenderer.setBaseItemLabelsVisible( isShowLabels );

        // Handle the axis formating for the category axis
        configureAxis(xyPlot.getDomainAxis(), barPlot.getCategoryAxisLabelFont(),
                barPlot.getCategoryAxisLabelColor(), barPlot.getCategoryAxisTickLabelFont(),
                barPlot.getCategoryAxisTickLabelColor(), barPlot.getCategoryAxisTickLabelMask(), barPlot.getCategoryAxisVerticalTickLabels(),
                barPlot.getOwnCategoryAxisLineColor(), getDomainAxisSettings(), DateTickUnitType.DAY,
                (Comparable<?>)evaluateExpression(barPlot.getDomainAxisMinValueExpression()), 
                (Comparable<?>)evaluateExpression(barPlot.getDomainAxisMaxValueExpression())
                );


        // Handle the axis formating for the value axis
        configureAxis(xyPlot.getRangeAxis(), barPlot.getValueAxisLabelFont(),
                barPlot.getValueAxisLabelColor(), barPlot.getValueAxisTickLabelFont(),
                barPlot.getValueAxisTickLabelColor(), barPlot.getValueAxisTickLabelMask(), barPlot.getValueAxisVerticalTickLabels(),
                barPlot.getOwnValueAxisLineColor(), getRangeAxisSettings(), DateTickUnitType.DAY,
                (Comparable<?>)evaluateExpression(barPlot.getRangeAxisMinValueExpression()), 
                (Comparable<?>)evaluateExpression(barPlot.getRangeAxisMaxValueExpression())
                );

        return jfreeChart;
    }
项目:jasperreports    文件:SimpleChartTheme.java   
protected JFreeChart createTimeSeriesChart() throws JRException 
{
    String timeAxisLabel = evaluateTextExpression(((JRTimeSeriesPlot)getPlot()).getTimeAxisLabelExpression());
    String valueAxisLabel = evaluateTextExpression(((JRTimeSeriesPlot)getPlot()).getValueAxisLabelExpression());

    ChartFactory.setChartTheme(StandardChartTheme.createLegacyTheme());
    JFreeChart jfreeChart = 
        ChartFactory.createTimeSeriesChart(
            evaluateTextExpression(getChart().getTitleExpression()),
            timeAxisLabel,
            valueAxisLabel,
            (TimeSeriesCollection)getDataset(),
            isShowLegend(),
            true,
            false );

    configureChart(jfreeChart, getPlot());

    XYPlot xyPlot = (XYPlot)jfreeChart.getPlot();
    JRTimeSeriesPlot timeSeriesPlot = (JRTimeSeriesPlot)getPlot();

    XYLineAndShapeRenderer lineRenderer = (XYLineAndShapeRenderer)xyPlot.getRenderer();

    boolean isShowShapes = timeSeriesPlot.getShowShapes() == null ? true : timeSeriesPlot.getShowShapes().booleanValue();
    boolean isShowLines = timeSeriesPlot.getShowLines() == null ? true : timeSeriesPlot.getShowLines().booleanValue();
    lineRenderer.setBaseLinesVisible(isShowLines);
    lineRenderer.setBaseShapesVisible(isShowShapes);

    // Handle the axis formating for the category axis
    configureAxis(xyPlot.getDomainAxis(), timeSeriesPlot.getTimeAxisLabelFont(),
            timeSeriesPlot.getTimeAxisLabelColor(), timeSeriesPlot.getTimeAxisTickLabelFont(),
            timeSeriesPlot.getTimeAxisTickLabelColor(), timeSeriesPlot.getTimeAxisTickLabelMask(), timeSeriesPlot.getTimeAxisVerticalTickLabels(),
            timeSeriesPlot.getOwnTimeAxisLineColor(), getDomainAxisSettings(), DateTickUnitType.DAY,
            (Comparable<?>)evaluateExpression(timeSeriesPlot.getDomainAxisMinValueExpression()), 
            (Comparable<?>)evaluateExpression(timeSeriesPlot.getDomainAxisMaxValueExpression())
            );

    // Handle the axis formating for the value axis
    configureAxis(xyPlot.getRangeAxis(), timeSeriesPlot.getValueAxisLabelFont(),
            timeSeriesPlot.getValueAxisLabelColor(), timeSeriesPlot.getValueAxisTickLabelFont(),
            timeSeriesPlot.getValueAxisTickLabelColor(), timeSeriesPlot.getValueAxisTickLabelMask(), timeSeriesPlot.getValueAxisVerticalTickLabels(),
            timeSeriesPlot.getOwnValueAxisLineColor(), getRangeAxisSettings(), DateTickUnitType.DAY,
            (Comparable<?>)evaluateExpression(timeSeriesPlot.getRangeAxisMinValueExpression()), 
            (Comparable<?>)evaluateExpression(timeSeriesPlot.getRangeAxisMaxValueExpression())
            );

    return jfreeChart;
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 year.
 */
public void testPreviousStandardDateYearA() {
    MyDateAxis axis = new MyDateAxis("Year");
    Year y2006 = new Year(2006);
    Year y2007 = new Year(2007);

    // five dates to check...
    Date d0 = new Date(y2006.getFirstMillisecond());
    Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
    Date d2 = new Date(y2006.getMiddleMillisecond());
    Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
    Date d4 = new Date(y2006.getLastMillisecond());

    Date end = new Date(y2007.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.YEAR, 1);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 10 years (just for the sake of having a multiple).
 */
public void testPreviousStandardDateYearB() {
    MyDateAxis axis = new MyDateAxis("Year");
    Year y2006 = new Year(2006);
    Year y2007 = new Year(2007);

    // five dates to check...
    Date d0 = new Date(y2006.getFirstMillisecond());
    Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
    Date d2 = new Date(y2006.getMiddleMillisecond());
    Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
    Date d4 = new Date(y2006.getLastMillisecond());

    Date end = new Date(y2007.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.YEAR, 10);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 month.
 */
public void testPreviousStandardDateMonthA() {
    MyDateAxis axis = new MyDateAxis("Month");
    Month nov2006 = new Month(11, 2006);
    Month dec2006 = new Month(12, 2006);

    // five dates to check...
    Date d0 = new Date(nov2006.getFirstMillisecond());
    Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
    Date d2 = new Date(nov2006.getMiddleMillisecond());
    Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
    Date d4 = new Date(nov2006.getLastMillisecond());

    Date end = new Date(dec2006.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.MONTH, 1);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 3 months (just for the sake of having a multiple).
 */
public void testPreviousStandardDateMonthB() {
    MyDateAxis axis = new MyDateAxis("Month");
    Month nov2006 = new Month(11, 2006);
    Month dec2006 = new Month(12, 2006);

    // five dates to check...
    Date d0 = new Date(nov2006.getFirstMillisecond());
    Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
    Date d2 = new Date(nov2006.getMiddleMillisecond());
    Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
    Date d4 = new Date(nov2006.getLastMillisecond());

    Date end = new Date(dec2006.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.MONTH, 3);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 day.
 */
public void testPreviousStandardDateDayA() {
    MyDateAxis axis = new MyDateAxis("Day");
    Day apr12007 = new Day(1, 4, 2007);
    Day apr22007 = new Day(2, 4, 2007);

    // five dates to check...
    Date d0 = new Date(apr12007.getFirstMillisecond());
    Date d1 = new Date(apr12007.getFirstMillisecond() + 500L);
    Date d2 = new Date(apr12007.getMiddleMillisecond());
    Date d3 = new Date(apr12007.getMiddleMillisecond() + 500L);
    Date d4 = new Date(apr12007.getLastMillisecond());

    Date end = new Date(apr22007.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.DAY, 1);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 7 days (just for the sake of having a multiple).
 */
public void testPreviousStandardDateDayB() {
    MyDateAxis axis = new MyDateAxis("Day");
    Day apr12007 = new Day(1, 4, 2007);
    Day apr22007 = new Day(2, 4, 2007);

    // five dates to check...
    Date d0 = new Date(apr12007.getFirstMillisecond());
    Date d1 = new Date(apr12007.getFirstMillisecond() + 500L);
    Date d2 = new Date(apr12007.getMiddleMillisecond());
    Date d3 = new Date(apr12007.getMiddleMillisecond() + 500L);
    Date d4 = new Date(apr12007.getLastMillisecond());

    Date end = new Date(apr22007.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.DAY, 7);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 hour.
 */
public void testPreviousStandardDateHourA() {
    MyDateAxis axis = new MyDateAxis("Hour");
    Hour h0 = new Hour(12, 1, 4, 2007);
    Hour h1 = new Hour(13, 1, 4, 2007);

    // five dates to check...
    Date d0 = new Date(h0.getFirstMillisecond());
    Date d1 = new Date(h0.getFirstMillisecond() + 500L);
    Date d2 = new Date(h0.getMiddleMillisecond());
    Date d3 = new Date(h0.getMiddleMillisecond() + 500L);
    Date d4 = new Date(h0.getLastMillisecond());

    Date end = new Date(h1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.HOUR, 1);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 6 hours (just for the sake of having a multiple).
 */
public void testPreviousStandardDateHourB() {
    MyDateAxis axis = new MyDateAxis("Hour");
    Hour h0 = new Hour(12, 1, 4, 2007);
    Hour h1 = new Hour(13, 1, 4, 2007);

    // five dates to check...
    Date d0 = new Date(h0.getFirstMillisecond());
    Date d1 = new Date(h0.getFirstMillisecond() + 500L);
    Date d2 = new Date(h0.getMiddleMillisecond());
    Date d3 = new Date(h0.getMiddleMillisecond() + 500L);
    Date d4 = new Date(h0.getLastMillisecond());

    Date end = new Date(h1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.HOUR, 6);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 1 second.
 */
public void testPreviousStandardDateSecondA() {
    MyDateAxis axis = new MyDateAxis("Second");
    Second s0 = new Second(58, 31, 12, 1, 4, 2007);
    Second s1 = new Second(59, 31, 12, 1, 4, 2007);

    // five dates to check...
    Date d0 = new Date(s0.getFirstMillisecond());
    Date d1 = new Date(s0.getFirstMillisecond() + 50L);
    Date d2 = new Date(s0.getMiddleMillisecond());
    Date d3 = new Date(s0.getMiddleMillisecond() + 50L);
    Date d4 = new Date(s0.getLastMillisecond());

    Date end = new Date(s1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.SECOND, 1);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateAxisTests.java   
/**
 * A basic check for the testPreviousStandardDate() method when the
 * tick unit is 5 seconds (just for the sake of having a multiple).
 */
public void testPreviousStandardDateSecondB() {
    MyDateAxis axis = new MyDateAxis("Second");
    Second s0 = new Second(58, 31, 12, 1, 4, 2007);
    Second s1 = new Second(59, 31, 12, 1, 4, 2007);

    // five dates to check...
    Date d0 = new Date(s0.getFirstMillisecond());
    Date d1 = new Date(s0.getFirstMillisecond() + 50L);
    Date d2 = new Date(s0.getMiddleMillisecond());
    Date d3 = new Date(s0.getMiddleMillisecond() + 50L);
    Date d4 = new Date(s0.getLastMillisecond());

    Date end = new Date(s1.getLastMillisecond());

    DateTickUnit unit = new DateTickUnit(DateTickUnitType.SECOND, 5);
    axis.setTickUnit(unit);

    // START: check d0 and d1
    axis.setTickMarkPosition(DateTickMarkPosition.START);

    axis.setRange(d0, end);
    Date psd = axis.previousStandardDate(d0, unit);
    Date nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d0.getTime());
    assertTrue(nsd.getTime() >= d0.getTime());

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    // MIDDLE: check d1, d2 and d3
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    axis.setRange(d1, end);
    psd = axis.previousStandardDate(d1, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d1.getTime());
    assertTrue(nsd.getTime() >= d1.getTime());

    axis.setRange(d2, end);
    psd = axis.previousStandardDate(d2, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d2.getTime());
    assertTrue(nsd.getTime() >= d2.getTime());

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    // END: check d3 and d4
    axis.setTickMarkPosition(DateTickMarkPosition.END);

    axis.setRange(d3, end);
    psd = axis.previousStandardDate(d3, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d3.getTime());
    assertTrue(nsd.getTime() >= d3.getTime());

    axis.setRange(d4, end);
    psd = axis.previousStandardDate(d4, unit);
    nsd = unit.addToDate(psd, TimeZone.getDefault());
    assertTrue(psd.getTime() < d4.getTime());
    assertTrue(nsd.getTime() >= d4.getTime());
}
项目:astor    文件:DateTickUnitTests.java   
/**
 * Confirm that the equals method can distinguish all the required fields.
 */
public void testEquals() {
    DateTickUnit t1 = new DateTickUnit(DateTickUnitType.DAY, 1);
    DateTickUnit t2 = new DateTickUnit(DateTickUnitType.DAY, 1);
    assertTrue(t1.equals(t2));
}
项目:pm    文件:ChartMain.java   
public JFreeChart initChart(final StripedCloseFunction stripedCloseFunction) {

        Runnable runnable = new Runnable() {

            @Override
            public void run() {

                Date arbitraryStartDate = stripedCloseFunction.getArbitraryStartDateForChart();
                Date arbitraryEndDate = stripedCloseFunction.getArbitraryEndDate();

                xAxis = new DateAxis();
                xAxis.setAutoRange(true);
                xAxis.setTimeline(tradingTimeLine());
                xAxis.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, domainTicksMultiple(arbitraryStartDate, arbitraryEndDate)));
                xAxis.setMinorTickMarksVisible(true);
                if (jFreeTimePeriod.equals(JFreeChartTimePeriod.DAY)) xAxis.setDateFormatOverride(new SimpleDateFormat("dd MMM yy"));

                /// Y axis
                //Line Y axis
                mainYAxis = new NumberAxis();    
                mainYAxis.setAutoRange(true);
                mainYAxis.setAutoRangeIncludesZero(false);
                mainYAxis.setTickLabelFont(mainYAxis.getTickLabelFont().deriveFont(7f));
                mainYAxis.setLabelFont(mainYAxis.getLabelFont().deriveFont(10f));

                //Indicator Y axis (indicator is not showing at init)
                //indicYAxis = initYAxis();

                /// Plots
                //Lines
                XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(true, false);
                lineRenderer.setBaseItemLabelsVisible(true);    
                TimeSeriesCollection lineDataset = new TimeSeriesCollection();
                mainPlot = new XYPlot(lineDataset, null, null, lineRenderer);
                mainPlot.addRangeMarker(new ValueMarker(0));
                mainPlot.setRangeAxis(0, mainYAxis);
                mainPlot.setDomainMinorGridlinesVisible(true);

                //Bars
                TimeSeriesCollection barDataset = new TimeSeriesCollection();
                XYBarRenderer barRenderer = new XYBarRenderer();
                mainPlot.setRenderer(1, barRenderer);
                barChartDisplayStrategy.setBarYAxis();
                mainPlot.setDataset(1, barDataset);

                //Indicator plot
                //This is not created from start

                //Combine
                CombinedDomainXYPlot combinedDomainXYPlot = new CombinedDomainXYPlot(xAxis);
                combinedDomainXYPlot.add(mainPlot, CHARTS_TOTAL_WEIGHT);

                //Create
                ChartMain.this.jFreeChart = new JFreeChart(combinedDomainXYPlot);
                ChartMain.this.jFreeChart.removeLegend();

            }
        };

        try {
            EventQueue.invokeAndWait(runnable);
        } catch (Exception e) {
            LOGGER.error(e,e);
        }

        return this.jFreeChart;
    }
项目:pm    文件:ChartGenerator.java   
private JFreeChart generateChart(Boolean hasDifferentRangeAxis, SortedMap<DataSetBarDescr, SortedMap<Date,Double>> lineSeries, SortedMap<DataSetBarDescr, SortedMap<Date,Double>> barSeries) {

    DateAxis hAxis = new DateAxis("Time line");
    DateFormat dateFormat = new SimpleDateFormat("dd MMM yy");
    hAxis.setTickUnit(new DateTickUnit(DateTickUnitType.MONTH, 6, dateFormat));
    hAxis.setLowerMargin(0.0f);
    hAxis.setUpperMargin(0.0f);

    XYPlot plot = new XYPlot();
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainAxis(hAxis);
    if (hasDifferentRangeAxis) {
        NumberAxis premRangeAxis = new NumberAxis();
        premRangeAxis.setAutoRangeIncludesZero(false);
        plot.setRangeAxis(0, premRangeAxis);
        NumberAxis secRangeAxis = new NumberAxis();
        secRangeAxis.setVisible(false);
        plot.setRangeAxis(1, secRangeAxis);
        plot.mapDatasetToRangeAxis(1, 1);
    } else {
        plot.setRangeAxis(new NumberAxis());
    }
    plot.setOrientation(PlotOrientation.VERTICAL);
    plot.setRangeGridlinesVisible(false);
    plot.setDomainGridlinesVisible(true);

    //Line rendering
    XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer(true, false);
    plot.setRenderer(0, lineRenderer);
    TimeSeriesCollection dataset = buildDataSet(lineSeries, lineRenderer);
    plot.setDataset(0, dataset);

    //Bar rendering
    XYBarRenderer barRenderer = new XYBarRenderer();
    plot.setRenderer(1, barRenderer);
    TimeSeriesCollection barDataset = buildDataSet(barSeries, barRenderer);
    plot.setDataset(1, barDataset);

    //Chart
    JFreeChart jFreeChart = new JFreeChart(plot);
    jFreeChart.setTitle(title);
    return jFreeChart;
}
项目:freedomotic    文件:GraphPanel.java   
private void createChart(UsageDataFrame points, String title) {
    series = new TimeSeries(title);

    for (UsageData d : points.getData()) {
        Date resultdate = d.getDateTime();
        Millisecond msRead = new Millisecond(resultdate);
        int poweredValue = -1;
        if (d.getObjBehavior().equalsIgnoreCase("powered")) {
            poweredValue = d.getObjValue().equalsIgnoreCase("true") ? 1 : 0;
        } else if (d.getObjBehavior().equalsIgnoreCase("brigthness")) {
            try {
                poweredValue = Integer.parseInt(d.getObjValue());
            } catch (NumberFormatException ex) {
                poweredValue = -1;
            }
        }
        series.addOrUpdate(msRead, poweredValue);
    }

    XYDataset xyDataset = new TimeSeriesCollection(series);

    chart = ChartFactory.createTimeSeriesChart("Chart",
            "TIME", "VALUE",
            xyDataset,
            true, // legend
            true, // tooltips
            false // urls
    );
    chart.setAntiAlias(true);
    // Set plot styles
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.lightGray);
    plot.setDomainGridlinePaint(Color.white);
    plot.setRangeGridlinePaint(Color.white);
    plot.setAxisOffset(new RectangleInsets(2.0, 2.0, 2.0, 2.0));
    // Set series line styles
    plot.setRenderer(new XYStepRenderer());

    XYItemRenderer r = plot.getRenderer();
    if (r instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r;
        renderer.setShapesVisible(true);
        renderer.setShapesFilled(true);
    }

    // Set date axis style
    DateAxis axis = (DateAxis) plot.getDomainAxis();

    String formatString = "MM-dd HH";
    DateTickUnitType dtut = DateTickUnitType.HOUR;

    if (jComboGranularity.getSelectedItem().equals("Year")) {
        formatString = "yyyy";
        dtut = DateTickUnitType.YEAR;
    } else if (jComboGranularity.getSelectedItem().equals("Month")) {
        axis.setDateFormatOverride(new SimpleDateFormat("yyyy-MM"));
        dtut = DateTickUnitType.MONTH;
    } else if (jComboGranularity.getSelectedItem().equals("Day")) {
        axis.setDateFormatOverride(new SimpleDateFormat("MM-dd"));
        dtut = DateTickUnitType.DAY;
    } else if (jComboGranularity.getSelectedItem().equals("Minute")) {
        formatString = "MM-dd HH:mm";
        dtut = DateTickUnitType.MINUTE;
    } else if (jComboGranularity.getSelectedItem().equals("Second")) {
        formatString = "HH:mm:SS";
        dtut = DateTickUnitType.SECOND;
    }

    DateFormat formatter = new SimpleDateFormat(formatString);
    DateTickUnit unit = new DateTickUnit(dtut, 1, formatter);
    axis.setTickUnit(unit);

    ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(800, 500));
    graphPanel.removeAll();
    graphPanel.add(chartPanel);

}