From 8407bfaa0712e3a7a87cdc45bdac79b1d40906a4 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Thu, 14 Dec 2006 21:15:05 +0000 Subject: [PATCH] Monotone-Parent: f261c808456800f2a75a751af5871d3dc8fdd693 Monotone-Revision: ac12726c5c25cab930eea76522ab73de7756eedb Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2006-12-14T21:15:05 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 3 + .../Appointments/SOGoCalendarComponent.h | 46 ++++++++++++ .../Appointments/SOGoCalendarComponent.m | 74 +++++++++++++++++++ 3 files changed, 123 insertions(+) create mode 100644 SoObjects/Appointments/SOGoCalendarComponent.h create mode 100644 SoObjects/Appointments/SOGoCalendarComponent.m diff --git a/ChangeLog b/ChangeLog index 6188a323c..e7675024c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2006-12-14 Wolfgang Sourdeau + * SoObjects/Appointments/SOGoCalendarComponent.[hm]: new parent + class for SOGoAppointmentObject and SOGoTaskObject. + * UI/Common/UIxAclEditor.[hm]: new component that provides a general editor for folder acls. diff --git a/SoObjects/Appointments/SOGoCalendarComponent.h b/SoObjects/Appointments/SOGoCalendarComponent.h new file mode 100644 index 000000000..6d93a4afe --- /dev/null +++ b/SoObjects/Appointments/SOGoCalendarComponent.h @@ -0,0 +1,46 @@ +/* SOGoCalendarComponent.h - this file is part of SOGo + * + * Copyright (C) 2006 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * 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. + */ + +#ifndef SOGOCALENDARCOMPONENT_H +#define SOGOCALENDARCOMPONENT_H + +#import + +@class NSString; + +@class iCalCalendar; + +@interface SOGoCalendarComponent : SOGoContentObject +{ + iCalCalendar *calendar; +} + +/* accessors */ + +- (NSString *) iCalString; +- (iCalCalendar *) calendar; + +- (NSException *) delete; + +@end + +#endif /* SOGOCALENDARCOMPONENT_H */ diff --git a/SoObjects/Appointments/SOGoCalendarComponent.m b/SoObjects/Appointments/SOGoCalendarComponent.m new file mode 100644 index 000000000..dc724137c --- /dev/null +++ b/SoObjects/Appointments/SOGoCalendarComponent.m @@ -0,0 +1,74 @@ +/* SOGoCalendarComponent.m - this file is part of SOGo + * + * Copyright (C) 2006 Inverse groupe conseil + * + * Author: Wolfgang Sourdeau + * + * 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 + +#import "SOGoCalendarComponent.h" + +@implementation SOGoCalendarComponent + +- (id) init +{ + if ((self = [super init])) + { + calendar = nil; + } + + return self; +} + +- (void) dealloc +{ + if (calendar) + [calendar release]; + [super dealloc]; +} + +- (NSString *) iCalString +{ + // for UI-X appointment viewer + return [self contentAsString]; +} + +- (iCalCalendar *) calendar +{ + NSString *iCalString; + + if (!calendar) + { + iCalString = [self iCalString]; + if (iCalString) + { + calendar = [iCalCalendar parseSingleFromSource: iCalString]; + [calendar retain]; + } + } + + return calendar; +} + +- (NSException *) delete +{ + return [self deleteWithBaseSequence:0]; +} + +@end