From c64877be105019508234b9ee867d710de3b8160c Mon Sep 17 00:00:00 2001 From: Bibiko Date: Mon, 15 Feb 2010 10:16:13 +0000 Subject: =?UTF-8?q?=E2=80=A2=20some=20further=20progress=20for=20the=20new?= =?UTF-8?q?=20csv=20import=20field=20mapper=20sheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/SPFieldMapperController.h | 6 +++++- Source/SPFieldMapperController.m | 45 +++++++++++++++++++++++++++++++++++----- 2 files changed, 45 insertions(+), 6 deletions(-) (limited to 'Source') diff --git a/Source/SPFieldMapperController.h b/Source/SPFieldMapperController.h index 67dc381d..d48585e0 100644 --- a/Source/SPFieldMapperController.h +++ b/Source/SPFieldMapperController.h @@ -31,7 +31,7 @@ IBOutlet id fieldMapperTableView; IBOutlet id tableTargetPopup; - IBOutlet id fileSourcePath; + IBOutlet NSPathControl *fileSourcePath; IBOutlet id importMethodPopup; IBOutlet id rowUpButton; IBOutlet id rowDownButton; @@ -42,13 +42,17 @@ NSInteger fieldMappingCurrentRow; NSArray *fieldMappingImportArray; NSArray *fieldMappingArray; + NSMutableArray *fieldMappingTableColumnNames; BOOL fieldMappingImportArrayIsPreview; MCPConnection *mySQLConnection; + NSString *sourcePath; } +@property(retain) NSString* sourcePath; + - (id)initWithDelegate:(id)managerDelegate; - (void)setConnection:(MCPConnection *)theConnection; diff --git a/Source/SPFieldMapperController.m b/Source/SPFieldMapperController.m index 92d0c935..3ed30270 100644 --- a/Source/SPFieldMapperController.m +++ b/Source/SPFieldMapperController.m @@ -25,9 +25,12 @@ #import "SPFieldMapperController.h" #import "SPTableData.h" +#import "TablesList.h" @implementation SPFieldMapperController +@synthesize sourcePath; + #pragma mark - #pragma mark Initialization @@ -46,11 +49,27 @@ return nil; } theDelegate = managerDelegate; + fieldMappingTableColumnNames = [[NSMutableArray alloc] initWithCapacity:1]; } return self; } +- (void)awakeFromNib +{ + [fileSourcePath setURL:[NSURL URLWithString:sourcePath]]; + [tableTargetPopup removeAllItems]; + [tableTargetPopup addItemsWithTitles:[[theDelegate valueForKeyPath:@"tablesListInstance"] allTableNames]]; + + // Select either the currently selected table, or the first item in the list + if ([[theDelegate valueForKeyPath:@"tableDocumentInstance"] table] != nil && ![[[theDelegate valueForKeyPath:@"tablesListInstance"] tableName] isEqualToString:@""]) { + [tableTargetPopup selectItemWithTitle:[[theDelegate valueForKeyPath:@"tablesListInstance"] tableName]]; + } else { + [tableTargetPopup selectItemAtIndex:0]; + } + + [self changeTableTarget:self]; +} /* * Set the connection for use. * Called by the connect sheet methods. @@ -64,6 +83,8 @@ - (void)dealloc { if (mySQLConnection) [mySQLConnection release]; + if (sourcePath) [sourcePath release]; + if (fieldMappingTableColumnNames) [fieldMappingTableColumnNames release]; [super dealloc]; } @@ -79,17 +100,18 @@ { // Remove all the current columns - // [fieldMappingTableColumnNames removeAllObjects]; + [fieldMappingTableColumnNames removeAllObjects]; // Retrieve the information for the newly selected table using a SPTableData instance SPTableData *selectedTableData = [[SPTableData alloc] init]; [selectedTableData setConnection:mySQLConnection]; NSDictionary *tableDetails = [selectedTableData informationForTable:[tableTargetPopup titleOfSelectedItem]]; if (tableDetails) { - // for (NSDictionary *column in [tableDetails objectForKey:@"columns"]) { - // [fieldMappingTableColumnNames addObject:[NSString stringWithString:[column objectForKey:@"name"]]]; - // } + for (NSDictionary *column in [tableDetails objectForKey:@"columns"]) { + [fieldMappingTableColumnNames addObject:[NSString stringWithString:[column objectForKey:@"name"]]]; + } } + NSLog(@"f %@", [fieldMappingTableColumnNames description]); [selectedTableData release]; // Update the table view @@ -135,7 +157,7 @@ - (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView; { - return 0; + return [fieldMappingTableColumnNames count]; } - (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex @@ -145,6 +167,19 @@ - (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { + if ([[aTableColumn identifier] isEqualToString:@"target_field"]) { + return [fieldMappingTableColumnNames objectAtIndex:rowIndex]; + + } + // else if ([[aTableColumn identifier] isEqualToString:@"value"]) { + // if ([[[aTableColumn dataCell] class] isEqualTo:[NSPopUpButtonCell class]]) { + // [(NSPopUpButtonCell *)[aTableColumn dataCell] removeAllItems]; + // [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemWithTitle:NSLocalizedString(@"Do not import", @"text for csv import drop downs")]; + // [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemsWithTitles:fieldMappingButtonOptions]; + // } + // + // returnObject = [fieldMappingArray objectAtIndex:rowIndex]; + // } return nil; } -- cgit v1.2.3