diff options
-rw-r--r-- | Interfaces/English.lproj/DBView.xib | 261 | ||||
-rw-r--r-- | Source/SPDatabaseDocument.h | 24 | ||||
-rw-r--r-- | Source/SPDatabaseDocument.m | 16 | ||||
-rw-r--r-- | Source/SPExtendedTableInfo.m | 1 | ||||
-rw-r--r-- | Source/SPTableRelations.h | 7 | ||||
-rw-r--r-- | Source/SPTableRelations.m | 199 |
6 files changed, 322 insertions, 186 deletions
diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib index a161dc5f..e4e83820 100644 --- a/Interfaces/English.lproj/DBView.xib +++ b/Interfaces/English.lproj/DBView.xib @@ -2,7 +2,7 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10K540</string> + <string key="IBDocument.SystemVersion">10K549</string> <string key="IBDocument.InterfaceBuilderVersion">851</string> <string key="IBDocument.AppKitVersion">1038.36</string> <string key="IBDocument.HIToolboxVersion">461.00</string> @@ -23,17 +23,13 @@ </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="7502"/> - <integer value="7610"/> - <integer value="6938"/> <integer value="7798"/> - <integer value="7727"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.brandonwalkin.BWToolkit</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.WebKitIBPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <string key="NS.key.0">PluginDependencyRecalculationVersion</string> @@ -51,7 +47,7 @@ <string key="NSClassName">NSApplication</string> </object> <object class="NSCustomView" id="632807581"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">274</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -524,7 +520,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="1001122760"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> </object> </object> <reference key="NSTextColor" ref="454249633"/> @@ -569,7 +565,6 @@ </object> <string key="NSFrame">{{1, 1}, {218, 38}}</string> <reference key="NSSuperview" ref="607475905"/> - <reference key="NSNextKeyView" ref="970881282"/> <reference key="NSDocView" ref="970881282"/> <object class="NSColor" key="NSBGColor" id="1024678221"> <int key="NSColorSpace">6</int> @@ -601,7 +596,6 @@ </object> <string key="NSFrame">{{-1, -13}, {220, 40}}</string> <reference key="NSSuperview" ref="801427893"/> - <reference key="NSNextKeyView" ref="494991824"/> <int key="NSsFlags">2</int> <reference key="NSVScroller" ref="196112633"/> <reference key="NSHScroller" ref="142487484"/> @@ -699,7 +693,6 @@ </object> <string key="NSFrameSize">{214, 352}</string> <reference key="NSSuperview" ref="233472824"/> - <reference key="NSNextKeyView" ref="251040077"/> <reference key="NSDocView" ref="251040077"/> <reference key="NSBGColor" ref="1024678221"/> <int key="NScvFlags">4</int> @@ -727,7 +720,6 @@ </object> <string key="NSFrameSize">{214, 352}</string> <reference key="NSSuperview" ref="1017775084"/> - <reference key="NSNextKeyView" ref="73685676"/> <int key="NSsFlags">528</int> <reference key="NSVScroller" ref="693168867"/> <reference key="NSHScroller" ref="656188692"/> @@ -863,7 +855,6 @@ </object> <string key="NSFrameSize">{216, 145}</string> <reference key="NSSuperview" ref="561874764"/> - <reference key="NSNextKeyView" ref="794785393"/> <reference key="NSDocView" ref="794785393"/> <reference key="NSBGColor" ref="1024678221"/> <int key="NScvFlags">6</int> @@ -890,7 +881,6 @@ </object> <string key="NSFrame">{{-1, 0}, {216, 145}}</string> <reference key="NSSuperview" ref="192579410"/> - <reference key="NSNextKeyView" ref="242523705"/> <int key="NSsFlags">528</int> <reference key="NSVScroller" ref="313695606"/> <reference key="NSHScroller" ref="464071814"/> @@ -978,7 +968,6 @@ </object> <string key="NSFrameSize">{214, 145}</string> <reference key="NSSuperview" ref="298226231"/> - <reference key="NSNextKeyView" ref="347093764"/> <reference key="NSDocView" ref="347093764"/> <reference key="NSBGColor" ref="1024678221"/> <int key="NScvFlags">6</int> @@ -1006,7 +995,6 @@ </object> <string key="NSFrameSize">{214, 145}</string> <reference key="NSSuperview" ref="192579410"/> - <reference key="NSNextKeyView" ref="685057119"/> <int key="NSsFlags">512</int> <reference key="NSVScroller" ref="245346414"/> <reference key="NSHScroller" ref="353686052"/> @@ -4761,7 +4749,6 @@ </object> <string key="NSFrame">{{1, 1}, {541, 70}}</string> <reference key="NSSuperview" ref="709531668"/> - <reference key="NSNextKeyView" ref="69074373"/> <reference key="NSDocView" ref="69074373"/> <reference key="NSBGColor" ref="449903125"/> <reference key="NSCursor" ref="32917531"/> @@ -4792,7 +4779,6 @@ </object> <string key="NSFrame">{{109, 0}, {554, 72}}</string> <reference key="NSSuperview" ref="259390764"/> - <reference key="NSNextKeyView" ref="78677381"/> <int key="NSsFlags">18</int> <reference key="NSVScroller" ref="892376800"/> <reference key="NSHScroller" ref="490174802"/> @@ -4900,7 +4886,6 @@ </object> <string key="NSFrame">{{1, 1}, {541, 197}}</string> <reference key="NSSuperview" ref="449863508"/> - <reference key="NSNextKeyView" ref="421486962"/> <reference key="NSDocView" ref="421486962"/> <reference key="NSBGColor" ref="449903125"/> <reference key="NSCursor" ref="32917531"/> @@ -4930,7 +4915,6 @@ </object> <string key="NSFrame">{{109, 0}, {554, 199}}</string> <reference key="NSSuperview" ref="983998494"/> - <reference key="NSNextKeyView" ref="637054939"/> <int key="NSsFlags">18</int> <reference key="NSVScroller" ref="633929130"/> <reference key="NSHScroller" ref="883667132"/> @@ -5299,8 +5283,8 @@ <bool key="NS.raise.underflow">YES</bool> <bool key="NS.raise.dividebyzero">YES</bool> </object> - <string key="NS.decimal">,</string> - <string key="NS.thousand">.</string> + <string key="NS.decimal">.</string> + <string key="NS.thousand">,</string> <bool key="NS.hasthousands">YES</bool> <bool key="NS.localized">YES</bool> <bool key="NS.allowsfloats">YES</bool> @@ -6509,7 +6493,6 @@ </object> </object> <string key="NSFrameSize">{943, 549}</string> - <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSWindowTemplate" id="554105051"> @@ -6695,6 +6678,7 @@ <int key="NSvFlags">256</int> <string key="NSFrame">{{104, 98}, {258, 14}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="292220806"> <int key="NSCellFlags">68288064</int> @@ -6711,6 +6695,7 @@ <int key="NSvFlags">258</int> <string key="NSFrame">{{107, 72}, {252, 18}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="322980098"> <int key="NSCellFlags">-1804468671</int> @@ -6728,6 +6713,7 @@ <int key="NSvFlags">259</int> <string key="NSFrame">{{263, 13}, {101, 28}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="261586860"> @@ -6751,6 +6737,7 @@ <int key="NSvFlags">259</int> <string key="NSFrame">{{172, 13}, {93, 28}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="1011860722"> <int key="NSCellFlags">67239424</int> @@ -6772,6 +6759,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{105, 48}, {256, 18}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="852298622"> <int key="NSCellFlags">67239424</int> @@ -6794,6 +6782,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{-3, 98}, {105, 14}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="482341094"> <int key="NSCellFlags">68288064</int> @@ -6810,6 +6799,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{-3, 74}, {105, 14}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1036205277"> <int key="NSCellFlags">68288064</int> @@ -6826,6 +6816,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{104, 120}, {258, 14}}</string> <reference key="NSSuperview" ref="351046403"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="926340181"> <int key="NSCellFlags">68288064</int> @@ -6840,6 +6831,7 @@ </object> <string key="NSFrameSize">{379, 154}</string> <reference key="NSSuperview"/> + <reference key="NSWindow"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{379, 176}</string> @@ -7281,7 +7273,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="234287744"> <nil key="NSNextResponder"/> @@ -7426,7 +7418,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="423199625"> <int key="NSWindowStyleMask">7</int> @@ -7436,7 +7428,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">Reset Auto Increment</string> <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{255, 95}</string> <object class="NSView" key="NSWindowView" id="748618982"> <nil key="NSNextResponder"/> @@ -7560,8 +7552,8 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <bool key="NS.raise.underflow">YES</bool> <bool key="NS.raise.dividebyzero">YES</bool> </object> - <string key="NS.decimal">,</string> - <string key="NS.thousand">.</string> + <string key="NS.decimal">.</string> + <string key="NS.thousand">,</string> <bool key="NS.hasthousands">NO</bool> <bool key="NS.localized">YES</bool> <bool key="NS.allowsfloats">NO</bool> @@ -7599,17 +7591,17 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> <string key="NSMinSize">{255, 117}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="787219800"> <int key="NSWindowStyleMask">1</int> <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{196, 141}, {337, 369}}</string> + <string key="NSWindowRect">{{196, 141}, {379, 369}}</string> <int key="NSWTFlags">1946157056</int> <string key="NSWindowTitle">New Relation</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="842408319"> <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -7707,11 +7699,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> </object> - <string key="NSFrame">{{1, 1}, {301, 40}}</string> + <string key="NSFrame">{{1, 1}, {343, 40}}</string> <reference key="NSSuperview" ref="536822293"/> </object> </object> - <string key="NSFrame">{{17, 231}, {303, 56}}</string> + <string key="NSFrame">{{17, 231}, {345, 56}}</string> <reference key="NSSuperview" ref="842408319"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -7776,17 +7768,17 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> </object> - <string key="NSFrame">{{1, 1}, {301, 42}}</string> + <string key="NSFrame">{{1, 1}, {343, 42}}</string> <reference key="NSSuperview" ref="432235639"/> </object> </object> - <string key="NSFrame">{{17, 291}, {303, 58}}</string> + <string key="NSFrame">{{17, 291}, {345, 58}}</string> <reference key="NSSuperview" ref="842408319"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> - <string key="NSContents">Name:</string> + <string key="NSContents">Name</string> <reference key="NSSupport" ref="26"/> <reference key="NSBackgroundColor" ref="480189472"/> <object class="NSColor" key="NSTextColor"> @@ -8021,11 +8013,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> </object> - <string key="NSFrame">{{1, 1}, {301, 71}}</string> + <string key="NSFrame">{{1, 1}, {343, 71}}</string> <reference key="NSSuperview" ref="607035293"/> </object> </object> - <string key="NSFrame">{{17, 49}, {303, 87}}</string> + <string key="NSFrame">{{17, 49}, {345, 87}}</string> <reference key="NSSuperview" ref="842408319"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -8218,11 +8210,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> </object> - <string key="NSFrame">{{1, 1}, {301, 71}}</string> + <string key="NSFrame">{{1, 1}, {343, 71}}</string> <reference key="NSSuperview" ref="951603292"/> </object> </object> - <string key="NSFrame">{{17, 140}, {303, 87}}</string> + <string key="NSFrame">{{17, 140}, {345, 87}}</string> <reference key="NSSuperview" ref="842408319"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> @@ -8245,7 +8237,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSButton" id="158114485"> <reference key="NSNextResponder" ref="842408319"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{226, 13}, {96, 28}}</string> + <string key="NSFrame">{{268, 13}, {96, 28}}</string> <reference key="NSSuperview" ref="842408319"/> <int key="NSTag">1</int> <bool key="NSEnabled">YES</bool> @@ -8266,7 +8258,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSButton" id="415754263"> <reference key="NSNextResponder" ref="842408319"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{132, 13}, {96, 28}}</string> + <string key="NSFrame">{{174, 13}, {96, 28}}</string> <reference key="NSSuperview" ref="842408319"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="721913578"> @@ -8283,12 +8275,37 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <int key="NSPeriodicInterval">25</int> </object> </object> + <object class="NSProgressIndicator" id="417129313"> + <reference key="NSNextResponder" ref="842408319"/> + <int key="NSvFlags">-2147482332</int> + <object class="NSPSMatrix" key="NSDrawMatrix"/> + <string key="NSFrame">{{20, 20}, {16, 16}}</string> + <reference key="NSSuperview" ref="842408319"/> + <int key="NSpiFlags">28938</int> + <double key="NSMaxValue">100</double> + </object> + <object class="NSTextField" id="948350361"> + <reference key="NSNextResponder" ref="842408319"/> + <int key="NSvFlags">-2147483356</int> + <string key="NSFrame">{{41, 21}, {133, 14}}</string> + <reference key="NSSuperview" ref="842408319"/> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="533703624"> + <int key="NSCellFlags">68288064</int> + <int key="NSCellFlags2">272761856</int> + <string key="NSContents">Retrieving data...</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="948350361"/> + <reference key="NSBackgroundColor" ref="62854682"/> + <reference key="NSTextColor" ref="454249633"/> + </object> + </object> </object> - <string key="NSFrameSize">{337, 369}</string> + <string key="NSFrameSize">{379, 369}</string> <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="437271354"> <int key="NSWindowStyleMask">9</int> @@ -8298,7 +8315,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">New Trigger</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{360, 348}</string> <object class="NSView" key="NSWindowView" id="729080358"> <nil key="NSNextResponder"/> @@ -8705,7 +8722,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{360, 370}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="1066802919"> <int key="NSWindowStyleMask">3</int> @@ -8717,7 +8734,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 50}</string> <object class="NSView" key="NSWindowView" id="525490268"> <nil key="NSNextResponder"/> @@ -8837,7 +8854,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMinSize">{213, 72}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="553728448"> <int key="NSWindowStyleMask">9</int> @@ -8849,7 +8866,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="1052076676"> <nil key="NSNextResponder"/> @@ -8984,7 +9001,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="828950706"> <int key="NSWindowStyleMask">15</int> @@ -8996,7 +9013,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{350, 200}</string> <object class="NSView" key="NSWindowView" id="749598685"> <nil key="NSNextResponder"/> @@ -9219,7 +9236,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{350, 222}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">SPCreateSyntaxSheet</string> </object> <object class="NSWindowTemplate" id="466147946"> @@ -9232,7 +9249,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="860968037"> <nil key="NSNextResponder"/> @@ -9402,7 +9419,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1440, 878}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSWindowTemplate" id="78186995"> <int key="NSWindowStyleMask">31</int> @@ -9412,7 +9429,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">MySQL Help</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{351, 120}</string> <object class="NSView" key="NSWindowView" id="539508428"> <nil key="NSNextResponder"/> @@ -9810,7 +9827,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 1002}}</string> <string key="NSMinSize">{351, 136}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">MYSQL_HELP_WINDOW</string> </object> <object class="NSWindowTemplate" id="633448481"> @@ -9821,10 +9838,10 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">Filter</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{380, 170}</string> <object class="NSView" key="NSWindowView" id="257361103"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">274</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -9901,7 +9918,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrame">{{1, 1}, {478, 53}}</string> <reference key="NSSuperview" ref="571404189"/> - <reference key="NSNextKeyView" ref="1256480"/> <reference key="NSDocView" ref="1256480"/> <object class="NSColor" key="NSBGColor"> <int key="NSColorSpace">4</int> @@ -9933,7 +9949,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrameSize">{480, 55}</string> <reference key="NSSuperview" ref="257361103"/> - <reference key="NSNextKeyView" ref="585936743"/> <int key="NSsFlags">65</int> <reference key="NSVScroller" ref="175346013"/> <reference key="NSHScroller" ref="750508133"/> @@ -10072,7 +10087,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrame">{{1, 17}, {480, 87}}</string> <reference key="NSSuperview" ref="332689220"/> - <reference key="NSNextKeyView" ref="233010382"/> <reference key="NSDocView" ref="233010382"/> <object class="NSColor" key="NSBGColor"> <int key="NSColorSpace">4</int> @@ -10108,7 +10122,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrame">{{1, 0}, {480, 17}}</string> <reference key="NSSuperview" ref="332689220"/> - <reference key="NSNextKeyView" ref="493190585"/> <reference key="NSDocView" ref="493190585"/> <reference key="NSBGColor" ref="1024678221"/> <int key="NScvFlags">4</int> @@ -10117,7 +10130,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrameSize">{482, 105}</string> <reference key="NSSuperview" ref="40644394"/> - <reference key="NSNextKeyView" ref="824010218"/> <int key="NSsFlags">562</int> <reference key="NSVScroller" ref="281953763"/> <reference key="NSHScroller" ref="784489290"/> @@ -10149,29 +10161,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSTextView" id="378021102"> <reference key="NSNextResponder" ref="673776733"/> <int key="NSvFlags">2322</int> - <object class="NSMutableSet" key="NSDragTypes"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="set.sortedObjects"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>Apple HTML pasteboard type</string> - <string>Apple PDF pasteboard type</string> - <string>Apple PICT pasteboard type</string> - <string>Apple PNG pasteboard type</string> - <string>Apple URL pasteboard type</string> - <string>CorePasteboardFlavorType 0x6D6F6F76</string> - <string>NSColor pasteboard type</string> - <string>NSFilenamesPboardType</string> - <string>NSStringPboardType</string> - <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> - <string>NeXT RTFD pasteboard type</string> - <string>NeXT Rich Text Format v1.0 pasteboard type</string> - <string>NeXT TIFF v4.0 pasteboard type</string> - <string>NeXT font pasteboard type</string> - <string>NeXT ruler pasteboard type</string> - <string>WebURLsWithTitlesPboardType</string> - <string>public.url</string> - </object> - </object> <string key="NSFrameSize">{480, 14}</string> <reference key="NSSuperview" ref="673776733"/> <object class="NSTextContainer" key="NSTextContainer" id="310042793"> @@ -10237,7 +10226,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrame">{{1, 1}, {480, 106}}</string> <reference key="NSSuperview" ref="81944450"/> - <reference key="NSNextKeyView" ref="378021102"/> <reference key="NSDocView" ref="378021102"/> <reference key="NSBGColor" ref="449903125"/> <reference key="NSCursor" ref="32917531"/> @@ -10267,7 +10255,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <string key="NSFrameSize">{482, 108}</string> <reference key="NSSuperview" ref="317678649"/> - <reference key="NSNextKeyView" ref="673776733"/> <int key="NSsFlags">562</int> <reference key="NSVScroller" ref="617167031"/> <reference key="NSHScroller" ref="28009727"/> @@ -10484,11 +10471,10 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <string key="NSFrameSize">{480, 269}</string> - <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> <string key="NSMinSize">{380, 192}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSFrameAutosaveName">SPTableFilterPanel</string> </object> <object class="NSWindowTemplate" id="923391973"> @@ -10502,7 +10488,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowContentMaxSize">{251, 102}</string> <string key="NSWindowContentMinSize">{251, 102}</string> <object class="NSView" key="NSWindowView" id="680570399"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -10660,7 +10646,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <string key="NSFrameSize">{251, 102}</string> - <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string> <string key="NSMinSize">{251, 124}</string> @@ -10797,7 +10782,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSWindowTitle">Secure Text Input Sheet</string> <string key="NSWindowClass">NSPanel</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <object class="NSView" key="NSWindowView" id="978976687"> <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> @@ -10901,7 +10886,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSFrameSize">{338, 150}</string> </object> <string key="NSScreenRect">{{0, 0}, {1280, 778}}</string> - <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> + <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> </object> <object class="NSCustomView" id="884983195"> <nil key="NSNextResponder"/> @@ -11084,7 +11069,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="NSColorName">disabledControlTextColor</string> <object class="NSColor" key="NSColor"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC4zMzMzMzMzMzMzAA</bytes> + <bytes key="NSWhite">MC4zMzMzMzMzNDMzAA</bytes> </object> </object> </object> @@ -16612,6 +16597,22 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <int key="connectionID">7816</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">progressStatusTextField</string> + <reference key="source" ref="885866030"/> + <reference key="destination" ref="948350361"/> + </object> + <int key="connectionID">7826</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">dataProgressIndicator</string> + <reference key="source" ref="885866030"/> + <reference key="destination" ref="417129313"/> + </object> + <int key="connectionID">7827</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -17548,6 +17549,8 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference ref="951603292"/> <reference ref="158114485"/> <reference ref="415754263"/> + <reference ref="417129313"/> + <reference ref="948350361"/> </object> <reference key="parent" ref="787219800"/> </object> @@ -23273,6 +23276,25 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference key="object" ref="926340181"/> <reference key="parent" ref="378590916"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">7823</int> + <reference key="object" ref="417129313"/> + <reference key="parent" ref="842408319"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">7824</int> + <reference key="object" ref="948350361"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="533703624"/> + </object> + <reference key="parent" ref="842408319"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">7825</int> + <reference key="object" ref="533703624"/> + <reference key="parent" ref="948350361"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -24639,6 +24661,9 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>7821.IBPluginDependency</string> <string>7821.IBViewBoundsToFrameTransform</string> <string>7822.IBPluginDependency</string> + <string>7823.IBPluginDependency</string> + <string>7824.IBPluginDependency</string> + <string>7825.IBPluginDependency</string> <string>858.IBPluginDependency</string> <string>858.ImportedFromIB2</string> <string>959.IBEditorWindowLastContentRect</string> @@ -25239,9 +25264,9 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{495, 136}, {337, 369}}</string> + <string>{{340, 487}, {379, 369}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{495, 136}, {337, 369}}</string> + <string>{{340, 487}, {379, 369}}</string> <integer value="0"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableArray"> @@ -26041,7 +26066,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{329, 100}, {943, 549}}</string> + <string>{{81, 100}, {943, 549}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="YES"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -26562,6 +26587,9 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <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>{{265, 489}, {405, 267}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -26599,7 +26627,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <nil key="sourceID"/> - <int key="maxID">7822</int> + <int key="maxID">7827</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -30162,6 +30190,13 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <object class="IBPartialClassDescription"> <string key="className">SPQueryController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPQueryConsoleDataSource.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPQueryController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -30317,6 +30352,20 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPQueryController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPQueryControllerInitializer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">SPQueryController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPQueryDocumentsController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SPServerVariablesController</string> <string key="superclassName">NSWindowController</string> <object class="NSMutableDictionary" key="actions"> @@ -31082,9 +31131,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>columnPopUpButton</string> <string>confirmAddRelationButton</string> <string>constraintName</string> + <string>dataProgressIndicator</string> <string>labelTextField</string> <string>onDeletePopUpButton</string> <string>onUpdatePopUpButton</string> + <string>progressStatusTextField</string> <string>refColumnPopUpButton</string> <string>refTablePopUpButton</string> <string>refreshRelationsButton</string> @@ -31103,9 +31154,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>NSPopUpButton</string> <string>NSButton</string> <string>NSTextField</string> + <string>NSProgressIndicator</string> <string>NSTextField</string> <string>NSPopUpButton</string> <string>NSPopUpButton</string> + <string>NSTextField</string> <string>NSPopUpButton</string> <string>NSPopUpButton</string> <string>NSButton</string> @@ -31127,9 +31180,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>columnPopUpButton</string> <string>confirmAddRelationButton</string> <string>constraintName</string> + <string>dataProgressIndicator</string> <string>labelTextField</string> <string>onDeletePopUpButton</string> <string>onUpdatePopUpButton</string> + <string>progressStatusTextField</string> <string>refColumnPopUpButton</string> <string>refTablePopUpButton</string> <string>refreshRelationsButton</string> @@ -31167,6 +31222,10 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="candidateClassName">NSTextField</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">dataProgressIndicator</string> + <string key="candidateClassName">NSProgressIndicator</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">labelTextField</string> <string key="candidateClassName">NSTextField</string> </object> @@ -31179,6 +31238,10 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string key="candidateClassName">NSPopUpButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">progressStatusTextField</string> + <string key="candidateClassName">NSTextField</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">refColumnPopUpButton</string> <string key="candidateClassName">NSPopUpButton</string> </object> diff --git a/Source/SPDatabaseDocument.h b/Source/SPDatabaseDocument.h index a0d02bb6..d79610e9 100644 --- a/Source/SPDatabaseDocument.h +++ b/Source/SPDatabaseDocument.h @@ -240,6 +240,19 @@ SPDatabaseData, SPTablesList, SPTableStructure, SPTableContent, SPTableData, SPS } #ifdef SP_REFACTOR /* ivars */ +@property (assign) SPDatabaseData* databaseDataInstance; +@property (assign) SPTableData* tableDataInstance; +@property (assign) SPCustomQuery* customQueryInstance; +@property (assign) id databaseNameField; +@property (assign) id databaseEncodingButton; +@property (assign) id addDatabaseButton; + +@property (assign) id databaseRenameNameField; +@property (assign) id renameDatabaseButton; +@property (assign) id databaseRenameSheet; +#endif + +#ifdef SP_REFACTOR /* ivars */ @property (assign) id delegate; @property (readonly) NSMutableArray* allDatabases; @property (assign) NSProgressIndicator* queryProgressBar; @@ -449,17 +462,6 @@ SPDatabaseData, SPTablesList, SPTableStructure, SPTableContent, SPTableData, SPS - (void)setTableSourceInstance:(SPTableStructure*)source; - (void)setTableContentInstance:(SPTableContent*)content; -@property (assign) SPDatabaseData* databaseDataInstance; -@property (assign) SPTableData* tableDataInstance; -@property (assign) SPCustomQuery* customQueryInstance; -@property (assign) id databaseNameField; -@property (assign) id databaseEncodingButton; -@property (assign) id addDatabaseButton; - -@property (assign) id databaseRenameNameField; -@property (assign) id renameDatabaseButton; -@property (assign) id databaseRenameSheet; - #endif @end diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 52858787..a6b905b2 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -73,6 +73,7 @@ enum { #import "SPDatabaseCopy.h" #import "SPTableCopy.h" #import "SPDatabaseRename.h" +#import "SPTableRelations.h" #endif #import "SPServerSupport.h" #ifndef SP_REFACTOR /* headers */ @@ -227,6 +228,7 @@ static NSString *SPCreateSyntx = @"SPCreateSyntax"; // Set the connection controller's delegate [connectionController setDelegate:self]; + return connectionController; } @@ -5890,7 +5892,6 @@ static NSString *SPCreateSyntx = @"SPCreateSyntax"; #endif } - /** * Select the specified database and, optionally, table. */ @@ -5923,7 +5924,7 @@ static NSString *SPCreateSyntx = @"SPCreateSyntax"; // End the task first to ensure the database dropdown can be reselected [self endTask]; - if ( [mySQLConnection isConnected] ) { + if ([mySQLConnection isConnected]) { // Update the database list [[self onMainThread] setDatabases:self]; @@ -5970,10 +5971,14 @@ static NSString *SPCreateSyntx = @"SPCreateSyntax"; // Set focus to table list filter field if visible // otherwise set focus to Table List view - if ( [[tablesListInstance tables] count] > 20 ) + if ([[tablesListInstance tables] count] > 20) { [[parentWindow onMainThread] makeFirstResponder:listFilterField]; - else + } + else { [[parentWindow onMainThread] makeFirstResponder:[tablesListInstance valueForKeyPath:@"tablesListView"]]; + } + + [tableRelationsInstance loadUsedRelationNames]; #endif } @@ -6031,8 +6036,9 @@ static NSString *SPCreateSyntx = @"SPCreateSyntax"; #endif #ifdef SP_REFACTOR /* glue */ - if ( delegate && [delegate respondsToSelector:@selector(databaseDidChange:)] ) + if (delegate && [delegate respondsToSelector:@selector(databaseDidChange:)]) { [delegate performSelectorOnMainThread:@selector(databaseDidChange:) withObject:self waitUntilDone:NO]; + } #endif [taskPool drain]; diff --git a/Source/SPExtendedTableInfo.m b/Source/SPExtendedTableInfo.m index 13e60f92..a1e59110 100644 --- a/Source/SPExtendedTableInfo.m +++ b/Source/SPExtendedTableInfo.m @@ -383,7 +383,6 @@ */ - (NSDictionary *)tableInformationForPrinting { - // Update possible pending comment changes by set the focus to create table syntax view [[NSApp keyWindow] makeFirstResponder:tableCreateSyntaxTextView]; diff --git a/Source/SPTableRelations.h b/Source/SPTableRelations.h index 74dd0a17..a600ebf0 100644 --- a/Source/SPTableRelations.h +++ b/Source/SPTableRelations.h @@ -50,12 +50,16 @@ IBOutlet NSPopUpButton *onUpdatePopUpButton; IBOutlet NSPopUpButton *onDeletePopUpButton; IBOutlet NSButton *confirmAddRelationButton; + IBOutlet NSProgressIndicator *dataProgressIndicator; + IBOutlet NSTextField *progressStatusTextField; MCPConnection *connection; - NSMutableArray *relationData; NSUserDefaults *prefs; + NSMutableArray *relationData; NSMutableArray *takenConstraintNames; + + BOOL isRetrievingRelationNames; } @property (readonly) NSMutableArray *relationData; @@ -77,6 +81,7 @@ - (void)endDocumentTaskForTab:(NSNotification *)aNotification; // Other +- (void)loadUsedRelationNames; - (NSArray *)relationDataForPrinting; - (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(NSString *)contextInfo; diff --git a/Source/SPTableRelations.m b/Source/SPTableRelations.m index 01fc4a6e..a26e9039 100644 --- a/Source/SPTableRelations.m +++ b/Source/SPTableRelations.m @@ -30,10 +30,14 @@ #import "SPTableView.h" #import "SPAlertSheets.h" +static NSString *SPRemoveRelation = @"SPRemoveRelation"; + @interface SPTableRelations () - (void)_refreshRelationDataForcingCacheRefresh:(BOOL)clearAllCaches; - (void)_updateAvailableTableColumns; +- (void)_loadUsedRelationNamesInBackground; +- (void)_relationNamesLoaded; @end @@ -51,6 +55,8 @@ relationData = [[NSMutableArray alloc] init]; prefs = [NSUserDefaults standardUserDefaults]; takenConstraintNames = [[NSMutableArray alloc] init]; + + isRetrievingRelationNames = NO; } return self; @@ -176,7 +182,6 @@ */ - (IBAction)addRelation:(id)sender { - // Check whether table editing is permitted (necessary as some actions - eg table double-click - bypass validation) if ([tableDocumentInstance isWorking] || [tablesListInstance tableType] != SPTableTypeTable) return; @@ -208,17 +213,6 @@ [refTablePopUpButton addItemWithTitle:[[result fetchRowAsArray] objectAtIndex:0]]; } - // Get a list of used constraint names for this db - [takenConstraintNames removeAllObjects]; - result = [connection queryString:[NSString stringWithFormat:@"SELECT DISTINCT constraint_name FROM information_schema.table_constraints WHERE constraint_type = 'FOREIGN KEY' AND constraint_schema = %@", [[tableDocumentInstance database] tickQuotedString]]]; - - [result dataSeek:0]; - - for (NSUInteger i = 0; i < [result numOfRows]; i++) - { - [takenConstraintNames addObject:[[[result fetchRowAsArray] objectAtIndex:0] lowercaseString]]; - } - // Reset other fields [constraintName setStringValue:@""]; [onDeletePopUpButton selectItemAtIndex:0]; @@ -258,7 +252,7 @@ [[buttons objectAtIndex:0] setKeyEquivalentModifierMask:NSCommandKeyMask]; [[buttons objectAtIndex:1] setKeyEquivalent:@"\r"]; - [alert beginSheetModalForWindow:[tableDocumentInstance parentWindow] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:@"removeRelation"]; + [alert beginSheetModalForWindow:[tableDocumentInstance parentWindow] modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:) contextInfo:SPRemoveRelation]; } } @@ -293,7 +287,8 @@ [addRelationButton setEnabled:enableInteraction]; [refreshRelationsButton setEnabled:enableInteraction]; [relationsTableView setEnabled:YES]; - } else { + } + else { [addRelationButton setEnabled:NO]; [refreshRelationsButton setEnabled:NO]; [relationsTableView setEnabled:NO]; @@ -307,34 +302,31 @@ #pragma mark - #pragma mark TextField delegate methods -- (void)controlTextDidChange:(NSNotification *)aNotification -{ - id field = [aNotification object]; - +- (void)controlTextDidChange:(NSNotification *)notification +{ // Make sure the user does not enter a taken name - if (field == constraintName) { + if ([notification object] == constraintName) { - NSString *userValue = [[constraintName stringValue] lowercaseString]; BOOL taken = NO; - for(NSString *takenName in takenConstraintNames) { - if([takenName isEqualToString:userValue]) { + NSString *userValue = [[constraintName stringValue] lowercaseString]; + + for (NSString *takenName in takenConstraintNames) + { + if ([takenName isEqualToString:userValue]) { taken = YES; break; } } - //make field red and disable add button - if(taken) { + // Make field red and disable add button + if (taken) { [constraintName setTextColor:[NSColor redColor]]; [confirmAddRelationButton setEnabled:NO]; } - //reset else { [constraintName setTextColor:[NSColor controlTextColor]]; [confirmAddRelationButton setEnabled:YES]; } - - return; } } @@ -366,7 +358,7 @@ * Double-click action on table cells - for the time being, return * NO to disable editing. */ -- (BOOL)tableView:(NSTableView *)aTableView shouldEditTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex +- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex { if ([tableDocumentInstance isWorking]) return NO; @@ -376,7 +368,7 @@ /** * Disable row selection while the document is working. */ -- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(NSInteger)rowIndex +- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex { return ![tableDocumentInstance isWorking]; } @@ -419,6 +411,26 @@ #pragma mark Other /** + * Loads the currently used relation names from information_schema.table_constraints. + */ +- (void)loadUsedRelationNames +{ + if (isRetrievingRelationNames) return; + + [dataProgressIndicator setHidden:NO]; + [dataProgressIndicator startAnimation:self]; + + [progressStatusTextField setHidden:NO]; + + [constraintName setEnabled:NO]; + [confirmAddRelationButton setEnabled:NO]; + + isRetrievingRelationNames = YES; + + [NSThread detachNewThreadSelector:@selector(_loadUsedRelationNamesInBackground) toTarget:self withObject:nil]; +} + +/** * Returns an array of relation data to be used for printing purposes. The first element in the array is always * an array of the columns and each subsequent element is an array of relation data. */ @@ -462,7 +474,7 @@ */ - (void)alertDidEnd:(NSAlert *)alert returnCode:(NSInteger)returnCode contextInfo:(NSString *)contextInfo { - if ([contextInfo isEqualToString:@"removeRelation"]) { + if ([contextInfo isEqualToString:SPRemoveRelation]) { if (returnCode == NSAlertDefaultReturn) { @@ -536,22 +548,7 @@ } #pragma mark - - -/* - * Dealloc. - */ -- (void)dealloc -{ - [[NSNotificationCenter defaultCenter] removeObserver:self]; - [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SPUseMonospacedFonts]; - - [relationData release], relationData = nil; - - [takenConstraintNames release]; - takenConstraintNames = nil; - - [super dealloc]; -} +#pragma mark Private API /** * Refresh the displayed relations, optionally forcing a refresh of the underlying cache. @@ -561,22 +558,22 @@ [relationData removeAllObjects]; if ([tablesListInstance tableType] == SPTableTypeTable) { - + if (clearAllCaches) [tableDataInstance updateInformationForCurrentTable]; - + NSArray *constraints = [tableDataInstance getConstraints]; - + for (NSDictionary *constraint in constraints) { [relationData addObject:[NSDictionary dictionaryWithObjectsAndKeys: - [constraint objectForKey:@"name"], @"name", - [[constraint objectForKey:@"columns"] objectAtIndex:0], @"columns", - [constraint objectForKey:@"ref_table"], @"fk_table", - [constraint objectForKey:@"ref_columns"], @"fk_columns", - ([constraint objectForKey:@"update"] ? [constraint objectForKey:@"update"] : @""), @"on_update", - ([constraint objectForKey:@"delete"] ? [constraint objectForKey:@"delete"] : @""), @"on_delete", - nil]]; - + [constraint objectForKey:@"name"], @"name", + [[constraint objectForKey:@"columns"] objectAtIndex:0], @"columns", + [constraint objectForKey:@"ref_table"], @"fk_table", + [constraint objectForKey:@"ref_columns"], @"fk_columns", + ([constraint objectForKey:@"update"] ? [constraint objectForKey:@"update"] : @""), @"on_update", + ([constraint objectForKey:@"delete"] ? [constraint objectForKey:@"delete"] : @""), @"on_delete", + nil]]; + } } @@ -591,24 +588,24 @@ { NSString *column = [columnPopUpButton titleOfSelectedItem]; NSString *table = [refTablePopUpButton titleOfSelectedItem]; - + [tableDataInstance resetAllData]; [tableDataInstance updateInformationForCurrentTable]; - + NSDictionary *columnInfo = [[tableDataInstance columnWithName:column] copy]; - + [refColumnPopUpButton setEnabled:NO]; [confirmAddRelationButton setEnabled:NO]; - + [refColumnPopUpButton removeAllItems]; - + [tableDataInstance resetAllData]; NSDictionary *tableInfo = [tableDataInstance informationForTable:table]; - + NSArray *columns = [tableInfo objectForKey:@"columns"]; - + NSMutableArray *validColumns = [NSMutableArray array]; - + // Only add columns of the same data type for (NSDictionary *aColumn in columns) { @@ -616,17 +613,81 @@ [validColumns addObject:[aColumn objectForKey:@"name"]]; } } - + // Add the valid columns if ([validColumns count] > 0) { NSArray *columnTitles = ([prefs boolForKey:SPAlphabeticalTableSorting])? [validColumns sortedArrayUsingSelector:@selector(compare:)] : validColumns; + [refColumnPopUpButton addItemsWithTitles:columnTitles]; - + [refColumnPopUpButton setEnabled:YES]; - [confirmAddRelationButton setEnabled:YES]; + + if (!isRetrievingRelationNames) { + [confirmAddRelationButton setEnabled:YES]; + } } - + [columnInfo release]; } +/** + * Loads all of the current foreign key relationship names for the current database. This method should be + * spawned on a separate thread. + */ +- (void)_loadUsedRelationNamesInBackground +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + + [takenConstraintNames removeAllObjects]; + + MCPResult *result = [connection queryString:[NSString stringWithFormat:@"SELECT DISTINCT constraint_name FROM information_schema.table_constraints WHERE constraint_type = 'FOREIGN KEY' AND constraint_schema = %@", [[tableDocumentInstance database] tickQuotedString]]]; + + [result dataSeek:0]; + + for (NSUInteger i = 0; i < [result numOfRows]; i++) + { + [takenConstraintNames addObject:[[[result fetchRowAsArray] objectAtIndex:0] lowercaseString]]; + } + + // Update the UI on the main thread + [self performSelectorOnMainThread:@selector(_relationNamesLoaded) withObject:nil waitUntilDone:NO]; + + [pool release]; +} + +/** + * Called on the main thread, once all the current table relation names have been loaded and re-enables all + * the relevant UI controls. + */ +- (void)_relationNamesLoaded +{ + [dataProgressIndicator setHidden:YES]; + [dataProgressIndicator stopAnimation:self]; + + [progressStatusTextField setHidden:YES]; + + [constraintName setEnabled:YES]; + [confirmAddRelationButton setEnabled:YES]; + + [addRelationPanel makeFirstResponder:constraintName]; + + isRetrievingRelationNames = NO; +} + +#pragma mark - + +/* + * Dealloc. + */ +- (void)dealloc +{ + [[NSNotificationCenter defaultCenter] removeObserver:self]; + [[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:SPUseMonospacedFonts]; + + [relationData release], relationData = nil; + [takenConstraintNames release], takenConstraintNames = nil; + + [super dealloc]; +} + @end |