diff options
author | Bibiko <bibiko@eva.mpg.de> | 2010-02-17 10:40:21 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2010-02-17 10:40:21 +0000 |
commit | dc01911fd5987bb4a3213b2c6637326d9dd8c94d (patch) | |
tree | 47107a0f02a5320701e48e64ed684761b43c143d /Source | |
parent | 72c4522db57b9699e1dc324f62dbeb036405f2c6 (diff) | |
download | sequelpro-dc01911fd5987bb4a3213b2c6637326d9dd8c94d.tar.gz sequelpro-dc01911fd5987bb4a3213b2c6637326d9dd8c94d.tar.bz2 sequelpro-dc01911fd5987bb4a3213b2c6637326d9dd8c94d.zip |
• csv file import mapper
- added button "Go Back" ⌥← to go back to the file chooser (mainly for correcting delimiter etc.)
- improved selecting csv file columns for the case that column was set as 'Do not import'; now if set to 'Do not import' the value is hidden, click the user on it the popup menu appears and the operator is set to 'Do import' automatically
• TableDump now remembers the last chosen csv file name
Diffstat (limited to 'Source')
-rw-r--r-- | Source/SPFieldMapperController.h | 1 | ||||
-rw-r--r-- | Source/SPFieldMapperController.m | 23 | ||||
-rw-r--r-- | Source/TableDump.h | 1 | ||||
-rw-r--r-- | Source/TableDump.m | 14 |
4 files changed, 28 insertions, 11 deletions
diff --git a/Source/SPFieldMapperController.h b/Source/SPFieldMapperController.h index 4b9a3178..8a2caf15 100644 --- a/Source/SPFieldMapperController.h +++ b/Source/SPFieldMapperController.h @@ -92,6 +92,7 @@ - (IBAction)stepRow:(id)sender; - (IBAction)addGlobalSourceVariable:(id)sender; - (IBAction)closeSheet:(id)sender; +- (IBAction)goBackToFileChooser:(id)sender; // Others - (void)matchHeaderNames; diff --git a/Source/SPFieldMapperController.m b/Source/SPFieldMapperController.m index 42ac3b0d..7dc0a3eb 100644 --- a/Source/SPFieldMapperController.m +++ b/Source/SPFieldMapperController.m @@ -25,6 +25,7 @@ #import "SPFieldMapperController.h" #import "SPTableData.h" +#import "TableDump.h" #import "TablesList.h" #import "SPArrayAdditions.h" #import "SPStringAdditions.h" @@ -315,7 +316,13 @@ - (IBAction)addGlobalSourceVariable:(id)sender { + +} +- (IBAction)goBackToFileChooser:(id)sender +{ + [NSApp endSheet:[self window] returnCode:[sender tag]]; + [theDelegate importFile]; } #pragma mark - @@ -494,14 +501,10 @@ else if ([[aTableColumn identifier] isEqualToString:@"import_value"]) { if ([[aTableColumn dataCell] isKindOfClass:[NSPopUpButtonCell class]]) { [(NSPopUpButtonCell *)[aTableColumn dataCell] removeAllItems]; + [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemsWithTitles:fieldMappingButtonOptions]; + // Hide csv file column value if user doesn't want to import it if([fieldMappingOperatorArray objectAtIndex:rowIndex] != doNotImport) - [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemsWithTitles:fieldMappingButtonOptions]; - return [fieldMappingArray objectAtIndex:rowIndex]; - // } else { - // NSString *defaultValue = [fieldMappingTableDefaultValues objectAtIndex:[[fieldMappingArray objectAtIndex:rowIndex] integerValue]]; - // [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemWithTitle:defaultValue]; - // return defaultValue; - // } + return [fieldMappingArray objectAtIndex:rowIndex]; } } else if ([[aTableColumn identifier] isEqualToString:@"operator"]) { @@ -518,9 +521,10 @@ { if ([[aTableColumn identifier] isEqualToString:@"import_value"]) { [fieldMappingArray replaceObjectAtIndex:rowIndex withObject:anObject]; + // If user changed the csv file column set the operator to doImport + [fieldMappingOperatorArray replaceObjectAtIndex:rowIndex withObject:doImport]; } else if ([[aTableColumn identifier] isEqualToString:@"operator"]) { - if([fieldMappingOperatorArray objectAtIndex:rowIndex] == anObject) return; if([fieldMappingOperatorArray objectAtIndex:rowIndex] == doNotImport) { [fieldMappingOperatorArray replaceObjectAtIndex:rowIndex withObject:anObject]; [fieldMappingArray replaceObjectAtIndex:rowIndex withObject:lastDisabledCSVFieldcolumn]; @@ -528,8 +532,9 @@ if(anObject == doNotImport) lastDisabledCSVFieldcolumn = [fieldMappingArray objectAtIndex:rowIndex]; [fieldMappingOperatorArray replaceObjectAtIndex:rowIndex withObject:anObject]; } - [aTableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.01]; } + // Refresh table + [aTableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.01]; } @end diff --git a/Source/TableDump.h b/Source/TableDump.h index 001b1778..3db8c908 100644 --- a/Source/TableDump.h +++ b/Source/TableDump.h @@ -108,6 +108,7 @@ typedef enum _SPExportModes { NSArray *fieldMapperOperator; NSString *selectedTableTarget; NSString *selectedImportMethod; + NSString *lastFilename; NSInteger fieldMapperSheetStatus; NSUInteger exportMode; diff --git a/Source/TableDump.m b/Source/TableDump.m index 9e42e105..4854aad3 100644 --- a/Source/TableDump.m +++ b/Source/TableDump.m @@ -496,7 +496,7 @@ // Show openPanel [openPanel beginSheetForDirectory:[prefs objectForKey:@"openPath"] - file:nil + file:[lastFilename lastPathComponent] modalForWindow:tableWindow modalDelegate:self didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:) @@ -1089,8 +1089,16 @@ // Reset progress cancelled from any previous runs progressCancelled = NO; + if(lastFilename) [lastFilename release]; lastFilename = nil; + lastFilename = [[NSString stringWithString:[sheet filename]] retain]; + + if(lastFilename == nil || ![lastFilename length]) { + NSBeep(); + return; + } + // begin import process - [NSThread detachNewThreadSelector:@selector(importBackgroundProcess:) toTarget:self withObject:[sheet filename]]; + [NSThread detachNewThreadSelector:@selector(importBackgroundProcess:) toTarget:self withObject:lastFilename]; } - (void)startSQLImportProcessWithFile:(NSString *)filename @@ -2797,6 +2805,7 @@ fieldMappingImportArray = nil; fieldMappingImportArrayIsPreview = NO; prefs = nil; + lastFilename = nil; return self; } @@ -2805,6 +2814,7 @@ { [tables release]; if (fieldMappingImportArray) [fieldMappingImportArray release]; + if (lastFilename) [lastFilename release]; if (prefs) [prefs release]; [super dealloc]; |