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

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

Introduction

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

Prototype

public Week(Date time) 

Source Link

Document

Creates a time period for the week in which the specified date/time falls, using the default time zone and locale (the locale can affect the day-of-the-week that marks the beginning of the week, as well as the minimal number of days in the first week of the year).

Usage

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

/**
 *
 * @param keyDate//from   ww  w . j a  v  a  2 s .  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:org.adempiere.apps.graph.ChartBuilder.java

private void addData(MChartDatasource ds) {

    String value = ds.getValueColumn();
    String category;//from   w  w w  .  j a v a  2s .  co m
    String unit = "D";

    if (!chartModel.isTimeSeries())
        category = ds.getCategoryColumn();
    else {
        if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Week)) {
            unit = "W";
        } else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Month)) {
            unit = "MM";
        } else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Quarter)) {
            unit = "Q";
        } else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Year)) {
            unit = "Y";
        }

        category = " TRUNC(" + ds.getDateColumn() + ", '" + unit + "') ";
    }

    String series = DB.TO_STRING(ds.getName());
    boolean hasSeries = false;
    if (ds.getSeriesColumn() != null) {
        series = ds.getSeriesColumn();
        hasSeries = true;
    }

    String where = ds.getWhereClause();
    if (!Util.isEmpty(where)) {
        where = Env.parseContext(Env.getCtx(), chartModel.getWindowNo(), where, true);
    }

    boolean hasWhere = false;

    String sql = "SELECT " + value + ", " + category + ", " + series + " FROM " + ds.getFromClause();
    if (!Util.isEmpty(where)) {
        sql += " WHERE " + where;
        hasWhere = true;
    }

    Date currentDate = Env.getContextAsDate(Env.getCtx(), "#Date");
    Date startDate = null;
    Date endDate = null;

    int scope = chartModel.getTimeScope();
    int offset = ds.getTimeOffset();

    if (chartModel.isTimeSeries() && scope != 0) {
        offset += -scope;
        startDate = increment(currentDate, chartModel.getTimeUnit(), offset);
        endDate = increment(startDate, chartModel.getTimeUnit(), scope);
    }

    if (startDate != null && endDate != null) {
        sql += hasWhere ? " AND " : " WHERE ";
        sql += category + ">=TRUNC(" + DB.TO_DATE(new Timestamp(startDate.getTime())) + ", '" + unit
                + "') AND ";
        sql += category + "<=TRUNC(" + DB.TO_DATE(new Timestamp(endDate.getTime())) + ", '" + unit + "') ";
    }

    if (sql.indexOf('@') >= 0) {
        sql = Env.parseContext(Env.getCtx(), 0, sql, false, true);
    }

    MRole role = MRole.getDefault(Env.getCtx(), false);
    sql = role.addAccessSQL(sql, null, true, false);

    if (hasSeries)
        sql += " GROUP BY " + series + ", " + category + " ORDER BY " + series + ", " + category;
    else
        sql += " GROUP BY " + category + " ORDER BY " + category;

    log.log(Level.FINE, sql);

    PreparedStatement pstmt = null;
    ResultSet rs = null;
    TimeSeries tseries = null;
    Dataset dataset = getDataset();

    try {
        pstmt = DB.prepareStatement(sql, null);
        rs = pstmt.executeQuery();
        while (rs.next()) {

            String key = rs.getString(2);
            String seriesName = rs.getString(3);
            if (seriesName == null)
                seriesName = ds.getName();
            String queryWhere = "";
            if (hasWhere)
                queryWhere += where + " AND ";

            queryWhere += series + " = " + DB.TO_STRING(seriesName) + " AND " + category + " = ";

            if (chartModel.isTimeSeries() && dataset instanceof TimeSeriesCollection) {

                if (tseries == null || !tseries.getKey().equals(seriesName)) {
                    if (tseries != null)
                        ((TimeSeriesCollection) dataset).addSeries(tseries);

                    tseries = new TimeSeries(seriesName);
                }

                Date date = rs.getDate(2);
                RegularTimePeriod period = null;

                if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Day))
                    period = new Day(date);
                else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Week))
                    period = new Week(date);
                else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Month))
                    period = new Month(date);
                else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Quarter))
                    period = new Quarter(date);
                else if (chartModel.getTimeUnit().equals(MChart.TIMEUNIT_Year))
                    period = new Year(date);

                tseries.add(period, rs.getBigDecimal(1));
                key = period.toString();
                queryWhere += DB.TO_DATE(new Timestamp(date.getTime()));
            } else {
                queryWhere += DB.TO_STRING(key);
            }

            MQuery query = new MQuery(ds.getAD_Table_ID());
            String keyCol = MTable.get(Env.getCtx(), ds.getAD_Table_ID()).getKeyColumns()[0];
            String whereClause = keyCol + " IN (SELECT " + ds.getKeyColumn() + " FROM " + ds.getFromClause()
                    + " WHERE " + queryWhere + " )";
            query.addRestriction(whereClause.toString());
            query.setRecordCount(1);

            HashMap<String, MQuery> map = getQueries();

            if (dataset instanceof DefaultPieDataset) {
                ((DefaultPieDataset) dataset).setValue(key, rs.getBigDecimal(1));
                map.put(key, query);
            } else if (dataset instanceof DefaultCategoryDataset) {
                ((DefaultCategoryDataset) dataset).addValue(rs.getBigDecimal(1), seriesName, key);
                map.put(seriesName + "__" + key, query);
            } else if (dataset instanceof TimeSeriesCollection) {
                map.put(seriesName + "__" + key, query);
            }
        }
    } catch (SQLException e) {
        throw new DBException(e, sql);
    } finally {
        DB.close(rs, pstmt);
        rs = null;
        pstmt = null;
    }

    if (tseries != null)
        ((TimeSeriesCollection) dataset).addSeries(tseries);

}

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

public static RegularTimePeriod getTimePeriod(Date date, ChartAxis.TimeUnit tm) {
    RegularTimePeriod tp;/*from  w w  w .  ja  v a  2 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:edu.jhuapl.graphs.jfreechart.JFreeChartTimeSeriesGraphSource.java

private static Week makeWeek(TimePointInterface point) {
    return new Week(point.getDescriminator());
}

From source file:ch.algotrader.client.chart.ChartTab.java

private RegularTimePeriod getRegularTimePeriod(Date date) {

    if (TimePeriod.MSEC.equals(this.chartDefinition.getTimePeriod())) {
        return new Millisecond(date);
    } else if (TimePeriod.SEC.equals(this.chartDefinition.getTimePeriod())) {
        return new Second(date);
    } else if (TimePeriod.MIN.equals(this.chartDefinition.getTimePeriod())) {
        return new Minute(date);
    } else if (TimePeriod.HOUR.equals(this.chartDefinition.getTimePeriod())) {
        return new Hour(date);
    } else if (TimePeriod.DAY.equals(this.chartDefinition.getTimePeriod())) {
        return new Day(date);
    } else if (TimePeriod.WEEK.equals(this.chartDefinition.getTimePeriod())) {
        return new Week(date);
    } else if (TimePeriod.MONTH.equals(this.chartDefinition.getTimePeriod())) {
        return new Month(date);
    } else if (TimePeriod.YEAR.equals(this.chartDefinition.getTimePeriod())) {
        return new Year(date);
    } else {/*from  w  w w  .jav  a  2  s.c o m*/
        throw new IllegalArgumentException("unkown TimePeriod: " + this.chartDefinition.getTimePeriod());
    }
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getWeeklyLoginsDataSet() {

    List<ServerWideStatsRecord> totalLogins = getWeeklyTotalLogins();
    List<ServerWideStatsRecord> uniqueLogins = getWeeklyUniqueLogins();
    if (totalLogins == null || uniqueLogins == null) {
        return null;
    }//w w w  . j  a v  a2s . co  m

    TimeSeries s1 = new TimeSeries(msgs.getString("legend_logins"), Week.class);
    TimeSeries s2 = new TimeSeries(msgs.getString("legend_unique_logins"), Week.class);

    for (ServerWideStatsRecord login : totalLogins) {
        Week week = new Week((Date) login.get(0));
        s1.add(week, (Long) login.get(1));
    }

    for (ServerWideStatsRecord login : uniqueLogins) {
        Week week = new Week((Date) login.get(0));
        s2.add(week, (Long) login.get(1));
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    dataset.addSeries(s2);

    return dataset;
}

From source file:fr.paris.lutece.plugins.form.utils.FormUtils.java

/**
 * create graph dataset function of the statistic form submit
 * @param listStatistic the list of statistic of form submit
 * @param strTimesUnit the times unit of axis x(Day,Week,Month)
 * @return create graph dataset function of the statistic form submit
 *//*from www  .  ja  va2  s. c o  m*/
private static XYDataset createDataset(List<StatisticFormSubmit> listStatistic, String strTimesUnit) {
    TimeSeries series = null;

    if (strTimesUnit.equals(CONSTANT_GROUP_BY_DAY)) {
        series = new TimeSeries(EMPTY_STRING, Day.class);

        for (StatisticFormSubmit statistic : listStatistic) {
            series.add(new Day((Date) statistic.getStatisticDate()), statistic.getNumberResponse());
        }
    } else if (strTimesUnit.equals(CONSTANT_GROUP_BY_WEEK)) {
        series = new TimeSeries(EMPTY_STRING, Week.class);

        for (StatisticFormSubmit statistic : listStatistic) {
            series.add(new Week((Date) statistic.getStatisticDate()), statistic.getNumberResponse());
        }
    }

    else if (strTimesUnit.equals(CONSTANT_GROUP_BY_MONTH)) {
        series = new TimeSeries(EMPTY_STRING, Month.class);

        for (StatisticFormSubmit statistic : listStatistic) {
            series.add(new Month((Date) statistic.getStatisticDate()), statistic.getNumberResponse());
        }
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    return dataset;
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getWeeklySiteUserDataSet() {
    List<ServerWideStatsRecord> siteCreatedDeletedList = getSiteCreatedDeletedStats("weekly");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    if (siteCreatedDeletedList != null) {
        TimeSeries s1 = new TimeSeries(msgs.getString("legend_site_created"), Week.class);
        TimeSeries s2 = new TimeSeries(msgs.getString("legend_site_deleted"), Week.class);

        for (ServerWideStatsRecord login : siteCreatedDeletedList) {
            Week week = new Week((Date) login.get(0));
            s1.add(week, (Long) login.get(1));
            s2.add(week, (Long) login.get(2));
        }/*from  w  w w  .j a  v a  2  s  .  c o  m*/

        dataset.addSeries(s1);
        dataset.addSeries(s2);
    }

    List<ServerWideStatsRecord> newUserList = getNewUserStats("weekly");
    if (newUserList != null) {
        TimeSeries s3 = new TimeSeries(msgs.getString("legend_new_user"), Week.class);

        for (ServerWideStatsRecord login : newUserList) {
            Week week = new Week((Date) login.get(0));
            s3.add(week, (Long) login.get(1));
        }

        dataset.addSeries(s3);
    }

    return dataset;
}

From source file:gov.llnl.lustre.lwatch.PlotFrame2.java

/**
 * Create the dataset for the set of TimeSeries curves to be plotted.
 *//* ww w .  ja  v  a2  s .c  o m*/

public XYDataset createDataset() {

    // Load data for settings from last "Refresh" time
    String[] selectedRows = lastRefreshPlotParams.getCategories();
    String[] selectedVars = lastRefreshPlotParams.getVariables();
    String[] selectedCurves = lastRefreshPlotParams.getCurves();

    int savedGranularity = granularity;
    granularity = lastRefreshPlotParams.getGranularity();

    if (localDebug)
        Debug.out("Granularity used for timeSeries generation is " + granularity);

    //int nLines = nRowsSelected * nColsSelected * nCurvesSelected;
    int nLines = selectedRows.length * selectedVars.length * selectedCurves.length;
    //TimeSeries [] ts = new TimeSeries[nRowsSelected * nColsSelected *
    //nCurvesSelected];
    TimeSeries[] ts = new TimeSeries[nLines];

    int row = 0;
    int col = 0;
    int crv = -1;
    long tmBeg = tsStartPlot.getTime();
    long tmEnd = tsEndPlot.getTime();

    for (int i = 0; i < nLines; i++) {
        //if (localDebug)
        //Debug.out("Plot curve # " + i);

        //if (dataPointCount[i] <=0) {
        //Debug.out("dataPointCount[" + i + "] <= 0. Skip it.");
        //}

        crv++;
        if (crv == selectedCurves.length) {
            crv = 0;
            col++;
            if (col == selectedVars.length) {
                col = 0;
                row++;
            }
        }
        int tindx = i / selectedCurves.length;

        //String catvar = cats2Plot[row] + " " + vars2Plot[col] + crvs2Plot[crv];
        String catvar = selectedRows[row] + " " + selectedVars[col] + selectedCurves[crv];
        //Debug.out("Plot line for " + catvar);
        if (granularity == Database.HOUR)
            ts[i] = new TimeSeries(catvar, Hour.class);
        else if (granularity == Database.DAY)
            ts[i] = new TimeSeries(catvar, Day.class);
        else if (granularity == Database.WEEK)
            ts[i] = new TimeSeries(catvar, Week.class);
        else if (granularity == Database.MONTH)
            ts[i] = new TimeSeries(catvar, Month.class);
        else if (granularity == Database.YEAR)
            ts[i] = new TimeSeries(catvar, Year.class);
        else if ((granularity == Database.RAW) || (granularity == HEARTBEAT)) {
            //if (limitedDebug) {
            //System.out.println("\n\n" + i + "  " + catvar);
            //}
            ts[i] = new TimeSeries(catvar, Second.class);
        }

        if (rawData == null) {
            if (localDebug)
                Debug.out("ERROR     RawData = null");
            return null;
        }

        if (rawData[i] == null) {
            if (localDebug)
                Debug.out("ERROR     RawData[" + i + "] = null");
            return null;
        }

        int dsSize = dataPointCount[i]; //rawData[i].length;

        if (localDebug) {
            Debug.out("Size of " + catvar + " data set # " + i + " = " + dsSize);
        }

        int includeCnt = 0;
        for (int j = 0; j <= dataPointCount[i] - 1; j++) {
            //if (localDebug)
            //Debug.out("tindx " + tindx + "  j " + j + " secs " +
            //rawTimes[tindx][j]);
            long rawT = rawTimes[tindx][j];
            if ((rawT >= tmBeg) && (rawT <= tmEnd)) {
                float rangeVal = rawData[i][j];
                if (useLogRangeAxis && (rangeVal <= 0.0))
                    rangeVal = 1;

                try {
                    if (granularity == Database.HOUR)
                        ts[i].add(new Hour(new Date(rawT)), rangeVal, false);
                    else if (granularity == Database.DAY)
                        ts[i].add(new Day(new Date(rawT)), rangeVal, false);
                    else if (granularity == Database.WEEK)
                        ts[i].add(new Week(new Date(rawT)), rangeVal, false);
                    else if (granularity == Database.MONTH)
                        ts[i].add(new Month(new Date(rawT)), rangeVal, false);
                    else if (granularity == Database.YEAR)
                        ts[i].add(new Year(new Date(rawT)), rangeVal, false);
                    else if ((granularity == Database.RAW) || (granularity == HEARTBEAT)) {
                        includeCnt++;
                        //if (localDebug) {
                        //System.out.println(i + " " + j + " " +
                        //(new Second(new Date(rawT))).toString() +
                        //"  " + rangeVal);
                        //}
                        ts[i].add(new Second(new Date(rawT)), rangeVal, false);

                    }
                } catch (org.jfree.data.general.SeriesException e) {
                    if (localDebug)
                        Debug.out("Exception detected while calculating Timestamp objects. Problem at rawT = "
                                + rawT + "\n" + e.getMessage());
                }
            }
        }
        if (localDebug)
            Debug.out("# of points included in time series = " + includeCnt + "\n# of curves to be plotted = "
                    + nLines);
    }
    if (localDebug)
        Debug.out("\nTimeSeries array generation complete\n");

    // *****************************************************************
    //  More than 150 demo applications are included with the JFreeChar
    //  Developer Guide...for more information, see
    //
    //  >   http://www.object-refinery.com/jfreechart/guide.html
    //
    // ******************************************************************

    TimeSeriesCollection dataset = new TimeSeriesCollection();

    for (int i = 0; i < nLines; i++) {
        if (dataPointCount[i] > 0) {
            if (localDebug)
                Debug.out("Add timeSeries # " + i + " to chart dataset.");
            dataset.addSeries(ts[i]);
        }
    }

    // Reset granularity;
    granularity = savedGranularity;

    return dataset;

}