Example usage for org.jfree.data.time Hour Hour

List of usage examples for org.jfree.data.time Hour Hour

Introduction

In this page you can find the example usage for org.jfree.data.time Hour Hour.

Prototype

public Hour(Date time) 

Source Link

Document

Constructs a new instance, based on the supplied date/time and the default time zone.

Usage

From source file:org.codehaus.mojo.dashboard.report.plugin.chart.time.AbstractTimeChartStrategy.java

/**
 *
 * @param keyDate//  ww  w.  ja v  a2s . c  o m
 * @return
 */
protected RegularTimePeriod getChartDate(Date keyDate) {
    RegularTimePeriod chartDate = null;
    if (timePeriod.equals(TimePeriod.MINUTE)) {
        chartDate = new Minute(keyDate);
    } else if (timePeriod.equals(TimePeriod.HOUR)) {
        chartDate = new Hour(keyDate);
    } else if (timePeriod.equals(TimePeriod.DAY)) {
        chartDate = new Day(keyDate);
    } else if (timePeriod.equals(TimePeriod.WEEK)) {
        chartDate = new Week(keyDate);
    } else if (timePeriod.equals(TimePeriod.MONTH)) {
        chartDate = new Month(keyDate);
    } else {
        chartDate = new Hour(keyDate);
    }
    return chartDate;
}

From source file:com.sonyericsson.jenkins.plugins.bfa.graphs.TimeSeriesChart.java

@Override
protected JFreeChart createGraph() {
    TimeTableXYDataset dataset = createDataset();
    ValueAxis xAxis = new DateAxis();
    xAxis.setLowerMargin(0.0);//  w w w  . jav a 2  s  .  com
    xAxis.setUpperMargin(0.0);
    Calendar lowerBound = getLowerGraphBound();
    xAxis.setRange(lowerBound.getTimeInMillis(), Calendar.getInstance().getTimeInMillis());

    NumberAxis yAxis = new NumberAxis(Y_AXIS_LABEL);
    yAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());

    StackedXYBarRenderer renderer = new StackedXYBarRenderer();
    renderer.setBaseToolTipGenerator(new XYToolTipGenerator() {
        @Override
        public String generateToolTip(XYDataset dataset, int series, int item) {
            String seriesKey = dataset.getSeriesKey(series).toString();
            StringBuilder sb = new StringBuilder();

            if (seriesKey.equals(GRAPH_OTHERS)) {
                long timeInMillis = dataset.getX(series, item).longValue();
                Date time = new Date(timeInMillis);

                TimePeriod period = null;
                if (intervalSize == Calendar.DATE) {
                    period = new Day(time);
                } else if (intervalSize == Calendar.HOUR_OF_DAY) {
                    period = new Hour(time);
                } else if (intervalSize == Calendar.MONTH) {
                    period = new Month(time);
                }
                List<FailureCauseTimeInterval> excludedDataList = excludedDataForPeriod.get(period);
                if (excludedDataList != null) {
                    Collections.sort(excludedDataList, new Comparator<FailureCauseTimeInterval>() {

                        @Override
                        public int compare(FailureCauseTimeInterval o1, FailureCauseTimeInterval o2) {
                            return o2.getNumber() - o1.getNumber();
                        }
                    });
                    for (FailureCauseTimeInterval excludedData : excludedDataList) {
                        sb.append(excludedData).append(" \n");
                    }
                }
            } else {
                int number = dataset.getY(series, item).intValue();
                sb.append(seriesKey).append(": ").append(number);
            }
            return sb.toString();
        }
    });

    XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);
    plot.setOrientation(PlotOrientation.VERTICAL);

    plot.setRangeAxis(yAxis);

    JFreeChart chart = new JFreeChart(graphTitle, JFreeChart.DEFAULT_TITLE_FONT, plot, true);

    return chart;
}

From source file:grisu.frontend.view.swing.files.preview.fileViewers.JobStatusGridFileViewer.java

private synchronized void generateGraph() {

    cpusSeries.clear();/*w w  w .ja v a  2  s. c o m*/
    licensesUserSeries.clear();
    licensesAllSeries.clear();
    ligandsSeries.clear();

    List<String> lines;
    try {
        lines = FileUtils.readLines(this.csvFile);
    } catch (final IOException e) {
        myLogger.error(e.getLocalizedMessage(), e);
        return;
    }

    for (int i = 0; i < lines.size(); i++) {

        final String[] tokens = lines.get(i).split(",");
        final Date date = new Date(Long.parseLong(tokens[0]) * 1000);
        int cpus = Integer.parseInt(tokens[1]);
        if (cpus < 0) {
            cpus = 0;
        }
        int licensesUser = Integer.parseInt(tokens[2]);
        if (licensesUser < 0) {
            licensesUser = 0;
        }
        int licensesAll = Integer.parseInt(tokens[3]);
        if (licensesAll < 0) {
            licensesAll = 0;
        }
        final int ligands = Integer.parseInt(tokens[4]);

        RegularTimePeriod p = null;
        if (showMinutes) {
            p = new Minute(date);
        } else {
            p = new Hour(date);
        }

        cpusSeries.addOrUpdate(p, cpus);
        licensesUserSeries.addOrUpdate(p, licensesUser);
        licensesAllSeries.addOrUpdate(p, licensesAll);
        ligandsSeries.addOrUpdate(p, ligands);

    }

}

From source file:com.appnativa.rare.ui.chart.jfreechart.ChartHelper.java

public static RegularTimePeriod getTimePeriod(Date date, ChartAxis.TimeUnit tm) {
    RegularTimePeriod tp;/*from www. ja  v  a2  s .c o m*/

    switch (tm) {
    case MILLISECOND:
        tp = new Millisecond(date);

        break;

    case SECOND:
        tp = new Second(date);

        break;

    case MINUTE:
        tp = new Minute(date);

        break;

    case HOUR:
        tp = new Hour(date);

        break;

    case WEEK:
        tp = new Week(date);

        break;

    case MONTH:
        tp = new Month(date);

        break;

    case YEAR:
        tp = new Year(date);

        break;

    default:
        tp = new Day(date);

        break;
    }

    return tp;
}

From source file:de.dal33t.powerfolder.ui.information.stats.StatsInformationCard.java

private void redrawUsedBandwidthStats() {

    Cursor c = CursorUtils.setWaitCursor(uiComponent);
    try {//ww  w  .j a v  a2s . c  om

        int usedGraphType = usedGraphTypeComboBox.getSelectedIndex();
        int usedDataType = usedDataTypeComboBox.getSelectedIndex();

        availableBandwidthSeries.clear();
        usedBandwidthSeries.clear();
        averageBandwidthSeries.clear();

        Set<CoalescedBandwidthStat> stats = getController().getTransferManager().getBandwidthStats();
        Calendar cal = Calendar.getInstance();
        boolean first = true;
        Date last = null;
        for (CoalescedBandwidthStat stat : stats) {
            Hour hour = new Hour(stat.getDate());
            if (first) {
                first = false;
                cal.setTime(stat.getDate());
            }
            if (stat.getInfo() == BandwidthLimiterInfo.WAN_INPUT && usedDataType == 0
                    || stat.getInfo() == BandwidthLimiterInfo.WAN_OUTPUT && usedDataType == 1
                    || stat.getInfo() == BandwidthLimiterInfo.LAN_INPUT && usedDataType == 2
                    || stat.getInfo() == BandwidthLimiterInfo.LAN_OUTPUT && usedDataType == 3) {
                if (usedGraphType == 0 || usedGraphType == 1) {
                    usedBandwidthSeries.add(hour, stat.getUsedBandwidth() / 1000.0);
                }
                if (usedGraphType == 0 || usedGraphType == 2) {
                    availableBandwidthSeries.add(hour, stat.getInitialBandwidth() / 1000.0);
                }
                if (usedGraphType == 3) {
                    averageBandwidthSeries.add(hour, stat.getAverageUsedBandwidth() / 1000.0);
                }
            }
            last = stat.getDate();
        }
        if (last != null) {
            while (cal.getTime().before(last)) {
                Hour hour = new Hour(cal.getTime());
                if (availableBandwidthSeries.getDataItem(hour) == null) {
                    availableBandwidthSeries.add(hour, 0.0);
                }
                if (usedBandwidthSeries.getDataItem(hour) == null) {
                    usedBandwidthSeries.add(hour, 0.0);
                }
                if (averageBandwidthSeries.getDataItem(hour) == null) {
                    averageBandwidthSeries.add(hour, 0.0);
                }
                cal.add(Calendar.HOUR, 1);
            }
        }
    } finally {
        CursorUtils.returnToOriginal(uiComponent, c);
    }
}

From source file:org.tolven.graph.GraphMenuEventHandler.java

private XYDataset createDataset() throws Exception {
    MenuPath elementPath = new MenuPath(getElement());
    MenuStructure dataMS = getAction().getParent();
    MenuPath mdPath = new MenuPath(dataMS.getPath(), elementPath);
    MenuQueryControl ctrl = new MenuQueryControl();
    ctrl.setLimit(5000); // TODO: This is a hard coded hard query limit that should be in a property or something
    ctrl.setMenuStructure(dataMS);/*from  w ww .j  a v a  2 s .co m*/
    ctrl.setAccountUser(getAccountUser());
    ctrl.setNow(getTolvenNow());
    ctrl.setOffset(0);
    ctrl.setOriginalTargetPath(mdPath);
    ctrl.setRequestedPath(mdPath);
    List<MenuData> menuData = getMenuBean().findMenuData(ctrl);
    Properties menuEventHandlerData = getAction().getMenuEventHandlerDataMap();
    String timeColumn = menuEventHandlerData.getProperty("timeColumn");
    String valueColumn = menuEventHandlerData.getProperty("valueColumn");
    String unitsColumn = menuEventHandlerData.getProperty("unitsColumn");
    String datasetColumn = menuEventHandlerData.getProperty("datasetColumn");
    String[] datasetUnitsArray = getRequest().getParameter("datasetunits").split(",");
    List<String> datasetUnits = new ArrayList<String>();
    for (String string : datasetUnitsArray) {
        datasetUnits.add(string);
    }
    Map<String, String[]> datasetUnitMap = createDatasetUnitsMap();
    Map<String, TimeSeries> timeSeriesMap = new HashMap<String, TimeSeries>();
    for (String[] datasetUnitArray : datasetUnitMap.values()) {
        String dataset = datasetUnitArray[0];
        String unit = datasetUnitArray[1];
        String datasetUnit = dataset + unit;
        if (datasetUnits.contains(datasetUnit)) {
            timeSeriesMap.put(datasetUnit, new TimeSeries(dataset + " (" + unit + ")", Hour.class));
        }
    }
    for (MenuData md : menuData) {
        String dataset = md.getStringField(datasetColumn);
        String units = md.getStringField(unitsColumn);
        String datasetUnit = dataset + units;
        TimeSeries currentTimeSeries = timeSeriesMap.get(datasetUnit);
        if (currentTimeSeries != null) {
            GregorianCalendar cal = new GregorianCalendar();
            cal.setTime(md.getDateField(timeColumn));
            Hour hour = new Hour(cal.getTime());
            currentTimeSeries.addOrUpdate(hour,
                    md.getInternalPQValueField(md.getColumn(valueColumn).getInternal()));

        }
    }
    TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection();
    for (TimeSeries timeSeries : timeSeriesMap.values()) {
        timeSeriesCollection.addSeries(timeSeries);
    }
    timeSeriesCollection.setDomainIsPointsInTime(true);
    TolvenLogger.info("Done preparing Dataset", GraphMenuEventHandler.class);
    return timeSeriesCollection;
}

From source file:org.gbif.portal.web.controller.dataset.IndexingHistoryController.java

/**
 * Create a time series graphic to display indexing processes.
 * //from  ww w  .j av  a2 s . c  o m
 * @param dataProvider
 * @param dataResource
 * @param activities
 * @param fileNamePrefix
 * @return
 */
public String timeSeriesTest(DataProviderDTO dataProvider, DataResourceDTO dataResource,
        List<LoggedActivityDTO> loggedActivities, String fileNamePrefix, int minProcessingTimeToRender) {

    List<LoggedActivityDTO> activities = new ArrayList<LoggedActivityDTO>();
    for (LoggedActivityDTO la : loggedActivities) {
        if (la.getDataResourceKey() != null && la.getDataResourceName() != null && la.getEventName() != null)
            activities.add(la);
    }

    //if no activities to render, return
    if (activities.isEmpty())
        return null;

    Map<String, Integer> drActualCount = new HashMap<String, Integer>();
    Map<String, Integer> drCount = new HashMap<String, Integer>();

    //record the actual counts
    for (LoggedActivityDTO laDTO : activities) {
        if (laDTO.getStartDate() != null && laDTO.getEndDate() != null
                && laDTO.getDurationInMillisecs() > minProcessingTimeToRender) {
            if (drActualCount.get(laDTO.getDataResourceName()) == null) {
                drActualCount.put(laDTO.getDataResourceName(), new Integer(4));
                drCount.put(laDTO.getDataResourceName(), new Integer(0));
            } else {
                Integer theCount = drActualCount.get(laDTO.getDataResourceName());
                theCount = new Integer(theCount.intValue() + 4);
                drActualCount.remove(laDTO.getDataResourceName());
                drActualCount.put(laDTO.getDataResourceName(), theCount);
            }
        }
    }

    StringBuffer fileNameBuffer = new StringBuffer(fileNamePrefix);
    if (dataResource != null) {
        fileNameBuffer.append("-resource-");
        fileNameBuffer.append(dataResource.getKey());
    } else if (dataProvider != null) {
        fileNameBuffer.append("-provider-");
        fileNameBuffer.append(dataProvider.getKey());
    }
    fileNameBuffer.append(".png");

    String fileName = fileNameBuffer.toString();
    String filePath = System.getProperty("java.io.tmpdir") + File.separator + fileName;

    File fileToCheck = new File(filePath);
    if (fileToCheck.exists()) {
        return fileName;
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    boolean generateChart = false;

    int count = 1;
    int dataResourceCount = 1;

    Collections.sort(activities, new Comparator<LoggedActivityDTO>() {
        public int compare(LoggedActivityDTO o1, LoggedActivityDTO o2) {
            if (o1 == null || o2 == null || o1.getDataResourceKey() != null || o2.getDataResourceKey() != null)
                return -1;
            return o1.getDataResourceKey().compareTo(o2.getDataResourceKey());
        }
    });

    String currentDataResourceKey = activities.get(0).getDataResourceKey();

    for (LoggedActivityDTO laDTO : activities) {
        if (laDTO.getStartDate() != null && laDTO.getEndDate() != null
                && laDTO.getDurationInMillisecs() > minProcessingTimeToRender) {

            if (currentDataResourceKey != null && !currentDataResourceKey.equals(laDTO.getDataResourceKey())) {
                dataResourceCount++;
                count = count + 1;
                currentDataResourceKey = laDTO.getDataResourceKey();
            }
            TimeSeries s1 = new TimeSeries(laDTO.getDataResourceName(), "Process time period",
                    laDTO.getEventName(), Hour.class);
            s1.add(new Hour(laDTO.getStartDate()), count);
            s1.add(new Hour(laDTO.getEndDate()), count);
            dataset.addSeries(s1);
            generateChart = true;
        }
    }

    if (!generateChart)
        return null;

    // create a pie chart...
    final JFreeChart chart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, false, false);

    XYPlot plot = chart.getXYPlot();
    plot.setWeight(10);
    plot.getRangeAxis().setAutoRange(false);
    plot.getRangeAxis().setRange(0, drCount.size() + 1);
    plot.getRangeAxis().setAxisLineVisible(false);
    plot.getRangeAxis().setAxisLinePaint(Color.WHITE);
    plot.setDomainCrosshairValue(1);
    plot.setRangeGridlinesVisible(false);
    plot.getRangeAxis().setVisible(false);
    plot.getRangeAxis().setLabel("datasets");

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
    renderer.setItemLabelsVisible(true);
    MyXYItemLabelGenerator labelGenerator = new MyXYItemLabelGenerator();
    labelGenerator.setDataResourceActualCount(drActualCount);
    labelGenerator.setDataResourceCount(drCount);
    renderer.setItemLabelGenerator(labelGenerator);

    List<TimeSeries> seriesList = dataset.getSeries();
    for (TimeSeries series : seriesList) {
        if (((String) series.getRangeDescription()).startsWith("extraction")) {
            renderer.setSeriesPaint(seriesList.indexOf(series), Color.RED);
        } else {
            renderer.setSeriesPaint(seriesList.indexOf(series), Color.BLUE);
        }
        renderer.setSeriesStroke(seriesList.indexOf(series), new BasicStroke(7f));
    }

    int imageHeight = 30 * dataResourceCount;
    if (imageHeight < 100) {
        imageHeight = 100;
    } else {
        imageHeight = imageHeight + 100;
    }

    final BufferedImage image = new BufferedImage(900, imageHeight, BufferedImage.TYPE_INT_RGB);
    KeypointPNGEncoderAdapter adapter = new KeypointPNGEncoderAdapter();
    adapter.setQuality(1);
    try {
        adapter.encode(image);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
    final Graphics2D g2 = image.createGraphics();
    g2.setFont(new Font("Arial", Font.PLAIN, 11));
    final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 900, imageHeight);

    // draw
    chart.draw(g2, chartArea, null, null);

    //styling
    chart.setPadding(new RectangleInsets(0, 0, 0, 0));
    chart.setBorderVisible(false);
    chart.setBackgroundImageAlpha(0);
    chart.setBackgroundPaint(Color.WHITE);
    chart.setBorderPaint(Color.LIGHT_GRAY);

    try {
        FileOutputStream fOut = new FileOutputStream(filePath);
        ChartUtilities.writeChartAsPNG(fOut, chart, 900, imageHeight);
        return fileName;
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }
    return null;
}

From source file:de.dal33t.powerfolder.ui.information.stats.StatsInformationCard.java

private void redrawPercentageBandwidthStats() {

    Cursor c = CursorUtils.setWaitCursor(uiComponent);
    try {/*from w ww .  ja  v  a2  s. c o m*/

        int percentDataType = percentDataTypeComboBox.getSelectedIndex();

        percentageBandwidthSeries.clear();

        Set<CoalescedBandwidthStat> stats = getController().getTransferManager().getBandwidthStats();
        Calendar cal = Calendar.getInstance();
        boolean first = true;
        Date last = null;
        for (CoalescedBandwidthStat stat : stats) {
            Hour hour = new Hour(stat.getDate());
            if (first) {
                first = false;
                cal.setTime(stat.getDate());
            }
            if (stat.getInfo() == BandwidthLimiterInfo.WAN_INPUT && percentDataType == 0
                    || stat.getInfo() == BandwidthLimiterInfo.WAN_OUTPUT && percentDataType == 1
                    || stat.getInfo() == BandwidthLimiterInfo.LAN_INPUT && percentDataType == 2
                    || stat.getInfo() == BandwidthLimiterInfo.LAN_OUTPUT && percentDataType == 3) {
                percentageBandwidthSeries.add(hour, stat.getPercentageUsedBandwidth());
            }
            last = stat.getDate();
        }
        if (last != null) {
            while (cal.getTime().before(last)) {
                Hour hour = new Hour(cal.getTime());
                if (percentageBandwidthSeries.getDataItem(hour) == null) {
                    percentageBandwidthSeries.add(hour, 0.0);
                }
                cal.add(Calendar.HOUR, 1);
            }
        }
    } finally {
        CursorUtils.returnToOriginal(uiComponent, c);
    }
}

From source file:no.met.jtimeseries.chart.Utility.java

/**
 * Return regulartimeperiod for create dataset
 * // w  w w  .j  av  a2s  . c  o m
 * @param timeBase
 * @param time
 * @return
 */
public static RegularTimePeriod getPeriod(TimeBase timeBase, Date date) {
    RegularTimePeriod period = null;

    if (timeBase == TimeBase.YEAR)
        period = new Year(date);
    else if (timeBase == TimeBase.MONTH)
        period = new Month(date);
    else if (timeBase == TimeBase.DAY)
        period = new Day(date);
    else if (timeBase == TimeBase.HOUR)
        period = new Hour(date);
    else if (timeBase == TimeBase.MINUTE)
        period = new Minute(date);
    else if (timeBase == TimeBase.SECOND)
        period = new Second(date);
    else if (timeBase == TimeBase.HOUR_3)
        return new FlexibleHour(date, 3);
    else if (timeBase == TimeBase.HOUR_6)
        return new FlexibleHour(date, 6);
    else if (timeBase == TimeBase.HOUR_12)
        return new FlexibleHour(date, 12);
    else if (timeBase == TimeBase.HOUR_24)
        return new FlexibleHour(date, 24);

    return period;
}

From source file:edu.jhuapl.graphs.jfreechart.JFreeChartTimeSeriesGraphSource.java

private static Hour makeHour(TimePointInterface point) {
    return new Hour(point.getDescriminator());
}