aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-02-17 10:40:21 +0000
committerBibiko <bibiko@eva.mpg.de>2010-02-17 10:40:21 +0000
commitdc01911fd5987bb4a3213b2c6637326d9dd8c94d (patch)
tree47107a0f02a5320701e48e64ed684761b43c143d /Source
parent72c4522db57b9699e1dc324f62dbeb036405f2c6 (diff)
downloadsequelpro-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.h1
-rw-r--r--Source/SPFieldMapperController.m23
-rw-r--r--Source/TableDump.h1
-rw-r--r--Source/TableDump.m14
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];