Fixed mixed case in naming. Added enums for table column identification

This commit is contained in:
Michael Starke
2017-11-29 13:50:15 +01:00
parent 6d8c2b34be
commit eaea14ad9d
3 changed files with 36 additions and 21 deletions

View File

@@ -11,7 +11,7 @@
@class MPDocument;
@class KPKEntry;
@interface MPPickFieldTableModelRowItem : NSObject
@interface MPPickfieldTableModelRowItem : NSObject
@property (copy) NSString *name;
@property (copy) NSString *value;
@@ -24,10 +24,10 @@
@interface MPPickfieldTableModel : NSObject
@property (copy) NSArray<MPPickFieldTableModelRowItem *> *items;
@property (copy) NSArray<MPPickfieldTableModelRowItem *> *items;
- (instancetype)initWithEntry:(KPKEntry *)entry inDocument:(MPDocument *)document;
- (MPPickFieldTableModelRowItem *)itemAtIndex:(NSUInteger)index;
- (MPPickfieldTableModelRowItem *)itemAtIndex:(NSUInteger)index;
@end

View File

@@ -9,7 +9,7 @@
#import "MPPickfieldTableModel.h"
#import <KeePassKit/KeePassKit.h>
@implementation MPPickFieldTableModelRowItem
@implementation MPPickfieldTableModelRowItem
- (instancetype)init {
self = [super init];
@@ -20,13 +20,13 @@
}
+ (instancetype)groupItemWithName:(NSString *)name {
MPPickFieldTableModelRowItem *item = [self itemWithName:name value:nil];
MPPickfieldTableModelRowItem *item = [self itemWithName:name value:nil];
item.isGroup = YES;
return item;
}
+ (instancetype)itemWithName:(NSString *)name value:(NSString *)value {
MPPickFieldTableModelRowItem *item = [[MPPickFieldTableModelRowItem alloc] init];
MPPickfieldTableModelRowItem *item = [[MPPickfieldTableModelRowItem alloc] init];
item.name = name;
item.value = value;
return item;
@@ -47,22 +47,22 @@
- (void)_setupItemsForEntry:(KPKEntry *)entry document:(MPDocument *)document {
/* Default attributes */
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject:[MPPickFieldTableModelRowItem groupItemWithName:NSLocalizedString(@"ENTRY_DEFAULT_ATTRIBUTES", @"Group row for entry attributes")]];
[items addObject:[MPPickfieldTableModelRowItem groupItemWithName:NSLocalizedString(@"ENTRY_DEFAULT_ATTRIBUTES", @"Group row for entry attributes")]];
for(KPKAttribute *attribute in entry.defaultAttributes) {
/* TODO exclude protected values */
[items addObject:[MPPickFieldTableModelRowItem itemWithName:attribute.key value:attribute.value]];
[items addObject:[MPPickfieldTableModelRowItem itemWithName:attribute.key value:attribute.value]];
}
[items addObject:[MPPickFieldTableModelRowItem groupItemWithName:NSLocalizedString(@"ENTRY_CUSTOM_ATTRIBUTES", @"Group row for entry attributes")]];
[items addObject:[MPPickfieldTableModelRowItem groupItemWithName:NSLocalizedString(@"ENTRY_CUSTOM_ATTRIBUTES", @"Group row for entry attributes")]];
for(KPKAttribute *attribute in entry.customAttributes) {
/* TODO exclude protected values */
[items addObject:[MPPickFieldTableModelRowItem itemWithName:attribute.key value:attribute.value]];
[items addObject:[MPPickfieldTableModelRowItem itemWithName:attribute.key value:attribute.value]];
}
self.items = items; // copy creates an immutable copy
}
- (MPPickFieldTableModelRowItem *)itemAtIndex:(NSUInteger)index {
- (MPPickfieldTableModelRowItem *)itemAtIndex:(NSUInteger)index {
if(index < _items.count) {
return _items[index];
}

View File

@@ -10,6 +10,12 @@
#import "MPPickfieldTableModel.h"
#import <KeePassKit/KeePassKit.h>
typedef NS_ENUM(NSUInteger, MPPickfieldTableColumn) {
MPPickfieldNameTableColumn,
MPPIckfieldValueTableColumn
};
@interface MPPickfieldViewController () <NSTableViewDelegate, NSTableViewDataSource>
@property (nonatomic, strong, readonly) KPKEntry *representedEntry;
@@ -30,6 +36,7 @@
- (void)viewDidLoad {
[super viewDidLoad];
self.tableModel = [[MPPickfieldTableModel alloc] initWithEntry:self.representedEntry inDocument:nil];
}
- (KPKEntry *)representedEntry {
@@ -55,25 +62,33 @@
else {
view = [tableView makeViewWithIdentifier:@"HeaderCell" owner:self];
}
MPPickFieldTableModelRowItem *rowItem = [self.tableModel itemAtIndex:row];
MPPickfieldTableModelRowItem *rowItem = [self.tableModel itemAtIndex:row];
view.textField.stringValue = @"";
if(!rowItem) {
return view;
}
/* group view or first column */
if(tableColumn == nil || [tableColumn.identifier isEqualToString:@"AutomaticTableColumnIdentifier.0"]) {
view.textField.stringValue = rowItem.name;
}
else if([tableColumn.identifier isEqualToString:@"AutomaticTableColumnIdentifier.1"]) {
view.textField.stringValue = rowItem.value;
}
MPPickfieldTableColumn columnIndex = (tableColumn == nil
? MPPickfieldNameTableColumn
: [tableView.tableColumns indexOfObjectIdenticalTo:tableColumn]);
/* group view or first column */
switch (columnIndex) {
case MPPickfieldNameTableColumn:
view.textField.stringValue = rowItem.name;
break;
case MPPIckfieldValueTableColumn:
view.textField.stringValue = rowItem.value;
break;
default:
break;
}
return view;
}
- (BOOL)tableView:(NSTableView *)tableView isGroupRow:(NSInteger)row {
MPPickFieldTableModelRowItem *rowItem = [self.tableModel itemAtIndex:row];
MPPickfieldTableModelRowItem *rowItem = [self.tableModel itemAtIndex:row];
return rowItem.isGroup;
}
@@ -87,7 +102,7 @@
self.pickedValue = @"";
}
else {
MPPickFieldTableModelRowItem *item = [self.tableModel itemAtIndex:tableView.selectedRow];
MPPickfieldTableModelRowItem *item = [self.tableModel itemAtIndex:tableView.selectedRow];
self.pickedValue = item ? item.value : @"";
}
}