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

View File

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

View File

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