From dc01911fd5987bb4a3213b2c6637326d9dd8c94d Mon Sep 17 00:00:00 2001 From: Bibiko Date: Wed, 17 Feb 2010 10:40:21 +0000 Subject: =?UTF-8?q?=E2=80=A2=20csv=20file=20import=20mapper=20-=20added=20?= =?UTF-8?q?button=20"Go=20Back"=20=E2=8C=A5=E2=86=90=20to=20go=20back=20to?= =?UTF-8?q?=20the=20file=20chooser=20(mainly=20for=20correcting=20delimite?= =?UTF-8?q?r=20etc.)=20-=20improved=20selecting=20csv=20file=20columns=20f?= =?UTF-8?q?or=20the=20case=20that=20column=20was=20set=20as=20'Do=20not=20?= =?UTF-8?q?import';=20now=20if=20set=20to=20'Do=20not=20import'=20the=20va?= =?UTF-8?q?lue=20is=20hidden,=20click=20the=20user=20on=20it=20the=20popup?= =?UTF-8?q?=20menu=20appears=20and=20the=20operator=20is=20set=20to=20'Do?= =?UTF-8?q?=20import'=20automatically=20=E2=80=A2=20TableDump=20now=20reme?= =?UTF-8?q?mbers=20the=20last=20chosen=20csv=20file=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Interfaces/English.lproj/DataMigrationDialog.xib | 66 ++++++++++++++++++++++-- Source/SPFieldMapperController.h | 1 + Source/SPFieldMapperController.m | 23 +++++---- Source/TableDump.h | 1 + Source/TableDump.m | 14 ++++- 5 files changed, 90 insertions(+), 15 deletions(-) diff --git a/Interfaces/English.lproj/DataMigrationDialog.xib b/Interfaces/English.lproj/DataMigrationDialog.xib index d0afc212..195ff58d 100644 --- a/Interfaces/English.lproj/DataMigrationDialog.xib +++ b/Interfaces/English.lproj/DataMigrationDialog.xib @@ -574,8 +574,8 @@ - 290 - {{88, 24}, {199, 14}} + 294 + {{88, 24}, {105, 14}} YES @@ -991,7 +991,7 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA MC45Mjk0MTE4Mjg1IDAuOTI5NDExODI4NSAwLjkyOTQxMTgyODUAA - {1, -1} + {4, 4} 0 6 @@ -1152,6 +1152,26 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA + + + 289 + {{192, 14}, {82, 32}} + + YES + + 67239424 + 134217728 + Go Back + + + -2038284033 + 134217857 + + + 200 + 25 + + {465, 405} @@ -1360,6 +1380,14 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA 156 + + + goBackToFileChooser: + + + + 159 + @@ -1420,6 +1448,7 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA + @@ -1891,6 +1920,20 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA + + 157 + + + YES + + + + + + 158 + + + @@ -1937,6 +1980,9 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA 15.IBAttributePlaceholdersKey 15.IBPluginDependency 15.ImportedFromIB2 + 157.IBAttributePlaceholdersKey + 157.IBPluginDependency + 158.IBPluginDependency 16.IBAttributePlaceholdersKey 16.IBPluginDependency 16.ImportedFromIB2 @@ -2052,6 +2098,16 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA com.apple.InterfaceBuilder.CocoaPlugin + + ToolTip + + ToolTip + + Go back to file chooser (⌥←) + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin ToolTip @@ -2163,7 +2219,7 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA - 156 + 159 @@ -2205,6 +2261,7 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA changeImportMethod: changeTableTarget: closeSheet: + goBackToFileChooser: stepRow: @@ -2216,6 +2273,7 @@ cyAKCQluZXcgcm93cyBSRVBMQUNFIElOVE8g4oCmA id id id + id 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]; -- cgit v1.2.3