]> err.no Git - scalable-opengroupware.org/blobdiff - UI/Scheduler/UIxCalWeekView.m
initial sync
[scalable-opengroupware.org] / UI / Scheduler / UIxCalWeekView.m
index be5b8897c3821576eccb1af335f41f1a9e91a4c3..ab520323a3b4fd3719e765e446c4e863fa733161 100644 (file)
-// $Id$
+/* UIxCalWeekView.m - this file is part of SOGo
+ *
+ * Copyright (C) 2006 Inverse groupe conseil
+ *
+ * Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
+ *
+ * This file is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#import <Foundation/NSArray.h>
+#import <Foundation/NSCalendarDate.h>
+#import <Foundation/NSKeyValueCoding.h>
+#import <Foundation/NSString.h>
+
+#import <EOControl/EOQualifier.h>
+
+#import <NGExtensions/NSCalendarDate+misc.h>
 
 #include "UIxCalWeekView.h"
-#include "common.h"
 
 @implementation UIxCalWeekView
 
-- (NSCalendarDate *)startDate {
-    return [[[super startDate] mondayOfWeek] beginOfDay];
+- (NSCalendarDate *) startDate
+{
+  return [[[super startDate] mondayOfWeek] beginOfDay];
 }
 
-- (NSCalendarDate *)endDate {
-    unsigned offset;
+- (NSCalendarDate *) endDate
+{
+  unsigned offset;
     
-    if([self shouldDisplayWeekend])
-        offset = 7;
-    else
-        offset = 5;
+  if([self shouldDisplayWeekend])
+    offset = 7;
+  else
+    offset = 5;
+
   return [[[self startDate] dateByAddingYears:0 months:0 days:offset
                             hours:0 minutes:0 seconds:0]
                             endOfDay];
 }
 
-- (NSArray *)appointments {
-  return [self fetchCoreInfos];
+- (NSArray *) appointments
+{
+  return [self fetchCoreAppointmentsInfos];
 }
 
 /* URLs */
 
-- (NSDictionary *)prevWeekQueryParameters {
-  NSCalendarDate *date;
+- (NSDictionary *) weekBeforePrevWeekQueryParameters
+{
+  return [self _dateQueryParametersWithOffset: -14];
+}
 
-  date = [[self startDate] dateByAddingYears:0 months:0 days:-7 
-                          hours:0 minutes:0 seconds:0];
-  return [self queryParametersBySettingSelectedDate:date];
+- (NSDictionary *) prevWeekQueryParameters
+{
+  return [self _dateQueryParametersWithOffset: -7];
 }
 
-- (NSDictionary *)nextWeekQueryParameters {
+- (NSDictionary *) nextWeekQueryParameters
+{
+  return [self _dateQueryParametersWithOffset: 7];
+}
+
+- (NSDictionary *) weekAfterNextWeekQueryParameters
+{
+  return [self _dateQueryParametersWithOffset: 14];
+}
+
+- (NSString *) _weekNumberWithOffsetFromToday: (int) offset
+{
   NSCalendarDate *date;
-    
-  date = [[self startDate] dateByAddingYears:0 months:0 days:7 
-                          hours:0 minutes:0 seconds:0];
-  return [self queryParametersBySettingSelectedDate:date];
+  NSString *format;
+
+  date = [[self startDate] dateByAddingYears: 0 months: 0 days: (offset * 7)
+                           hours:0 minutes: 0 seconds: 0];
+  format = [self labelForKey: @"Week %d"];
+
+  return [NSString stringWithFormat: format, [date weekOfYear]];
+}
+
+- (NSString *) weekBeforeLastWeekName
+{
+  return [self _weekNumberWithOffsetFromToday: -2];
+}
+
+- (NSString *) lastWeekName
+{
+  return [self _weekNumberWithOffsetFromToday: -1];
+}
+
+- (NSString *) currentWeekName
+{
+  return [self _weekNumberWithOffsetFromToday: 0];
+}
+
+- (NSString *) nextWeekName
+{
+  return [self _weekNumberWithOffsetFromToday: 1];
+}
+
+- (NSString *) weekAfterNextWeekName
+{
+  return [self _weekNumberWithOffsetFromToday: 2];
 }
 
 @end /* UIxCalWeekView */