Using NSObjectController for bindings in InspectorTab

This commit is contained in:
michael starke
2015-12-18 18:15:15 +01:00
parent fc741151ed
commit 622e145e53

View File

@@ -109,7 +109,6 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
self.cancelEditButton.action = @selector(cancelEditing:); self.cancelEditButton.action = @selector(cancelEditing:);
self.cancelEditButton.hidden = YES; self.cancelEditButton.hidden = YES;
[self _updateBindings:nil];
[self _toggleEditors:NO]; [self _toggleEditors:NO];
} }
@@ -120,6 +119,10 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
object:document]; object:document];
[self.entryViewController registerNotificationsForDocument:document]; [self.entryViewController registerNotificationsForDocument:document];
[self.nodeController bind:NSContentBinding toObject:document withKeyPath:NSStringFromSelector(@selector(selectedItem)) options:nil];
[self _establishBindings];
[self.entryViewController setupBindings:document]; [self.entryViewController setupBindings:document];
[self.groupViewController setupBindings:document]; [self.groupViewController setupBindings:document];
} }
@@ -164,7 +167,6 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
[self.modifiedTextField setStringValue:[NSString stringWithFormat:modifedAtTemplate, modificationString]]; [self.modifiedTextField setStringValue:[NSString stringWithFormat:modifedAtTemplate, modificationString]];
[self.createdTextField setStringValue:[NSString stringWithFormat:createdAtTemplate, creationString]]; [self.createdTextField setStringValue:[NSString stringWithFormat:createdAtTemplate, creationString]];
} }
#pragma mark - #pragma mark -
@@ -244,28 +246,20 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
#pragma mark - #pragma mark -
#pragma mark Bindings #pragma mark Bindings
- (void)_updateBindings:(id)item { - (void)_establishBindings {
if(!item) {
[self.itemNameTextField unbind:NSValueBinding];
self.itemNameTextField.hidden = YES;
[self.itemImageView unbind:NSValueBinding]; [self.itemImageView bind:NSValueBinding
self.itemImageView.hidden = YES; toObject:self.nodeController
withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(iconImage))]
self.notesTextView.enclosingScrollView.hidden = YES; options:nil];
[self.notesTextView unbind:NSValueBinding]; [self.notesTextView bind:NSValueBinding
self.notesTextView.string = @""; toObject:self.nodeController
withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(notes))]
return; options:@{ NSNullPlaceholderBindingOption: NSLocalizedString(@"NONE", "")}];
} [self.itemNameTextField bind:NSValueBinding
toObject:self.nodeController
/* Disable if item is not editable */ withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(title))]
[self.itemImageView bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(iconImage)) options:nil]; options:@{NSNullPlaceholderBindingOption: NSLocalizedString(@"NONE", "")}];
self.notesTextView.enclosingScrollView.hidden = NO;
[self.notesTextView bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(notes)) options:nil];
[self.itemNameTextField bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(title)) options:nil];
self.itemImageView.hidden = NO;
self.itemNameTextField.hidden = NO;
} }
#pragma mark - #pragma mark -
@@ -285,15 +279,13 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
self.activeTab = MPGroupTab; self.activeTab = MPGroupTab;
} }
else if(document.selectedItem.asEntry) { else if(document.selectedItem.asEntry) {
self.activeTab = MPEntryTab; self.activeTab = MPEntryTab;
} }
else { else {
self.activeTab = MPEmptyTab; self.activeTab = MPEmptyTab;
} }
// self.representedObject = document.selectedItem;
// self.entryViewController.representedObject = document.selectedItem.asEntry; [self _establishBindings];
// self.groupViewController.representedObject = document.selectedItem.asGroup;
[self _updateBindings:document.selectedItem];
} }
- (IBAction)beginEditing:(id)sender { - (IBAction)beginEditing:(id)sender {