Monotone-Parent: c89c225a9b1b1ad4ce106e7b74c622f18718ff74

Monotone-Revision: 20c04b0bdf1f43a5ad91e5871e2205434e862cd6

Monotone-Author: wsourdeau@inverse.ca
Monotone-Date: 2007-06-13T19:32:57
Monotone-Branch: ca.inverse.sogo
This commit is contained in:
Wolfgang Sourdeau
2007-06-13 19:32:57 +00:00
parent b00c5dddc7
commit 8173b4dcf1
6 changed files with 125 additions and 111 deletions

View File

@@ -1,5 +1,8 @@
2007-06-13 Wolfgang Sourdeau <wsourdeau@inverse.ca>
* SoObjects/SOGo/NSObject+AptComparison.[hm]: removed category
module, replaced with NSArray+Scheduler in UI/SchedulerUI/.
* SoObjects/Appointments/SOGoAppointmentFolder.m
([SOGoAppointmentFolder
-fetchFields:_fieldsfromFolder:_folderfrom:_startDateto:_endDatecomponent:_component]):

View File

@@ -32,7 +32,6 @@ libSOGo_HEADER_FILES = \
LDAPSource.h \
SOGoPermissions.h \
SOGoLRUCache.h \
NSObject+AptComparison.h \
WOContext+Agenor.h \
SOGoDAVRendererTypes.h \
NSArray+Utilities.h \
@@ -61,7 +60,6 @@ libSOGo_OBJC_FILES = \
SOGoLRUCache.m \
LDAPUserManager.m \
LDAPSource.m \
NSObject+AptComparison.m \
WOContext+Agenor.m \
SOGoDAVRendererTypes.m \
AgenorUserDefaults.m \

View File

@@ -1,34 +0,0 @@
/*
Copyright (C) 2004 SKYRIX Software AG
This file is part of OpenGroupware.org.
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: NSObject+AptComparison.h 620 2005-03-02 19:57:10Z znek $
#ifndef __SOGo_NSObject_AptComparison_H_
#define __SOGo_NSObject_AptComparison_H_
#import <Foundation/NSObject.h>
@interface NSObject (SOGoAptComparison)
- (NSComparisonResult)compareAptsAscending:(id)_other;
@end
#endif /* __SOGo_NSObject_AptComparison_H_ */

View File

@@ -1,75 +0,0 @@
/*
Copyright (C) 2004 SKYRIX Software AG
This file is part of OpenGroupware.org.
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: NSObject+AptComparison.m 620 2005-03-02 19:57:10Z znek $
#include "NSObject+AptComparison.h"
#include <NGExtensions/NGCalendarDateRange.h>
#include "common.h"
@implementation NSObject (SOGoAptComparison)
- (NSComparisonResult) compareAptsAscending: (id) _other
{
NSCalendarDate *sd, *ed;
NGCalendarDateRange *r1, *r2;
NSComparisonResult result;
NSTimeInterval t1, t2;
sd = [self valueForKey: @"startDate"];
ed = [self valueForKey: @"endDate"];
if (sd && ed)
r1 = [NGCalendarDateRange calendarDateRangeWithStartDate: sd
endDate: ed];
else
r1 = nil;
sd = [_other valueForKey: @"startDate"];
ed = [_other valueForKey: @"endDate"];
if (sd && ed)
r2 = [NGCalendarDateRange calendarDateRangeWithStartDate: sd
endDate: ed];
else
r2 = nil;
if (r1)
if (r2)
{
result = [r1 compare: r2];
if (result != NSOrderedSame)
return result;
t1 = [r1 duration];
t2 = [r2 duration];
if (t1 == t2)
return NSOrderedSame;
if (t1 > t2)
return NSOrderedDescending;
}
else
return NSOrderedDescending;
else
if (!r2)
return NSOrderedSame;
return NSOrderedAscending;
}
@end

View File

@@ -0,0 +1,35 @@
/* NSArray+Scheduler.m - this file is part of SOGo
*
* Copyright (C) 2007 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.
*/
#ifndef NSARRAY_SCHEDULER_H
#define NSARRAY_SCHEDULER_H
#import <Foundation/NSArray.h>
@interface NSArray (SOGoEventComparison)
- (NSComparisonResult) compareEventsAscending: (NSArray *) otherEvent;
- (NSComparisonResult) compareTasksAscending: (NSArray *) otherTask;
@end
#endif /* NSARRAY_SCHEDULER_H */

View File

@@ -0,0 +1,87 @@
/* NSArray+Scheduler.m - this file is part of SOGo
*
* Copyright (C) 2007 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/NSCalendarDate.h>
#import <Foundation/NSNull.h>
#import <Foundation/NSValue.h>
#import <NGExtensions/NGCalendarDateRange.h>
#import "NSArray+Scheduler.h"
@implementation NSArray (SOGoEventComparison)
- (NSComparisonResult) _compareCompletionWithStatus1: (NSNumber *) status1
andStatus2: (NSNumber *) status2
{
NSComparisonResult result;
unsigned int ts1, ts2;
ts1 = [status1 intValue];
ts2 = [status2 intValue];
if (ts1 == 1 && ts2 != 1)
result = NSOrderedDescending;
else if (ts1 != 1 && ts2 == 1)
result = NSOrderedAscending;
else
result = NSOrderedSame;
return result;
}
- (NSComparisonResult) compareEventsAscending: (NSArray *) otherEvent
{
return [[self objectAtIndex: 4] compare: [otherEvent objectAtIndex: 4]];
}
- (NSComparisonResult) compareTasksAscending: (NSArray *) otherTask
{
NSComparisonResult result;
unsigned int selfTime, otherTime;
Class nullClass;
result = [self _compareCompletionWithStatus1: [self objectAtIndex: 2]
andStatus2: [otherTask objectAtIndex: 2]];
if (result == NSOrderedSame)
{
nullClass = [NSNull class];
selfTime = [[self objectAtIndex: 4] intValue];
otherTime = [[otherTask objectAtIndex: 4] intValue];
if (selfTime && !otherTime)
result = NSOrderedAscending;
else if (!selfTime && otherTime)
result = NSOrderedDescending;
else
{
if (selfTime > otherTime)
result = NSOrderedDescending;
else if (selfTime < otherTime)
result = NSOrderedAscending;
else
result = [[self objectAtIndex: 1]
compare: [otherTask objectAtIndex: 1]];
}
}
return result;
}
@end