]> err.no Git - scalable-opengroupware.org/blob - ZideStore/UI-X/Scheduler/OGoCalSelectTab.m
Work in progress - pushed everything from query strings to query parameter dictionari...
[scalable-opengroupware.org] / ZideStore / UI-X / Scheduler / OGoCalSelectTab.m
1 /*
2   Copyright (C) 2000-2004 SKYRIX Software AG
3
4   This file is part of OGo
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 <CommonUI/OGoComponent.h>
25 #include <NGObjWeb/NGObjWeb.h>
26 #include <NGExtensions/NGExtensions.h>
27
28
29 @interface OGoCalSelectTab : OGoComponent
30 {
31     NSString *selection;
32     NSCalendarDate *currentDate;
33 }
34
35 - (NSString *)completeHrefForMethod:(NSString *)_method;
36
37 @end
38
39
40 @implementation OGoCalSelectTab
41
42 - (void)dealloc {
43     [self->selection release];
44     [self->currentDate release];
45     [super dealloc];
46 }
47
48 - (void)setSelection:(NSString *)_selection {
49     ASSIGN(self->selection, _selection);
50 }
51
52 - (NSString *)selection {
53     return self->selection;
54 }
55
56 - (void)setCurrentDate:(NSCalendarDate *)_date {
57     ASSIGN(self->currentDate, _date);
58 }
59
60 - (NSCalendarDate *)currentDate {
61     return self->currentDate;
62 }
63
64
65 /* labels */
66
67
68 - (NSString *)dayLabel {
69     return [self->currentDate descriptionWithCalendarFormat:@"%d"];
70 }
71
72 - (NSString *)weekLabel {
73     return [NSString stringWithFormat:@"Week %d", [self->currentDate weekOfYear]];
74 }
75
76 - (NSString *)monthLabel {
77     return [self->currentDate descriptionWithCalendarFormat:@"%B"];
78 }
79
80 - (NSString *)yearLabel {
81     return [self->currentDate descriptionWithCalendarFormat:@"%Y"];
82 }
83
84
85 /* hrefs */
86
87
88 - (NSString *)completeHrefForMethod:(NSString *)_method {
89     NSDictionary *qp;
90     NSString *qs;
91     
92     qp = [self queryParameters];
93     if([qp count] == 0)
94         return _method;
95
96     qs = [[self context] queryStringFromDictionary:qp];
97     return [_method stringByAppendingFormat:@"?%@", qs];
98 }
99
100 - (NSString *)daytabLink {
101     return [self completeHrefForMethod:@"dayoverview"];
102 }
103
104 - (NSString *)weektabLink {
105     return [self completeHrefForMethod:@"weekoverview"];
106 }
107
108 - (NSString *)monthtabLink {
109     return [self completeHrefForMethod:@"monthoverview"];
110 }
111
112 - (NSString *)yeartabLink {
113     return [self completeHrefForMethod:@"yearoverview"];
114 }
115
116
117 @end