Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrelves2008-05-08 07:20:27 +0000
committerrelves2008-05-08 07:20:27 +0000
commit18025837420efa3c9b1cd5f06ee1a77a04771af0 (patch)
treeb669f06ad568095fa3e1b7ea10471ab9c5189bbf /org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java
parent4fce3a7e5ca73a0df9e02eebd8bb8263a451de07 (diff)
downloadorg.eclipse.mylyn.tasks-18025837420efa3c9b1cd5f06ee1a77a04771af0.tar.gz
org.eclipse.mylyn.tasks-18025837420efa3c9b1cd5f06ee1a77a04771af0.tar.xz
org.eclipse.mylyn.tasks-18025837420efa3c9b1cd5f06ee1a77a04771af0.zip
NEW - bug 230321: eliminate ScheduledTaskDelegate and refactor ScheduledTaskContainers
https://bugs.eclipse.org/bugs/show_bug.cgi?id=230321
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java')
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java100
1 files changed, 100 insertions, 0 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java
new file mode 100644
index 000000000..e56a29f1e
--- /dev/null
+++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/WeekDateRange.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2004, 2007 Mylyn project committers and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.mylyn.internal.tasks.core;
+
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+/**
+ * @author Rob Elves
+ */
+public class WeekDateRange extends DateRange {
+
+ private final List<DateRange> days = new ArrayList<DateRange>();
+
+ public WeekDateRange(Calendar startDate, Calendar endDate) {
+ super(startDate, endDate);
+ }
+
+ public List<DateRange> getRemainingDays() {
+ List<DateRange> remainingDays = new ArrayList<DateRange>();
+ for (DateRange dayDateRange : getDaysOfWeek()) {
+ if (!dayDateRange.isPast()) {
+ remainingDays.add(dayDateRange);
+ }
+ }
+ return remainingDays;
+ }
+
+ public List<DateRange> getDaysOfWeek() {
+ if (days.isEmpty()) {
+ for (int x = TaskActivityUtil.getStartDay(); x < (TaskActivityUtil.getStartDay() + 7); x++) {
+ Calendar dayStart = TaskActivityUtil.getCalendar();
+ dayStart.setTime(getStartDate().getTime());
+ TaskActivityUtil.snapStartOfDay(dayStart);
+
+ Calendar dayEnd = TaskActivityUtil.getCalendar();
+ dayEnd.setTime(getStartDate().getTime());
+ TaskActivityUtil.snapEndOfDay(dayEnd);
+
+ if (x > 7) {
+ dayStart.set(Calendar.DAY_OF_WEEK, x % 7);
+ dayEnd.set(Calendar.DAY_OF_WEEK, x % 7);
+ } else {
+ dayStart.set(Calendar.DAY_OF_WEEK, x);
+ dayEnd.set(Calendar.DAY_OF_WEEK, x);
+ }
+
+ days.add(new DateRange(dayStart, dayEnd));
+ }
+ }
+ return days;
+ }
+
+ /**
+ * @return today's DayDateRange, null if does not exist (now > endDate)
+ */
+ public DateRange getToday() {
+ DateRange today = null;
+ Calendar now = TaskActivityUtil.getCalendar();
+ for (DateRange range : getDaysOfWeek()) {
+ if (range.includes(now)) {
+ today = range;
+ break;
+ }
+ }
+ if (today == null) {
+ Calendar todayStart = TaskActivityUtil.getCalendar();
+ TaskActivityUtil.snapStartOfDay(todayStart);
+ Calendar todayEnd = TaskActivityUtil.getCalendar();
+ TaskActivityUtil.snapEndOfDay(todayEnd);
+ today = new DateRange(todayStart, todayEnd);
+ }
+ return today;
+ }
+
+ public boolean isCurrentWeekDay(DateRange range) {
+ if (range == null) {
+ return false;
+ }
+ return getDaysOfWeek().contains(range);
+ }
+
+ public DateRange getDayOfWeek(int dayNum) {
+ if (dayNum > 0 && dayNum <= 7) {
+ for (DateRange day : getDaysOfWeek()) {
+ if (day.getStartDate().get(Calendar.DAY_OF_WEEK) == dayNum) {
+ return day;
+ }
+ }
+ }
+ return null;
+ }
+}

Back to the top