public T fixed(DateIntervalType intervalSize, boolean emptyAllowed) { if (!DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(intervalSize)) { throw new IllegalArgumentException("Fixed group size '" + intervalSize + "' not supported."); } return groupStrategy(GroupStrategy.FIXED, -1, intervalSize.toString(), emptyAllowed); }
public DateIntervalType calculateIntervalSize(Date minDate, Date maxDate, ColumnGroup columnGroup) { DateIntervalType intervalType = DateIntervalType.getByName(columnGroup.getIntervalSize()); if (intervalType == null) { intervalType = YEAR; for (DateIntervalType type : values()) { long nintervals = millis / getDurationInMillis(type); if (nintervals < maxIntervals) { intervalType = type; String preferredSize = columnGroup.getIntervalSize(); if (preferredSize != null && preferredSize.trim().length() > 0) { intervalSize = getByName(columnGroup.getIntervalSize()); if (intervalSize != null && compare(intervalType, intervalSize) == -1) { intervalType = intervalSize;
public static String getPattern(DateIntervalType type) { if (type.getIndex() <= DateIntervalType.SECOND.getIndex()) { return SECOND; } if (DateIntervalType.MINUTE.equals(type)) { return MINUTE; } if (DateIntervalType.HOUR.equals(type)) { return HOUR; } if (DateIntervalType.DAY.equals(type) || DateIntervalType.DAY_OF_WEEK.equals(type) || DateIntervalType.WEEK.equals(type)) { return DAY; } if (DateIntervalType.MONTH.equals(type) || DateIntervalType.QUARTER.equals(type)) { return MONTH; } return YEAR; } }
void onIntervalTypeSelected() { DateIntervalType intervalType = DateIntervalType.getByIndex(view.getSelectedIntervalTypeIndex()); if (isFixedStrategy()) { intervalType = DateIntervalType.FIXED_INTERVALS_SUPPORTED.get(view.getSelectedIntervalTypeIndex()); } columnGroup.setIntervalSize(intervalType.name()); columnGroup.setFirstMonthOfYear(null); columnGroup.setFirstDayOfWeek(null); view.setFirstMonthVisibility(false); view.setFirstDayVisibility(false); if (GroupStrategy.FIXED.equals(columnGroup.getStrategy())) { if (DateIntervalType.MONTH.equals(DateIntervalType.getByName(columnGroup.getIntervalSize()))) { view.setFirstMonthVisibility(true); initFirstMonthListBox(); } else if (DateIntervalType.DAY_OF_WEEK.equals(DateIntervalType.getByName(columnGroup.getIntervalSize()))) { view.setFirstDayVisibility(true); initFirstDayListBox(); } } changeEvent.fire(new DataSetGroupDateChanged(columnGroup)); }
public static String getFixedExpression(DateIntervalType type) { if (DateIntervalType.SECOND.equals(type)) { return "value + \"\\\"\""; } if (DateIntervalType.MINUTE.equals(type)) { return "value + \"'\""; } if (DateIntervalType.HOUR.equals(type)) { return "value + \"h\""; } if (DateIntervalType.QUARTER.equals(type)) { return "\"Q\" + value"; } return "value"; }
/** * Parses a time amount expression. For example: "10second", "-1year", ... * @return A TimeAmount instance. * @throws IllegalArgumentException If the expression is not valid */ public static TimeAmount parse(String timeAmount) { if (timeAmount == null || timeAmount.length() == 0) { throw new IllegalArgumentException("Empty time amount expression"); } String number = ""; String expr = timeAmount.trim(); boolean isNegative = expr.startsWith("-"); boolean isPositive = expr.startsWith("+"); int i = isNegative || isPositive ? 1 : 0; for (; i<expr.length(); i++) { char ch = expr.charAt(i); if (Character.isDigit(ch)) number += ch; else break; } String type = expr.substring(i).trim(); DateIntervalType intervalType = DateIntervalType.getByName(type); if (number.length() == 0) { throw new IllegalArgumentException("Missing quantity (ex '-10year'): "+ timeAmount); } if (intervalType == null) { throw new IllegalArgumentException("Invalid interval type (ex '-10year'): "+ timeAmount); } return new TimeAmount(Long.parseLong(number) * (isNegative ? -1 : 1), intervalType); } }
@Test public void testDynamicModeInit() { ColumnGroup columnGroup = new ColumnGroup("col", "col", DYNAMIC, 15, HOUR.toString()); presenter.init(columnGroup); verify(view).setFixedModeValue(false); verify(view).clearIntervalTypeSelector(); verify(view, times(DateIntervalType.values().length)).addIntervalTypeItem(any(DateIntervalType.class)); verify(view).setSelectedIntervalTypeIndex(anyInt()); verify(view).setMaxIntervalsVisibility(true); verify(view).setMaxIntervalsValue("15"); verify(view, never()).setFirstDayVisibility(true); verify(view, never()).setFirstMonthVisibility(true); }
public String toString() { return quantity + " " + type.name().toLowerCase(); }
public void onFixedStrategyChanged() { columnGroup.setFirstMonthOfYear(null); columnGroup.setFirstDayOfWeek(null); if (view.getFixedModeValue()) { // Reset current interval type selected if not allowed. DateIntervalType intervalType = DateIntervalType.getByIndex(view.getSelectedIntervalTypeIndex()); if (!DateIntervalType.FIXED_INTERVALS_SUPPORTED.contains(intervalType)) { view.setSelectedIntervalTypeIndex(DateIntervalType.MONTH.getIndex()); columnGroup.setIntervalSize(DateIntervalType.MONTH.name()); } columnGroup.setStrategy(GroupStrategy.FIXED); gotoFixedMode(); } else { columnGroup.setStrategy(GroupStrategy.DYNAMIC); gotoDynamicMode(); } changeEvent.fire(new DataSetGroupDateChanged(columnGroup)); }
public String toString() { StringBuilder out = new StringBuilder(); if (timeMode != null) { out.append(timeMode.name().toLowerCase()); if (!TimeMode.NOW.equals(timeMode)) { out.append("[").append(intervalType.name().toLowerCase()); if (intervalType != null && intervalType.getIndex() > DateIntervalType.MONTH.getIndex() && firstMonthOfYear != null) { out.append(" ").append(firstMonthOfYear.name().toLowerCase()); } out.append("]"); } } if (timeAmount != null && timeAmount.getQuantity() != 0) { if (out.length() > 0) out.append(" "); out.append(timeAmount); } if (out.length() == 0) { out.append(TimeMode.NOW.name().toLowerCase()); } return out.toString(); }
public boolean isFirstMonthAvailable() { TimeInstant instantFrom = timeFrame.getFrom(); TimeInstant.TimeMode modeFrom = instantFrom.getTimeMode(); if (modeFrom != null && !modeFrom.equals(TimeInstant.TimeMode.NOW)) { DateIntervalType intervalType = instantFrom.getIntervalType(); if (intervalType != null && intervalType.getIndex() > DateIntervalType.MONTH.getIndex()) { return true; } } TimeInstant instantTo = timeFrame.getTo(); TimeInstant.TimeMode modeTo = instantTo.getTimeMode(); if (modeTo != null && !modeTo.equals(TimeInstant.TimeMode.NOW)) { DateIntervalType intervalType = instantTo.getIntervalType(); if (intervalType != null && intervalType.getIndex() > DateIntervalType.MONTH.getIndex()) { return true; } } return false; }
public List<DateIntervalType> getListOfIntervalTypes() { if (isFixedStrategy()) { return DateIntervalType.FIXED_INTERVALS_SUPPORTED; } return Arrays.asList(DateIntervalType.values()); }
public long toMillis() { return quantity * DateIntervalType.getDurationInMillis(type); }
void onIntervalTypeSelected() { DateIntervalType intervalType = DateIntervalType.getByIndex(view.getSelectedIntervalTypeIndex()); if (isFixedStrategy()) { intervalType = DateIntervalType.FIXED_INTERVALS_SUPPORTED.get(view.getSelectedIntervalTypeIndex()); } columnGroup.setIntervalSize(intervalType.name()); columnGroup.setFirstMonthOfYear(null); columnGroup.setFirstDayOfWeek(null); view.setFirstMonthVisibility(false); view.setFirstDayVisibility(false); if (GroupStrategy.FIXED.equals(columnGroup.getStrategy())) { if (DateIntervalType.MONTH.equals(DateIntervalType.getByName(columnGroup.getIntervalSize()))) { view.setFirstMonthVisibility(true); initFirstMonthListBox(); } else if (DateIntervalType.DAY_OF_WEEK.equals(DateIntervalType.getByName(columnGroup.getIntervalSize()))) { view.setFirstDayVisibility(true); initFirstDayListBox(); } } changeEvent.fire(new DataSetGroupDateChanged(columnGroup)); }
public static String getFixedExpression(DateIntervalType type) { if (DateIntervalType.SECOND.equals(type)) { return "value + \"\\\"\""; } if (DateIntervalType.MINUTE.equals(type)) { return "value + \"'\""; } if (DateIntervalType.HOUR.equals(type)) { return "value + \"h\""; } if (DateIntervalType.QUARTER.equals(type)) { return "\"Q\" + value"; } return "value"; }
/** * Parses a time amount expression. For example: "10second", "-1year", ... * @return A TimeAmount instance. * @throws IllegalArgumentException If the expression is not valid */ public static TimeAmount parse(String timeAmount) { if (timeAmount == null || timeAmount.length() == 0) { throw new IllegalArgumentException("Empty time amount expression"); } String number = ""; String expr = timeAmount.trim(); boolean isNegative = expr.startsWith("-"); boolean isPositive = expr.startsWith("+"); int i = isNegative || isPositive ? 1 : 0; for (; i<expr.length(); i++) { char ch = expr.charAt(i); if (Character.isDigit(ch)) number += ch; else break; } String type = expr.substring(i).trim(); DateIntervalType intervalType = DateIntervalType.getByName(type); if (number.length() == 0) { throw new IllegalArgumentException("Missing quantity (ex '-10year'): "+ timeAmount); } if (intervalType == null) { throw new IllegalArgumentException("Invalid interval type (ex '-10year'): "+ timeAmount); } return new TimeAmount(Long.parseLong(number) * (isNegative ? -1 : 1), intervalType); } }
public static String getPattern(DateIntervalType type) { if (type.getIndex() <= DateIntervalType.SECOND.getIndex()) { return SECOND; } if (DateIntervalType.MINUTE.equals(type)) { return MINUTE; } if (DateIntervalType.HOUR.equals(type)) { return HOUR; } if (DateIntervalType.DAY.equals(type) || DateIntervalType.DAY_OF_WEEK.equals(type) || DateIntervalType.WEEK.equals(type)) { return DAY; } if (DateIntervalType.MONTH.equals(type) || DateIntervalType.QUARTER.equals(type)) { return MONTH; } return YEAR; } }
return results; DateIntervalType intervalType = DateIntervalType.getByName(dataColumn.getIntervalType()); if (intervalType == null) { intervalType = DateIntervalType.YEAR; if (!asc) Collections.reverse( results ); results.setIntervalType(intervalType.toString()); results.setMinValue(minDate); results.setMaxValue(maxDate);