The multiColumns view

This commit is contained in:
Alexandre Cloutier
2014-06-20 13:16:55 -04:00
parent ce07695a55
commit eb3cc8916d
14 changed files with 696 additions and 318 deletions

View File

@@ -55,9 +55,12 @@
ASSIGN (timeFormat, [ud timeFormat]);
daysToDisplay = nil;
calendarsToDisplay = nil;
hoursToDisplay = nil;
numberOfDays = 1;
startDate = nil;
currentView = nil;
currentCalendar = nil;
currentTableDay = nil;
currentTableHour = nil;
weekDays = [locale objectForKey: NSShortWeekDayNameArray];
@@ -75,6 +78,9 @@
// [allAppointments release];
[weekDays release];
[daysToDisplay release];
[calendarsToDisplay release];
[currentView release];
[currentCalendar release];
[hoursToDisplay release];
[dateFormatter release];
[timeFormat release];
@@ -119,6 +125,16 @@
return [endDate endOfDay];
}
- (void) setCurrentView: (NSString *) aView
{
currentView = [NSString stringWithString:aView];
}
- (NSString *) currentView
{
return currentView;
}
- (NSArray *) hoursToDisplay
{
unsigned int currentHour, lastHour;
@@ -148,22 +164,67 @@
{
NSCalendarDate *currentDate;
int count;
if (!daysToDisplay)
{
daysToDisplay = [NSMutableArray new];
currentDate = [[self startDate] hour: [self dayStartHour]
minute: 0];
for (count = 0; count < numberOfDays; count++)
{
daysToDisplay = [NSMutableArray new];
currentDate = [[self startDate] hour: [self dayStartHour]
minute: 0];
for (count = 0; count < numberOfDays; count++)
{
[daysToDisplay addObject: currentDate];
currentDate = [currentDate tomorrow];
}
[daysToDisplay addObject: currentDate];
currentDate = [currentDate tomorrow];
}
}
return daysToDisplay;
}
- (NSArray *) calendarsToDisplay
{
if (!calendarsToDisplay) {
int max=0, i;
NSArray *folders;
SOGoAppointmentFolders *co;
SOGoAppointmentFolder *folder;
NSMutableDictionary *calendar;
unsigned int count, foldersCount;
NSString *folderName, *fDisplayName;
NSNumber *isActive;
co = [self clientObject];
folders = [co subFolders];
foldersCount = [folders count];
calendarsToDisplay = [[NSMutableArray alloc] initWithCapacity: foldersCount];
for (count = 0; count < foldersCount; count++)
{
folder = [folders objectAtIndex: count];
isActive = [NSNumber numberWithBool: [folder isActive]];
if ([isActive intValue] != 0) {
calendar = [NSMutableDictionary dictionary];
folderName = [folder nameInContainer];
fDisplayName = [folder displayName];
if (fDisplayName == nil)
fDisplayName = @"";
if ([fDisplayName isEqualToString: [co defaultFolderName]])
fDisplayName = [self labelForKey: fDisplayName];
[calendar setObject: [NSString stringWithFormat: @"/%@", folderName]
forKey: @"id"];
[calendar setObject: fDisplayName forKey: @"displayName"];
[calendar setObject: folderName forKey: @"folder"];
[calendar setObject: [folder calendarColor] forKey: @"color"];
[calendar setObject: isActive forKey: @"active"];
[calendar setObject: [folder ownerInContext: context]
forKey: @"owner"];
[calendarsToDisplay addObject: calendar];
}
}
}
return calendarsToDisplay;
}
- (void) setCurrentTableDay: (NSCalendarDate *) aTableDay
{
currentTableDay = aTableDay;
@@ -174,6 +235,16 @@
return currentTableDay;
}
- (void) setCurrentCalendar: (NSMutableArray *) aCalendar
{
currentCalendar = aCalendar;
}
- (NSMutableArray *) currentCalendar
{
return currentCalendar;
}
- (void) setCurrentTableHour: (NSString *) aTableHour
{
currentTableHour = aTableHour;
@@ -226,6 +297,16 @@
return [dateFormatter shortFormattedDate: currentTableDay];
}
- (NSString *) labelForCalendar
{
return [NSString stringWithFormat:[currentCalendar objectForKey:@"displayName"]];
}
- (NSString *) colorForCalendar
{
return [NSString stringWithFormat:[currentCalendar objectForKey:@"color"]];
}
// - (NSDictionary *) _adjustedAppointment: (NSDictionary *) anAppointment
// forStart: (NSCalendarDate *) start
// andEnd: (NSCalendarDate *) end
@@ -318,7 +399,15 @@
- (NSString *) daysViewClasses
{
return [NSString stringWithFormat: @"daysView daysViewFor%dDays", numberOfDays];
NSString *daysView;
if ([currentView isEqualToString:@"multicolumndayview"])
daysView = @"daysView daysViewForMultipleDays";
else
daysView = [NSString stringWithFormat: @"daysView daysViewFor%dDays", numberOfDays];
return daysView;
}
- (NSString *) dayClasses
@@ -326,19 +415,25 @@
NSMutableString *classes;
unsigned int currentDayNbr, realDayOfWeek;
currentDayNbr = [daysToDisplay indexOfObject: currentTableDay];
realDayOfWeek = [currentTableDay dayOfWeek];
classes = [NSMutableString string];
[classes appendFormat: @"day day%d", currentDayNbr];
if (numberOfDays > 1)
if ([currentView isEqualToString:@"multicolumndayview"])
[classes appendFormat:@"day dayColumn"];
else {
currentDayNbr = [daysToDisplay indexOfObject: currentTableDay];
realDayOfWeek = [currentTableDay dayOfWeek];
[classes appendFormat: @"day day%d", currentDayNbr];
if (numberOfDays > 1)
{
if (realDayOfWeek == 0 || realDayOfWeek == 6)
[classes appendString: @" weekEndDay"];
if ([currentTableDay isToday])
[classes appendString: @" dayOfToday"];
}
}
return classes;
}
@@ -358,4 +453,24 @@
return cellClass;
}
- (BOOL) isMultiColumnView
{
BOOL flag = NO;
if ([currentView isEqualToString:@"multicolumndayview"])
flag = YES;
return flag;
}
- (BOOL) isNotMultiColumnView
{
BOOL flag = NO;
if ([currentView isEqualToString:@"dayview"] || [currentView isEqualToString:@"weekview"])
flag = YES;
return flag;
}
@end