diff options
author | Stuart Connolly <stuart02@gmail.com> | 2017-03-28 23:15:10 +0100 |
---|---|---|
committer | Stuart Connolly <stuart02@gmail.com> | 2017-03-28 23:15:10 +0100 |
commit | 5f1b37e21c113101b2d72124f6dbd22b77a4fddc (patch) | |
tree | 500018962114439a4fbdc26d68df84a89a2b66d7 /Source/SPTableRelationsDelegate.m | |
parent | dbcea5c9ed64331f02a1f4e5525dfbfff0d61894 (diff) | |
download | sequelpro-5f1b37e21c113101b2d72124f6dbd22b77a4fddc.tar.gz sequelpro-5f1b37e21c113101b2d72124f6dbd22b77a4fddc.tar.bz2 sequelpro-5f1b37e21c113101b2d72124f6dbd22b77a4fddc.zip |
Move table relations delegate methods into their own catrgory to be consistent with other controllers.
Diffstat (limited to 'Source/SPTableRelationsDelegate.m')
-rw-r--r-- | Source/SPTableRelationsDelegate.m | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/Source/SPTableRelationsDelegate.m b/Source/SPTableRelationsDelegate.m new file mode 100644 index 00000000..bf083318 --- /dev/null +++ b/Source/SPTableRelationsDelegate.m @@ -0,0 +1,87 @@ +// +// SPTableRelationsDelegate.m +// sequel-pro +// +// Created by Stuart Connolly (stuconnolly.com) on March 28, 2017. +// Copyright (c) 2017 Stuart Connolly. All rights reserved. +// +// Permission is hereby granted, free of charge, to any person +// obtaining a copy of this software and associated documentation +// files (the "Software"), to deal in the Software without +// restriction, including without limitation the rights to use, +// copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the +// Software is furnished to do so, subject to the following +// conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +// OTHER DEALINGS IN THE SOFTWARE. +// +// More info at <https://github.com/sequelpro/sequelpro> + +#import "SPTableRelationsDelegate.h" +#import "SPDatabaseDocument.h" + +@implementation SPTableRelations (SPTableRelationsDelegate) + +#pragma mark - +#pragma mark TextField delegate methods + +- (void)controlTextDidChange:(NSNotification *)notification +{ + // Make sure the user does not enter a taken name, using the quickly-generated incomplete list + if ([notification object] == constraintName) { + NSString *userValue = [[constraintName stringValue] lowercaseString]; + + // Make field red and disable add button + if ([takenConstraintNames containsObject:userValue]) { + [constraintName setTextColor:[NSColor redColor]]; + [confirmAddRelationButton setEnabled:NO]; + } + else { + [constraintName setTextColor:[NSColor controlTextColor]]; + [confirmAddRelationButton setEnabled:YES]; + } + } +} + +#pragma mark - +#pragma mark Tableview delegate methods + +/** + * Called whenever the relations table view selection changes. + */ +- (void)tableViewSelectionDidChange:(NSNotification *)notification +{ + [removeRelationButton setEnabled:([relationsTableView numberOfSelectedRows] > 0)]; +} + +/* + * Double-click action on table cells - for the time being, return + * NO to disable editing. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldEditTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)rowIndex +{ + if ([tableDocumentInstance isWorking]) return NO; + + return NO; +} + +/** + * Disable row selection while the document is working. + */ +- (BOOL)tableView:(NSTableView *)tableView shouldSelectRow:(NSInteger)rowIndex +{ + return ![tableDocumentInstance isWorking]; +} + +@end |