aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Interfaces/English.lproj/DataMigrationDialog.xib559
-rw-r--r--Source/SPDataImport.m22
-rw-r--r--Source/SPFieldMapperController.h5
-rw-r--r--Source/SPFieldMapperController.m273
4 files changed, 787 insertions, 72 deletions
diff --git a/Interfaces/English.lproj/DataMigrationDialog.xib b/Interfaces/English.lproj/DataMigrationDialog.xib
index 668120a0..9306af15 100644
--- a/Interfaces/English.lproj/DataMigrationDialog.xib
+++ b/Interfaces/English.lproj/DataMigrationDialog.xib
@@ -12,7 +12,7 @@
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="12"/>
+ <integer value="144"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -393,6 +393,7 @@
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
+ <bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="678921094"/>
</object>
<object class="NSTableColumn" id="221439252">
@@ -409,7 +410,7 @@
<reference key="NSTextColor" ref="186205954"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="950341880">
- <int key="NSCellFlags">67239488</int>
+ <int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">272761856</int>
<string key="NSContents">Text</string>
<reference key="NSSupport" ref="219022499"/>
@@ -1389,6 +1390,44 @@
<int key="NSPeriodicInterval">75</int>
</object>
</object>
+ <object class="NSTextField" id="806234307">
+ <reference key="NSNextResponder" ref="78582513"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{375, 280}, {129, 19}}</string>
+ <reference key="NSSuperview" ref="78582513"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="752604777">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">272761856</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="806234307"/>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="105487286"/>
+ <object class="NSColor" key="NSTextColor">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textColor</string>
+ <reference key="NSColor" ref="938074100"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="426092195">
+ <reference key="NSNextResponder" ref="78582513"/>
+ <int key="NSvFlags">265</int>
+ <string key="NSFrame">{{290, 283}, {80, 14}}</string>
+ <reference key="NSSuperview" ref="78582513"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="696977787">
+ <int key="NSCellFlags">68288064</int>
+ <int key="NSCellFlags2">71435264</int>
+ <string key="NSContents">Name:</string>
+ <reference key="NSSupport" ref="26"/>
+ <reference key="NSControlView" ref="426092195"/>
+ <reference key="NSBackgroundColor" ref="19028295"/>
+ <reference key="NSTextColor" ref="263116164"/>
+ </object>
+ </object>
</object>
<string key="NSFrameSize">{522, 348}</string>
<reference key="NSSuperview"/>
@@ -2300,6 +2339,30 @@
</object>
<int key="connectionID">399</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">newTableNameTextField</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="806234307"/>
+ </object>
+ <int key="connectionID">407</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">newTableNameLabel</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="426092195"/>
+ </object>
+ <int key="connectionID">408</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="806234307"/>
+ <reference key="destination" ref="1001"/>
+ </object>
+ <int key="connectionID">409</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -2364,6 +2427,8 @@
<reference ref="892658687"/>
<reference ref="219742831"/>
<reference ref="317672858"/>
+ <reference ref="806234307"/>
+ <reference ref="426092195"/>
</object>
<reference key="parent" ref="420604405"/>
</object>
@@ -3229,6 +3294,34 @@
<reference key="object" ref="536255044"/>
<reference key="parent" ref="221711496"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">403</int>
+ <reference key="object" ref="806234307"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="752604777"/>
+ </object>
+ <reference key="parent" ref="78582513"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">404</int>
+ <reference key="object" ref="752604777"/>
+ <reference key="parent" ref="806234307"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">405</int>
+ <reference key="object" ref="426092195"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="696977787"/>
+ </object>
+ <reference key="parent" ref="78582513"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">406</int>
+ <reference key="object" ref="696977787"/>
+ <reference key="parent" ref="426092195"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
@@ -3373,6 +3466,10 @@
<string>40.IBPluginDependency</string>
<string>400.IBPluginDependency</string>
<string>402.IBPluginDependency</string>
+ <string>403.IBPluginDependency</string>
+ <string>404.IBPluginDependency</string>
+ <string>405.IBPluginDependency</string>
+ <string>406.IBPluginDependency</string>
<string>41.IBPluginDependency</string>
<string>42.IBPluginDependency</string>
<string>42.ImportedFromIB2</string>
@@ -3404,9 +3501,9 @@
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{51, 107}, {522, 348}}</string>
+ <string>{{827, 351}, {522, 348}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{51, 107}, {522, 348}}</string>
+ <string>{{827, 351}, {522, 348}}</string>
<integer value="1"/>
<string>{{387, 725}, {432, 282}}</string>
<boolean value="NO"/>
@@ -3602,7 +3699,7 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string>{{611, 880}, {113, 4}}</string>
+ <string>{{1106, 645}, {215, 6}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -3630,6 +3727,10 @@
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<integer value="1"/>
@@ -3673,7 +3774,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">402</int>
+ <int key="maxID">409</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -4328,6 +4429,452 @@
</object>
</object>
</object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">SPFieldMapperController</string>
+ <string key="superclassName">NSWindowController</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addGlobalSourceVariable:</string>
+ <string>addGlobalValue:</string>
+ <string>advancedCheckboxValidation:</string>
+ <string>changeFieldAlignment:</string>
+ <string>changeHasHeaderCheckbox:</string>
+ <string>changeImportMethod:</string>
+ <string>changeTableTarget:</string>
+ <string>closeGlobalValuesSheet:</string>
+ <string>closeSheet:</string>
+ <string>goBackToFileChooser:</string>
+ <string>insertNULLValue:</string>
+ <string>openAdvancedSheet:</string>
+ <string>removeGlobalValue:</string>
+ <string>stepRow:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addGlobalSourceVariable:</string>
+ <string>addGlobalValue:</string>
+ <string>advancedCheckboxValidation:</string>
+ <string>changeFieldAlignment:</string>
+ <string>changeHasHeaderCheckbox:</string>
+ <string>changeImportMethod:</string>
+ <string>changeTableTarget:</string>
+ <string>closeGlobalValuesSheet:</string>
+ <string>closeSheet:</string>
+ <string>goBackToFileChooser:</string>
+ <string>insertNULLValue:</string>
+ <string>openAdvancedSheet:</string>
+ <string>removeGlobalValue:</string>
+ <string>stepRow:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">addGlobalSourceVariable:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">addGlobalValue:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">advancedCheckboxValidation:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeFieldAlignment:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeHasHeaderCheckbox:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeImportMethod:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeTableTarget:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">closeGlobalValuesSheet:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">closeSheet:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">goBackToFileChooser:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">insertNULLValue:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">openAdvancedSheet:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">removeGlobalValue:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">stepRow:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addGlobalValueButton</string>
+ <string>addRemainingDataSwitch</string>
+ <string>advancedBox</string>
+ <string>advancedButton</string>
+ <string>advancedInsertView</string>
+ <string>advancedLabel</string>
+ <string>advancedReplaceView</string>
+ <string>advancedUpdateView</string>
+ <string>alignByPopup</string>
+ <string>alignByPopupLabel</string>
+ <string>customQueryInstance</string>
+ <string>delayedCheckBox</string>
+ <string>delayedReplaceCheckBox</string>
+ <string>fieldMapperTableScrollView</string>
+ <string>fieldMapperTableView</string>
+ <string>fieldMappingImportArray</string>
+ <string>fileSourcePath</string>
+ <string>globalValuesSheet</string>
+ <string>globalValuesTableView</string>
+ <string>highPriorityCheckBox</string>
+ <string>ignoreCheckBox</string>
+ <string>ignoreUpdateCheckBox</string>
+ <string>importButton</string>
+ <string>importFieldNamesHeaderSwitch</string>
+ <string>importMethodLabel</string>
+ <string>importMethodPopup</string>
+ <string>insertNULLValueButton</string>
+ <string>lowPriorityCheckBox</string>
+ <string>lowPriorityReplaceCheckBox</string>
+ <string>lowPriorityUpdateCheckBox</string>
+ <string>matchingNameMenuItem</string>
+ <string>newTableNameLabel</string>
+ <string>newTableNameTextField</string>
+ <string>onupdateCheckBox</string>
+ <string>onupdateTextView</string>
+ <string>recordCountLabel</string>
+ <string>removeGlobalValueButton</string>
+ <string>replaceAfterSavingCheckBox</string>
+ <string>rowDownButton</string>
+ <string>rowUpButton</string>
+ <string>skipexistingRowsCheckBox</string>
+ <string>tableTargetPopup</string>
+ <string>theDelegate</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>NSButton</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSPopUpButton</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSTableView</string>
+ <string>id</string>
+ <string>NSPathControl</string>
+ <string>id</string>
+ <string>NSTableView</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSPopUpButton</string>
+ <string>NSButton</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSMenuItem</string>
+ <string>NSTextField</string>
+ <string>NSTextField</string>
+ <string>id</string>
+ <string>SPTextView</string>
+ <string>id</string>
+ <string>NSButton</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSPopUpButton</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addGlobalValueButton</string>
+ <string>addRemainingDataSwitch</string>
+ <string>advancedBox</string>
+ <string>advancedButton</string>
+ <string>advancedInsertView</string>
+ <string>advancedLabel</string>
+ <string>advancedReplaceView</string>
+ <string>advancedUpdateView</string>
+ <string>alignByPopup</string>
+ <string>alignByPopupLabel</string>
+ <string>customQueryInstance</string>
+ <string>delayedCheckBox</string>
+ <string>delayedReplaceCheckBox</string>
+ <string>fieldMapperTableScrollView</string>
+ <string>fieldMapperTableView</string>
+ <string>fieldMappingImportArray</string>
+ <string>fileSourcePath</string>
+ <string>globalValuesSheet</string>
+ <string>globalValuesTableView</string>
+ <string>highPriorityCheckBox</string>
+ <string>ignoreCheckBox</string>
+ <string>ignoreUpdateCheckBox</string>
+ <string>importButton</string>
+ <string>importFieldNamesHeaderSwitch</string>
+ <string>importMethodLabel</string>
+ <string>importMethodPopup</string>
+ <string>insertNULLValueButton</string>
+ <string>lowPriorityCheckBox</string>
+ <string>lowPriorityReplaceCheckBox</string>
+ <string>lowPriorityUpdateCheckBox</string>
+ <string>matchingNameMenuItem</string>
+ <string>newTableNameLabel</string>
+ <string>newTableNameTextField</string>
+ <string>onupdateCheckBox</string>
+ <string>onupdateTextView</string>
+ <string>recordCountLabel</string>
+ <string>removeGlobalValueButton</string>
+ <string>replaceAfterSavingCheckBox</string>
+ <string>rowDownButton</string>
+ <string>rowUpButton</string>
+ <string>skipexistingRowsCheckBox</string>
+ <string>tableTargetPopup</string>
+ <string>theDelegate</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">addGlobalValueButton</string>
+ <string key="candidateClassName">NSButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">addRemainingDataSwitch</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedButton</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedInsertView</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedReplaceView</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">advancedUpdateView</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">alignByPopup</string>
+ <string key="candidateClassName">NSPopUpButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">alignByPopupLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">customQueryInstance</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">delayedCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">delayedReplaceCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">fieldMapperTableScrollView</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">fieldMapperTableView</string>
+ <string key="candidateClassName">NSTableView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">fieldMappingImportArray</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">fileSourcePath</string>
+ <string key="candidateClassName">NSPathControl</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">globalValuesSheet</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">globalValuesTableView</string>
+ <string key="candidateClassName">NSTableView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">highPriorityCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">ignoreCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">ignoreUpdateCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">importButton</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">importFieldNamesHeaderSwitch</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">importMethodLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">importMethodPopup</string>
+ <string key="candidateClassName">NSPopUpButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">insertNULLValueButton</string>
+ <string key="candidateClassName">NSButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">lowPriorityCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">lowPriorityReplaceCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">lowPriorityUpdateCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">matchingNameMenuItem</string>
+ <string key="candidateClassName">NSMenuItem</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">newTableNameLabel</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">newTableNameTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">onupdateCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">onupdateTextView</string>
+ <string key="candidateClassName">SPTextView</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">recordCountLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">removeGlobalValueButton</string>
+ <string key="candidateClassName">NSButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">replaceAfterSavingCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">rowDownButton</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">rowUpButton</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">skipexistingRowsCheckBox</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">tableTargetPopup</string>
+ <string key="candidateClassName">NSPopUpButton</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">theDelegate</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBDocumentRelativeSource</string>
+ <string key="minorKey">../../Source/SPFieldMapperController.h</string>
+ </object>
+ </object>
+ </object>
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
diff --git a/Source/SPDataImport.m b/Source/SPDataImport.m
index 98129f19..c9b5664b 100644
--- a/Source/SPDataImport.m
+++ b/Source/SPDataImport.m
@@ -1123,17 +1123,17 @@
fieldMappingImportArrayIsPreview = dataIsPreviewData;
// If there's no tables to select, error
- if (![[tablesListInstance allTableNames] count]) {
- [self closeAndStopProgressSheet];
- SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"),
- NSLocalizedString(@"OK", @"OK button"),
- nil, nil,
- [tableDocumentInstance parentWindow], self,
- nil, nil,
- NSLocalizedString(@"Can't import CSV data into a database without any tables!", @"error text when trying to import csv data, but we have no tables in the db")
- );
- return FALSE;
- }
+ // if (![[tablesListInstance allTableNames] count]) {
+ // [self closeAndStopProgressSheet];
+ // SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"),
+ // NSLocalizedString(@"OK", @"OK button"),
+ // nil, nil,
+ // [tableDocumentInstance parentWindow], self,
+ // nil, nil,
+ // NSLocalizedString(@"Can't import CSV data into a database without any tables!", @"error text when trying to import csv data, but we have no tables in the db")
+ // );
+ // return FALSE;
+ // }
// Set the import array
if (fieldMappingImportArray) [fieldMappingImportArray release];
diff --git a/Source/SPFieldMapperController.h b/Source/SPFieldMapperController.h
index 266986f4..15efd595 100644
--- a/Source/SPFieldMapperController.h
+++ b/Source/SPFieldMapperController.h
@@ -48,6 +48,9 @@
IBOutlet id advancedLabel;
IBOutlet NSMenuItem *matchingNameMenuItem;
+ IBOutlet NSTextField *newTableNameTextField;
+ IBOutlet NSTextField *newTableNameLabel;
+
IBOutlet id globalValuesSheet;
IBOutlet NSButton *addGlobalValueButton;
IBOutlet NSButton *removeGlobalValueButton;
@@ -75,6 +78,7 @@
id theDelegate;
id customQueryInstance;
id fieldMappingImportArray;
+ id tablesListInstance;
NSInteger fieldMappingCurrentRow;
NSMutableArray *fieldMappingArray;
@@ -100,6 +104,7 @@
BOOL importFieldNamesHeader;
BOOL showAdvancedView;
BOOL targetTableHasPrimaryKey;
+ BOOL newTableMode;
NSString *primaryKeyField;
NSNumber *lastDisabledCSVFieldcolumn;
diff --git a/Source/SPFieldMapperController.m b/Source/SPFieldMapperController.m
index 14a9b7f1..1018ff4e 100644
--- a/Source/SPFieldMapperController.m
+++ b/Source/SPFieldMapperController.m
@@ -53,6 +53,7 @@
return nil;
}
theDelegate = managerDelegate;
+
fieldMappingTableColumnNames = [[NSMutableArray alloc] init];
fieldMappingTableDefaultValues = [[NSMutableArray alloc] init];
fieldMappingTableTypes = [[NSMutableArray alloc] init];
@@ -71,10 +72,14 @@
doImportString = @"―";
doNotImportString = @" ";
isEqualString = @"=";
+ newTableMode = NO;
prefs = [NSUserDefaults standardUserDefaults];
+
+ tablesListInstance = [theDelegate valueForKeyPath:@"tablesListInstance"];
+
}
-
+
return self;
}
@@ -95,22 +100,33 @@
windowMinWidth = [[self window] minSize].width;
windowMinHeigth = [[self window] minSize].height;
+ [newTableNameTextField setHidden:YES];
+ [newTableNameLabel setHidden:YES];
+
// Init table target popup menu
[tableTargetPopup removeAllItems];
- if([[theDelegate valueForKeyPath:@"tablesListInstance"] allTableNames]) {
- [tableTargetPopup addItemsWithTitles:[[theDelegate valueForKeyPath:@"tablesListInstance"] allTableNames]];
- [[tableTargetPopup menu] addItem:[NSMenuItem separatorItem]];
- [tableTargetPopup addItemWithTitle:NSLocalizedString(@"Refresh List", @"refresh list menu item")];
-
- // 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]];
+ [tableTargetPopup addItemWithTitle:NSLocalizedString(@"New Table", @"new table menu item")];
+ [tableTargetPopup addItemWithTitle:NSLocalizedString(@"Refresh List", @"refresh list menu item")];
+ [[tableTargetPopup menu] addItem:[NSMenuItem separatorItem]];
+ NSArray *allTableNames = [tablesListInstance allTableNames];
+ if(allTableNames) {
+ [tableTargetPopup addItemsWithTitles:allTableNames];
+
+ // Select either the currently selected table, or the first item in the list, or if no table in db switch to "New Table" mode
+ if ([[theDelegate valueForKeyPath:@"tableDocumentInstance"] table] != nil
+ && ![[tablesListInstance tableName] isEqualToString:@""]
+ && [allTableNames containsObject:[tablesListInstance tableName]]) {
+ [tableTargetPopup selectItemWithTitle:[tablesListInstance tableName]];
} else {
- [tableTargetPopup selectItemAtIndex:0];
+ if([allTableNames count])
+ [tableTargetPopup selectItemAtIndex:3];
+ else
+ [tableTargetPopup selectItemAtIndex:0];
+ [newTableNameTextField selectText:nil];
}
}
-
+
[importFieldNamesHeaderSwitch setState:importFieldNamesHeader];
[addRemainingDataSwitch setState:NO];
@@ -266,7 +282,7 @@
- (NSString*)importHeaderString
{
if([[importMethodPopup titleOfSelectedItem] isEqualToString:@"INSERT"]) {
- return [NSString stringWithFormat:@"INSERT %@%@%@%@INTO ",
+ return [NSString stringWithFormat:@"INSERT %@%@%@%@INTO ",
([lowPriorityCheckBox state] == NSOnState) ? @"LOW_PRIORITY " : @"",
([delayedCheckBox state] == NSOnState) ? @"DELAYED " : @"",
([highPriorityCheckBox state] == NSOnState) ? @"HIGH_PRIORITY " : @"",
@@ -274,13 +290,13 @@
];
}
else if([[importMethodPopup titleOfSelectedItem] isEqualToString:@"REPLACE"]) {
- return [NSString stringWithFormat:@"REPLACE %@%@INTO ",
+ return [NSString stringWithFormat:@"REPLACE %@%@INTO ",
([lowPriorityReplaceCheckBox state] == NSOnState) ? @"LOW_PRIORITY " : @"",
([delayedReplaceCheckBox state] == NSOnState) ? @"DELAYED " : @""
];
}
else if([[importMethodPopup titleOfSelectedItem] isEqualToString:@"UPDATE"]) {
- return [NSString stringWithFormat:@"UPDATE %@%@%@ SET ",
+ return [NSString stringWithFormat:@"UPDATE %@%@%@ SET ",
([lowPriorityUpdateCheckBox state] == NSOnState) ? @"LOW_PRIORITY " : @"",
([ignoreUpdateCheckBox state] == NSOnState) ? @"IGNORE " : @"",
[[self selectedTableTarget] backtickQuotedString]
@@ -313,19 +329,86 @@
- (IBAction)changeTableTarget:(id)sender
{
+ NSArray *allTableNames = [tablesListInstance allTableNames];
+ NSInteger i;
+
// Is Refresh List chosen?
- if([tableTargetPopup selectedItem] == [tableTargetPopup lastItem]) {
+ if([tableTargetPopup selectedItem] == [tableTargetPopup itemAtIndex:1]) {
[tableTargetPopup removeAllItems];
+ [tableTargetPopup addItemWithTitle:NSLocalizedString(@"New Table", @"new table menu item")];
+ [tableTargetPopup addItemWithTitle:NSLocalizedString(@"Refresh List", @"refresh list menu item")];
+ [[tableTargetPopup menu] addItem:[NSMenuItem separatorItem]];
+
// Update tables list
- [[theDelegate valueForKeyPath:@"tablesListInstance"] updateTables:nil];
- if([[theDelegate valueForKeyPath:@"tablesListInstance"] allTableNames]) {
- [tableTargetPopup addItemsWithTitles:[[theDelegate valueForKeyPath:@"tablesListInstance"] allTableNames]];
- [[tableTargetPopup menu] addItem:[NSMenuItem separatorItem]];
- [tableTargetPopup addItemWithTitle:NSLocalizedString(@"Refresh List", @"refresh list menu item")];
+ [tablesListInstance updateTables:nil];
+ if(allTableNames) {
+ [tableTargetPopup addItemsWithTitles:allTableNames];
}
+
+ // Select either the currently selected table, or the first item in the list, or if no table in db switch to "New Table" mode
+ if ([[theDelegate valueForKeyPath:@"tableDocumentInstance"] table] != nil
+ && ![[tablesListInstance tableName] isEqualToString:@""]
+ && [allTableNames containsObject:[tablesListInstance tableName]]) {
+ [tableTargetPopup selectItemWithTitle:[tablesListInstance tableName]];
+ } else {
+ if([allTableNames count])
+ [tableTargetPopup selectItemAtIndex:3];
+ else
+ [tableTargetPopup selectItemAtIndex:0];
+ }
+
+ return;
+
}
- NSInteger i;
+ // New Table was chosen
+ else if([tableTargetPopup selectedItem] == [tableTargetPopup itemAtIndex:0]) {
+
+ newTableMode = YES;
+
+ [tableTargetPopup setHidden:YES];
+ [newTableNameTextField setHidden:NO];
+ [newTableNameLabel setHidden:NO];
+ [newTableNameTextField selectText:nil];
+ [fieldMappingTableColumnNames removeAllObjects];
+ [fieldMappingTableDefaultValues removeAllObjects];
+ [fieldMappingTableTypes removeAllObjects];
+ if([importFieldNamesHeaderSwitch state] == NSOnState) {
+ for(id h in NSArrayObjectAtIndex(fieldMappingImportArray, 0)) {
+ [fieldMappingTableColumnNames addObject:h];
+ [fieldMappingTableDefaultValues addObject:@""];
+ [fieldMappingTableTypes addObject:@"varchar(255)"];
+ }
+ } else {
+ i = 0;
+ for(id h in NSArrayObjectAtIndex(fieldMappingImportArray, 0)) {
+ [fieldMappingTableColumnNames addObject:[NSString stringWithFormat:@"col_%ld", i++]];
+ [fieldMappingTableDefaultValues addObject:@""];
+ [fieldMappingTableTypes addObject:@"varchar(255)"];
+ }
+ }
+
+ // Update the table view
+ NSInteger i;
+ fieldMappingCurrentRow = 0;
+ if (fieldMappingArray) [fieldMappingArray release], fieldMappingArray = nil;
+ [self setupFieldMappingArray];
+ [rowDownButton setEnabled:NO];
+ [rowUpButton setEnabled:([fieldMappingImportArray count] > 1)];
+ [recordCountLabel setStringValue:[NSString stringWithFormat:@"%ld of %@%lu records", (long)(fieldMappingCurrentRow+1), fieldMappingImportArrayIsPreview?@"first ":@"", (unsigned long)[fieldMappingImportArray count]]];
+
+ [self updateFieldMappingButtonCell];
+ [self updateFieldMappingOperatorOptions];
+
+ // Set all operators to doNotImport
+ [fieldMappingOperatorArray removeAllObjects];
+ for(i=0; i < [fieldMappingTableColumnNames count]; i++)
+ [fieldMappingOperatorArray addObject:doImport];
+
+ [fieldMapperTableView reloadData];
+ [self validateImportButton];
+ return;
+ }
// Remove all the current columns
[fieldMappingTableColumnNames removeAllObjects];
@@ -338,7 +421,7 @@
NSDictionary *tableDetails = [selectedTableData informationForTable:[tableTargetPopup titleOfSelectedItem]];
targetTableHasPrimaryKey = NO;
BOOL isReplacePossible = NO;
- // NSLog(@"d %@", tableDetails);
+
if (tableDetails) {
for (NSDictionary *column in [tableDetails objectForKey:@"columns"]) {
[fieldMappingTableColumnNames addObject:[NSString stringWithString:[column objectForKey:@"name"]]];
@@ -531,11 +614,11 @@
fieldMappingCurrentRow++;
}
[self updateFieldMappingButtonCell];
-
+
[fieldMapperTableView reloadData];
-
+
[recordCountLabel setStringValue:[NSString stringWithFormat:NSLocalizedString(@"%ld of %@%lu records", @"%ld of %@%lu records"), (long)(fieldMappingCurrentRow+1), fieldMappingImportArrayIsPreview?@"first ":@"", (unsigned long)[fieldMappingImportArray count]]];
-
+
// enable/disable buttons
[rowDownButton setEnabled:(fieldMappingCurrentRow != 0)];
[rowUpButton setEnabled:(fieldMappingCurrentRow != ([fieldMappingImportArray count]-1))];
@@ -544,6 +627,22 @@
- (IBAction)changeHasHeaderCheckbox:(id)sender
{
[matchingNameMenuItem setEnabled:([importFieldNamesHeaderSwitch state] == NSOnState)?YES:NO];
+
+ // In New Table mode reset new field name according to importFieldNamesHeaderSwitch's state
+ if(newTableMode) {
+ [fieldMappingTableColumnNames removeAllObjects];
+ if([importFieldNamesHeaderSwitch state] == NSOnState) {
+ for(id h in NSArrayObjectAtIndex(fieldMappingImportArray, 0)) {
+ [fieldMappingTableColumnNames addObject:h];
+ }
+ } else {
+ NSInteger i = 0;
+ for(id h in NSArrayObjectAtIndex(fieldMappingImportArray, 0)) {
+ [fieldMappingTableColumnNames addObject:[NSString stringWithFormat:@"col_%ld", i++]];
+ }
+ }
+ [fieldMapperTableView reloadData];
+ }
}
- (IBAction)goBackToFileChooser:(id)sender
@@ -561,9 +660,9 @@
- (IBAction)addGlobalSourceVariable:(id)sender
{
- [NSApp beginSheet:globalValuesSheet
- modalForWindow:[self window]
- modalDelegate:self
+ [NSApp beginSheet:globalValuesSheet
+ modalForWindow:[self window]
+ modalDelegate:self
didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:nil];
[self addGlobalValue:nil];
}
@@ -616,7 +715,7 @@
// Ensure all changes are stored before ordering out
[globalValuesTableView validateEditing];
- if ([globalValuesTableView numberOfSelectedRows] == 1)
+ if ([globalValuesTableView numberOfSelectedRows] == 1)
[globalValuesSheet makeFirstResponder:globalValuesTableView];
// Replace the current map pair with the last selected global value
@@ -668,7 +767,7 @@
[lowPriorityReplaceCheckBox setState:NO];
return;
}
- if(sender == skipexistingRowsCheckBox) {
+ if(sender == skipexistingRowsCheckBox) {
if([skipexistingRowsCheckBox state] == NSOnState) {
[delayedCheckBox setState:NO];
[delayedCheckBox setEnabled:NO];
@@ -713,7 +812,7 @@
[onupdateCheckBox setEnabled:YES];
}
}
-
+
if(sender == onupdateCheckBox && [onupdateCheckBox state] == NSOnState) {
[onupdateTextView setBackgroundColor:[NSColor whiteColor]];
[onupdateTextView setEditable:YES];
@@ -840,13 +939,13 @@
if (!fieldMappingArray) {
fieldMappingArray = [[NSMutableArray alloc] init];
for (i = 0; i < [fieldMappingTableColumnNames count]; i++) {
- if (i < [NSArrayObjectAtIndex(fieldMappingImportArray, fieldMappingCurrentRow) count]
+ if (i < [NSArrayObjectAtIndex(fieldMappingImportArray, fieldMappingCurrentRow) count]
&& ![NSArrayObjectAtIndex(NSArrayObjectAtIndex(fieldMappingImportArray, fieldMappingCurrentRow), i) isKindOfClass:[NSNull class]]) {
value = i;
} else {
value = 0;
}
-
+
[fieldMappingArray addObject:[NSNumber numberWithInteger:value]];
}
}
@@ -881,7 +980,7 @@
}
[fieldMapperTableView reloadData];
-
+
}
/*
@@ -925,6 +1024,17 @@
- (void)validateImportButton
{
BOOL enableImportButton = YES;
+
+ if(newTableMode) {
+ [importButton setTitle:@"Not Yet"];
+ [importButton setEnabled:NO];
+ return;
+ if(![tablesListInstance isTableNameValid:[newTableNameTextField stringValue] forType:SPTableTypeTable ignoringSelectedTable:NO]) {
+ [importButton setEnabled:NO];
+ return;
+ }
+ }
+
if([[self selectedImportMethod] isEqualToString:@"UPDATE"]) {
enableImportButton = NO;
for(id op in fieldMappingOperatorArray) {
@@ -934,7 +1044,9 @@
}
}
}
+
[importButton setEnabled:enableImportButton];
+
}
#pragma mark -
@@ -958,7 +1070,7 @@
if(aTableView == fieldMapperTableView) {
// A click at the operator column's header toggle all operators
- if ([[aTableColumn identifier] isEqualToString:@"operator"]
+ if ([[aTableColumn identifier] isEqualToString:@"operator"]
&& [self numberOfRowsInTableView:aTableView]
&& [fieldMappingOperatorArray count]
&& [fieldMappingTableColumnNames count]) {
@@ -971,7 +1083,7 @@
[fieldMappingOperatorArray addObject:globalValue];
[self validateImportButton];
[fieldMapperTableView reloadData];
- }
+ }
}
}
@@ -988,7 +1100,7 @@
return [NSString stringWithFormat:@"%@: %@", NSLocalizedString(@"Global value", @"global value"), NSArrayObjectAtIndex(fieldMappingGlobalValues, [NSArrayObjectAtIndex(fieldMappingArray, rowIndex) integerValue])];
if(fieldMappingCurrentRow)
- return [NSString stringWithFormat:@"%@: %@",
+ return [NSString stringWithFormat:@"%@: %@",
[NSArrayObjectAtIndex(NSArrayObjectAtIndex(fieldMappingImportArray, 0), [NSArrayObjectAtIndex(fieldMappingArray, rowIndex) integerValue]) description],
[NSArrayObjectAtIndex(NSArrayObjectAtIndex(fieldMappingImportArray, fieldMappingCurrentRow), [NSArrayObjectAtIndex(fieldMappingArray, rowIndex) integerValue]) description]];
else
@@ -1025,26 +1137,42 @@
if(aTableView == fieldMapperTableView) {
if ([[aTableColumn identifier] isEqualToString:@"target_field"]) {
- if ([[aTableColumn dataCell] isKindOfClass:[NSPopUpButtonCell class]]) {
- [(NSPopUpButton *)[aTableColumn dataCell] removeAllItems];
- [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemWithTitle:[fieldMappingTableColumnNames objectAtIndex:rowIndex]];
+ if(newTableMode) {
+ NSTextFieldCell *b = [[[NSTextFieldCell alloc] initTextCell:[fieldMappingTableColumnNames objectAtIndex:rowIndex]] autorelease];
+ [b setEditable:YES];
+ [b setFont:[NSFont systemFontOfSize:12]];
+ [aTableColumn setDataCell:b];
+ return b;
+ } else {
+ if ([[aTableColumn dataCell] isKindOfClass:[NSPopUpButtonCell class]]) {
+ [(NSPopUpButton *)[aTableColumn dataCell] removeAllItems];
+ [(NSPopUpButtonCell *)[aTableColumn dataCell] addItemWithTitle:[fieldMappingTableColumnNames objectAtIndex:rowIndex]];
+ }
+ return [fieldMappingTableColumnNames objectAtIndex:rowIndex];
}
- return [fieldMappingTableColumnNames objectAtIndex:rowIndex];
}
else if ([[aTableColumn identifier] isEqualToString:@"type"]) {
- NSTokenFieldCell *b = [[[NSTokenFieldCell alloc] initTextCell:[fieldMappingTableTypes objectAtIndex:rowIndex]] autorelease];
- [b setEditable:NO];
- [b setAlignment:NSLeftTextAlignment];
- [b setWraps:NO];
- [b setFont:[NSFont systemFontOfSize:9]];
- [b setDelegate:self];
- return b;
+ if(newTableMode) {
+ NSTextFieldCell *b = [[[NSTextFieldCell alloc] initTextCell:[fieldMappingTableTypes objectAtIndex:rowIndex]] autorelease];
+ [b setEditable:YES];
+ [b setFont:[NSFont systemFontOfSize:12]];
+ [aTableColumn setDataCell:b];
+ return b;
+ } else {
+ NSTokenFieldCell *b = [[[NSTokenFieldCell alloc] initTextCell:[fieldMappingTableTypes objectAtIndex:rowIndex]] autorelease];
+ [b setEditable:NO];
+ [b setAlignment:NSLeftTextAlignment];
+ [b setWraps:NO];
+ [b setFont:[NSFont systemFontOfSize:9]];
+ [b setDelegate:self];
+ return b;
+ }
}
else if ([[aTableColumn identifier] isEqualToString:@"import_value"]) {
if ([[aTableColumn dataCell] isKindOfClass:[NSPopUpButtonCell class]]) {
- NSPopUpButtonCell *c = [aTableColumn dataCell];
+ NSPopUpButtonCell *c = [aTableColumn dataCell];
NSMenu *m = [c menu];
[m setAutoenablesItems:NO];
[c removeAllItems];
@@ -1068,7 +1196,7 @@
return [NSNumber numberWithInteger:[c numberOfItems]-1];
}
- }
+ }
else if ([[aTableColumn identifier] isEqualToString:@"operator"]) {
if ([[aTableColumn dataCell] isKindOfClass:[NSPopUpButtonCell class]]) {
@@ -1076,10 +1204,10 @@
[(NSPopUpButtonCell *)[aTableColumn dataCell] addItemsWithTitles:fieldMappingOperatorOptions];
}
return [fieldMappingOperatorArray objectAtIndex:rowIndex];
- }
+ }
}
-
-
+
+
else if(aTableView == globalValuesTableView) {
if ([[aTableColumn identifier] isEqualToString:@"value_index"]) {
return [NSString stringWithFormat:@"%ld.", numberOfImportColumns + rowIndex + 1];
@@ -1093,11 +1221,20 @@
return [fieldMappingGlobalValuesSQLMarked objectAtIndex:numberOfImportColumns + rowIndex];
}
-
-
+
+
return nil;
}
+- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
+{
+
+ if(!newTableMode) return NO;
+
+ return YES;
+
+}
+
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
@@ -1156,6 +1293,18 @@
}
+ else if (newTableMode && [[aTableColumn identifier] isEqualToString:@"target_field"]) {
+ if([(NSString*)anObject length]) {
+ [fieldMappingTableColumnNames replaceObjectAtIndex:rowIndex withObject:anObject];
+ }
+ }
+
+ else if (newTableMode && [[aTableColumn identifier] isEqualToString:@"type"]) {
+ if([(NSString*)anObject length]) {
+ [fieldMappingTableTypes replaceObjectAtIndex:rowIndex withObject:anObject];
+ }
+ }
+
else if ([[aTableColumn identifier] isEqualToString:@"operator"]) {
if([fieldMappingOperatorArray objectAtIndex:rowIndex] == doNotImport) {
[fieldMappingOperatorArray replaceObjectAtIndex:rowIndex withObject:anObject];
@@ -1188,4 +1337,18 @@
}
+#pragma mark -
+#pragma mark NSTextField delegates
+
+- (void)controlTextDidChange:(NSNotification *)notification
+{
+
+ id object = [notification object];
+
+ if (object == newTableNameTextField) {
+ [self validateImportButton];
+ }
+
+}
+
@end