]> err.no Git - scalable-opengroupware.org/blob - SOGo/UI/Scheduler/UIxCalInlineMonthOverview.m
some code cleanup
[scalable-opengroupware.org] / SOGo / UI / Scheduler / UIxCalInlineMonthOverview.m
1 /*
2   Copyright (C) 2004 SKYRIX Software AG
3
4   This file is part of OpenGroupware.org.
5
6   OGo is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23
24 #include "UIxCalMonthOverview.h"
25 #include <NGExtensions/NGExtensions.h>
26
27
28 @interface UIxCalInlineMonthOverview : UIxCalMonthOverview
29 {
30     NSCalendarDate *selectedDate;
31     NSString *style;
32     NSString *headerStyle;
33     NSString *weekStyle;
34     NSString *todayWeekStyle;
35     NSString *dayHeaderStyle;
36     NSString *dayBodyStyle;
37     NSString *todayBodyStyle;
38     NSString *inactiveDayBodyStyle;
39     NSString *selectedDayExtraStyle;
40     NSString *daySelectionHref;
41     NSString *weekSelectionHref;
42     NSString *monthSelectionHref;
43     BOOL showWeekColumn;
44     BOOL showYear;
45 }
46
47 @end
48
49
50 @interface NSCalendarDate (UIxCalMonthOverviewExtensions)
51 - (BOOL)isDateInSameMonth:(NSCalendarDate *)_other;
52 @end
53
54
55 @implementation NSCalendarDate (UIxCalMonthOverviewExtensions)
56 - (BOOL)isDateInSameMonth:(NSCalendarDate *)_other {
57     if(_other == nil)
58         return NO;
59     if(([_other yearOfCommonEra] == [self yearOfCommonEra]) &&
60        ([_other monthOfYear] == [self monthOfYear])) {
61         return YES;
62     }
63     return NO;
64 }
65 @end
66
67
68 @implementation UIxCalInlineMonthOverview
69
70 /* init & dealloc */
71
72 - (void)dealloc {
73     [self->selectedDate release];
74     [self->style release];
75     [self->headerStyle release];
76     [self->weekStyle release];
77     [self->todayWeekStyle release];
78     [self->dayHeaderStyle release];
79     [self->dayBodyStyle release];
80     [self->todayBodyStyle release];
81     [self->inactiveDayBodyStyle release];
82     [self->selectedDayExtraStyle release];
83     [self->daySelectionHref release];
84     [self->weekSelectionHref release];
85     [self->monthSelectionHref release];
86     [super dealloc];
87 }
88
89
90 /* binding accessors */
91
92 - (void)setSelectedDate:(NSCalendarDate *)_date {
93     [_date setTimeZone:[self viewTimeZone]];
94     ASSIGN(self->selectedDate, _date);
95 }
96 - (NSCalendarDate *)selectedDate {
97     return self->selectedDate;
98 }
99 - (void)setStyle:(NSString *)_style {
100     ASSIGN(self->style, _style);
101 }
102 - (NSString *)style {
103     return self->style;
104 }
105 - (void)setHeaderStyle:(NSString *)_style {
106     ASSIGN(self->headerStyle, _style);
107 }
108 - (NSString *)headerStyle {
109     return self->headerStyle;
110 }
111 - (void)setWeekStyle:(NSString *)_style {
112     ASSIGN(self->weekStyle, _style);
113 }
114 - (NSString *)weekStyle {
115     return self->weekStyle;
116 }
117 - (void)setTodayWeekStyle:(NSString *)_style {
118     ASSIGN(self->todayWeekStyle, _style);
119 }
120 - (NSString *)todayWeekStyle {
121     if(self->todayWeekStyle)
122         return self->todayWeekStyle;
123     return [self weekStyle];
124 }
125 - (void)setDayHeaderStyle:(NSString *)_style {
126     ASSIGN(self->dayHeaderStyle, _style);
127 }
128 - (NSString *)dayHeaderStyle {
129     return self->dayHeaderStyle;
130 }
131 - (void)setDayBodyStyle:(NSString *)_style {
132     ASSIGN(self->dayBodyStyle, _style);
133 }
134 - (NSString *)dayBodyStyle {
135     return self->dayBodyStyle;
136 }
137 - (void)setTodayBodyStyle:(NSString *)_style {
138     ASSIGN(self->todayBodyStyle, _style);
139 }
140 - (NSString *)todayBodyStyle {
141     return self->todayBodyStyle;
142 }
143 - (void)setInactiveDayBodyStyle:(NSString *)_style {
144     ASSIGN(self->inactiveDayBodyStyle, _style);
145 }
146 - (NSString *)inactiveDayBodyStyle {
147     return self->inactiveDayBodyStyle;
148 }
149 - (void)setSelectedDayExtraStyle:(NSString *)_style {
150     ASSIGN(self->selectedDayExtraStyle, _style);
151 }
152 - (NSString *)selectedDayExtraStyle {
153     return self->selectedDayExtraStyle;
154 }
155 - (void)setDaySelectionHref:(NSString *)_href {
156     ASSIGN(self->daySelectionHref, _href);
157 }
158 - (NSString *)daySelectionHref {
159     return self->daySelectionHref;
160 }
161 - (BOOL)hasDaySelectionHref {
162     return self->daySelectionHref != nil;
163 }
164 - (void)setWeekSelectionHref:(NSString *)_href {
165     ASSIGN(self->weekSelectionHref, _href);
166 }
167 - (NSString *)weekSelectionHref {
168     return self->weekSelectionHref;
169 }
170 - (BOOL)hasWeekSelectionHref {
171     return self->weekSelectionHref != nil;
172 }
173 - (void)setMonthSelectionHref:(NSString *)_href {
174     ASSIGN(self->monthSelectionHref, _href);
175 }
176 - (NSString *)monthSelectionHref {
177     return self->monthSelectionHref;
178 }
179 - (BOOL)hasMonthSelectionHref {
180     return self->monthSelectionHref != nil;
181 }
182 - (void)setShowWeekColumn:(BOOL)_yn {
183     self->showWeekColumn = _yn;
184 }
185 - (BOOL)showWeekColumn {
186     return self->showWeekColumn;
187 }
188 - (void)setShowYear:(BOOL)_yn {
189     self->showYear = _yn;
190 }
191 - (BOOL)showYear {
192     return self->showYear;
193 }
194
195
196 /* date ranges */
197
198
199 - (NSCalendarDate *)startDate {
200     return [[self selectedDate] firstDayOfMonth];
201 }
202
203
204 /* labels */
205
206 - (NSString *)headerString {
207     NSString *label;
208     
209     label = [self localizedNameForMonthOfYear:[[self startDate] monthOfYear]];
210     if([self showYear]) {
211         label = [NSString stringWithFormat:@"%@ %d",
212             label,
213             [[self startDate] yearOfCommonEra]];
214     }
215     return label;
216 }
217
218 - (NSString *)localizedDayOfWeekName {
219     return [self localizedAbbreviatedNameForDayOfWeek:[self dayOfWeek]];
220 }
221
222
223 /* stylesheets */
224
225 - (NSString *)currentWeekStyle {
226     if([self->currentWeekStart isDateInSameWeek:[NSCalendarDate date]] &&
227        [self->currentWeekStart isDateInSameMonth:[self selectedDate]])
228         return [self todayWeekStyle];
229     return [self weekStyle];
230 }
231
232 - (NSString *)currentDayStyle {
233     return [self dayBodyStyle];
234 }
235
236 - (NSString *)contentStyle {
237     if([self->currentDay isToday] &&
238        [self->currentDay isDateInSameMonth:[self selectedDate]])
239         return [self todayBodyStyle];
240     else if([self->currentDay monthOfYear] != [[self startDate] monthOfYear])
241         return [self inactiveDayBodyStyle];
242     return [self dayBodyStyle];
243 }
244
245 - (NSString *)extraStyle {
246     if([[self selectedDate] isDateOnSameDay:self->currentDay]) {
247         return [self selectedDayExtraStyle];
248     }
249     return nil;
250 }
251
252
253 /* URLs */
254
255 - (NSDictionary *)currentMonthQueryParameters {
256     return [self queryParametersBySettingSelectedDate:[self startDate]];
257 }
258
259 /* overriding */
260
261 - (NSArray *)fetchCoreInfos {
262     return nil;
263 }
264
265 @end