//
// RootViewController.m
// Icons
//
// Created by takiuchi on 09/02/22.
// Copyright s21g LLC 2009. All rights reserved.
//
#import "RootViewController.h"
#import "IconsAppDelegate.h"
#import "IconListViewController.h"
@implementation RootViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.title = @"Icons";
}
- (IconsAppDelegate *)delegate
{
return (IconsAppDelegate*)[UIApplication sharedApplication].delegate;
}
/*
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
*/
/*
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
*/
/*
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
}
*/
/*
- (void)viewDidDisappear:(BOOL)animated {
[super viewDidDisappear:animated];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning]; // Releases the view if it doesn't have a superview
// Release anything that's not essential, such as cached data
}
#pragma mark Table view methods
- (NSInteger)
numberOfSectionsInTableView:(UITableView *)tableView
{
return [self.delegate.icons count];
}
// Customize the number of rows in the table view.
- (NSInteger)
tableView:(UITableView *)tableView
numberOfRowsInSection:(NSInteger)section
{
return [[self.delegate.icons objectAtIndex:section] count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)
tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
//cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
NSArray *icons = [self.delegate.icons objectAtIndex:indexPath.section];
cell.text = [icons objectAtIndex:indexPath.row];
return cell;
}
- (void)prepareIconListViewController
{
if(_iconListViewController) return;
_iconListViewController = [[IconListViewController alloc] initWithStyle:UITableViewStyleGrouped];
}
- (void)
tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
/*[self prepareIconListViewController];
switch (indexPath.section) {
case 0:
_iconListViewController.title = @"Button Bar";
_iconListViewController.icons = [self.delegate.buttonBar objectForKey:@"iconMatrix"];
break;
case 1:
_iconListViewController.title = [@"Icon List" stringByAppendingFormat:@" %d", indexPath.row + 1];
_iconListViewController.icons = [[self.delegate.iconLists objectAtIndex:indexPath.row]
objectForKey:@"iconMatrix"];
break;
}
[self.navigationController pushViewController:_iconListViewController animated:YES];*/
}
/*
// Override to support conditional editing of the table view.
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
// Return NO if you do not want the specified item to be editable.
return YES;
}
*/
/*
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
*/
// Override to support rearranging the table view.
- (void)
tableView:(UITableView *)tableView
moveRowAtIndexPath:(NSIndexPath *)fromIndexPath
toIndexPath:(NSIndexPath *)toIndexPath
{
NSMutableArray *iconsFrom = [self.delegate.icons objectAtIndex:fromIndexPath.section];
NSMutableArray *iconsTo = [self.delegate.icons objectAtIndex:toIndexPath.section];
if(!iconsTo){
iconsTo = [NSMutableArray new];
[self.delegate.icons insertObject:iconsTo atIndex:toIndexPath.section];
[iconsTo release];
}
NSString *icon = [[iconsFrom objectAtIndex:fromIndexPath.row] retain];
[iconsFrom removeObjectAtIndex:fromIndexPath.row];
[iconsTo insertObject:icon atIndex:toIndexPath.row];
[icon release];
if([iconsFrom count] == 0){
[self.delegate.icons removeObjectAtIndex:fromIndexPath.section];
}
[self.delegate updatePrefs];
}
// Override to support conditional rearranging of the table view.
- (BOOL)
tableView:(UITableView *)tableView
canMoveRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the item to be re-orderable.
return YES;
}
- (void)dealloc
{
[_iconListViewController release];
[super dealloc];
}
@end