+/*
+ Copyright (C) 2000-2004 SKYRIX Software AG
+
+ This file is part of OGo
+
+ OGo is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ OGo 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 Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with OGo; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+// $Id$
+
+
+#include <NGObjWeb/NGObjWeb.h>
+
+
+@interface OGoCalDateLabel : WOComponent
+{
+ NSString *selection;
+ NSCalendarDate *startDate;
+ NSCalendarDate *endDate;
+}
+
+- (NSString *)dayLabel;
+- (NSString *)weekLabel;
+- (NSString *)monthLabel;
+- (NSString *)yearLabel;
+
+@end
+
+
+@implementation OGoCalDateLabel
+
+- (void)dealloc {
+ [self->selection release];
+ [self->startDate release];
+ [self->endDate release];
+ [super dealloc];
+}
+
+- (void)setSelection:(NSString *)_selection {
+ ASSIGN(self->selection, _selection);
+}
+
+- (NSString *)selection {
+ return self->selection;
+}
+
+- (void)setStartDate:(NSCalendarDate *)_date {
+ ASSIGN(self->startDate, _date);
+}
+
+- (NSCalendarDate *)startDate {
+ return self->startDate;
+}
+
+- (void)setEndDate:(NSCalendarDate *)_date {
+ ASSIGN(self->endDate, _date);
+}
+
+- (NSCalendarDate *)endDate {
+ return self->endDate;
+}
+
+- (NSString *)label {
+ NSString *key = [self selection];
+ if([key isEqualToString:@"day"])
+ return [self dayLabel];
+ else if([key isEqualToString:@"week"])
+ return [self weekLabel];
+ else if([key isEqualToString:@"month"])
+ return [self monthLabel];
+ return [self yearLabel];
+}
+
+- (NSString *)dayLabel {
+ return [self->startDate descriptionWithCalendarFormat:@"%Y-%m-%d"];
+}
+
+- (NSString *)weekLabel {
+ NSString *label;
+
+ label = [self->startDate descriptionWithCalendarFormat:@"%B %Y"];
+ if([self->startDate monthOfYear] != [self->endDate monthOfYear]) {
+ NSString *ext;
+
+ ext = [self->endDate descriptionWithCalendarFormat:@"%B %Y"];
+ label = [NSString stringWithFormat:@"<nobr>%@ / %@</nobr>",
+ label,
+ ext];
+ }
+ return label;
+}
+
+- (NSString *)monthLabel {
+ return [self->startDate descriptionWithCalendarFormat:@"%B %Y"];
+}
+
+- (NSString *)yearLabel {
+ return [self->startDate descriptionWithCalendarFormat:@"%Y"];
+}
+
+@end