Index: iphone/Classes/ArchiveController.m |
=================================================================== |
--- iphone/Classes/ArchiveController.m (revision 0) |
+++ iphone/Classes/ArchiveController.m (revision 0) |
@@ -0,0 +1,136 @@ |
+// |
+// ArchiveController.m |
+// UIShowcase |
+// |
+// Created by Christian Brunschen on 29/05/2008. |
+/* |
+ * Copyright 2008 Google Inc. |
+ * |
+ * Licensed under the Apache License, Version 2.0 (the "License"); |
+ * you may not use this file except in compliance with the License. |
+ * You may obtain a copy of the License at |
+ * |
+ * http://www.apache.org/licenses/LICENSE-2.0 |
+ * |
+ * Unless required by applicable law or agreed to in writing, software |
+ * distributed under the License is distributed on an "AS IS" BASIS, |
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+ * See the License for the specific language governing permissions and |
+ * limitations under the License. |
+ */ |
+ |
+#import "ArchiveController.h" |
+#import "Database.h" |
+#import "Scan.h" |
+#import "ParsedResult.h" |
+#import "DecoderViewController.h" |
+ |
+@implementation ArchiveController |
+ |
+@synthesize scans; |
+@synthesize decoderViewController; |
+ |
+- initWithDecoderViewController:(DecoderViewController *)dc { |
+ if (self = [super initWithStyle:UITableViewStylePlain]) { |
+ self.decoderViewController = dc; |
+ self.scans = [NSMutableArray array]; |
+ } |
+ return self; |
+} |
+ |
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { |
+ return 1; |
+} |
+ |
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { |
+ return [scans count]; |
+} |
+ |
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { |
+ static NSString *ScanIdentifier = @"ScanIdentifier"; |
+ |
+ UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ScanIdentifier]; |
+ if (cell == nil) { |
+ cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:ScanIdentifier] autorelease]; |
+ cell.font = [cell.font fontWithSize:10.0]; |
+ cell.lineBreakMode = UILineBreakModeCharacterWrap; |
+ } |
+ // Configure the cell |
+ Scan *scan = [scans objectAtIndex:[self scanIndexForRow:indexPath.row]]; |
+ ParsedResult *result = [ParsedResult parsedResultForString:scan.text]; |
+ cell.text = [result stringForDisplay]; |
+ return cell; |
+} |
+ |
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { |
+ [decoderViewController showScan:[scans objectAtIndex:[self scanIndexForRow:indexPath.row]]]; |
+} |
+ |
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { |
+ if (editingStyle == UITableViewCellEditingStyleDelete) { |
+ int index = [self scanIndexForRow:indexPath.row]; |
+ Scan *scan = [self.scans objectAtIndex:index]; |
+ [[Database sharedDatabase] deleteScan:scan]; |
+ [self.scans removeObjectAtIndex:index]; |
+ [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; |
+ [tableView reloadData]; |
+ } else if (editingStyle == UITableViewCellEditingStyleInsert) { |
+ // no insertions! |
+ } |
+} |
+ |
+/* |
+- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { |
+ return YES; |
+} |
+*/ |
+/* |
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath { |
+} |
+*/ |
+/* |
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath { |
+ return YES; |
+} |
+*/ |
+ |
+ |
+- (void)dealloc { |
+ [scans release]; |
+ [decoderViewController release]; |
+ [super dealloc]; |
+} |
+ |
+ |
+- (void)viewDidLoad { |
+ [super viewDidLoad]; |
+ self.title = @"Scan Archive"; |
+ self.navigationItem.rightBarButtonItem = [self editButtonItem]; |
+} |
+ |
+ |
+- (void)viewWillAppear:(BOOL)animated { |
+ [super viewWillAppear:animated]; |
+ self.scans = [NSMutableArray arrayWithArray:[[Database sharedDatabase] scans]]; |
+} |
+ |
+- (void)viewDidAppear:(BOOL)animated { |
+ [super viewDidAppear:animated]; |
+} |
+ |
+- (void)viewWillDisappear:(BOOL)animated { |
+} |
+ |
+- (void)viewDidDisappear:(BOOL)animated { |
+} |
+ |
+- (void)didReceiveMemoryWarning { |
+ [super didReceiveMemoryWarning]; |
+} |
+ |
+- (NSInteger)scanIndexForRow:(NSInteger)row { |
+ return scans.count - 1 - row; |
+} |
+ |
+@end |
+ |