mirror of
https://github.com/MacPass/MacPass.git
synced 2025-12-14 09:22:33 +00:00
Using NSObjectController for bindings in InspectorTab
This commit is contained in:
@@ -103,13 +103,12 @@ typedef NS_ENUM(NSUInteger, MPContentTab) {
|
|||||||
[groupTabItem setInitialFirstResponder:groupView];
|
[groupTabItem setInitialFirstResponder:groupView];
|
||||||
|
|
||||||
[self.view layout];
|
[self.view layout];
|
||||||
|
|
||||||
/* Init edit and cancel buttons */
|
/* Init edit and cancel buttons */
|
||||||
self.editButton.action = @selector(beginEditing:);
|
self.editButton.action = @selector(beginEditing:);
|
||||||
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.hidden = YES;
|
|
||||||
|
|
||||||
self.notesTextView.enclosingScrollView.hidden = YES;
|
|
||||||
[self.notesTextView unbind:NSValueBinding];
|
|
||||||
self.notesTextView.string = @"";
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Disable if item is not editable */
|
[self.itemImageView bind:NSValueBinding
|
||||||
[self.itemImageView bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(iconImage)) options:nil];
|
toObject:self.nodeController
|
||||||
self.notesTextView.enclosingScrollView.hidden = NO;
|
withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(iconImage))]
|
||||||
[self.notesTextView bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(notes)) options:nil];
|
options:nil];
|
||||||
[self.itemNameTextField bind:NSValueBinding toObject:item withKeyPath:NSStringFromSelector(@selector(title)) options:nil];
|
[self.notesTextView bind:NSValueBinding
|
||||||
self.itemImageView.hidden = NO;
|
toObject:self.nodeController
|
||||||
self.itemNameTextField.hidden = NO;
|
withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(notes))]
|
||||||
|
options:@{ NSNullPlaceholderBindingOption: NSLocalizedString(@"NONE", "")}];
|
||||||
|
[self.itemNameTextField bind:NSValueBinding
|
||||||
|
toObject:self.nodeController
|
||||||
|
withKeyPath:[NSString stringWithFormat:@"%@.%@", NSStringFromSelector(@selector(content)), NSStringFromSelector(@selector(title))]
|
||||||
|
options:@{NSNullPlaceholderBindingOption: NSLocalizedString(@"NONE", "")}];
|
||||||
}
|
}
|
||||||
|
|
||||||
#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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user