add table view data source

master
Jordan Orelli 7 years ago
parent cc1256d99c
commit 1515a0d950

@ -1,5 +1,5 @@
#import <Cocoa/Cocoa.h>
#import "EventListener.h"
@interface MainViewController : NSViewController <EventListener>
@interface MainViewController : NSViewController <EventListener, NSTableViewDataSource>
@end

@ -2,6 +2,7 @@
#import "MainViewController.h"
#import "MainView.h"
#import "EventBridge.h"
#import "RequestHistory.h"
@interface MainViewController ()
@ -10,6 +11,7 @@
@property (nonatomic, strong) NSTextField *selectedDirectoryText;
@property (nonatomic, strong) NSScrollView *historyContainer;
@property (nonatomic, strong) NSTableView *historyTable;
@property (nonatomic, strong) RequestHistory *history;
@end
@ -58,6 +60,7 @@
}
- (void) createHistoryTable {
[self setHistory:[RequestHistory new]];
NSScrollView *tableContainer = [[NSScrollView alloc] init];
[tableContainer setTranslatesAutoresizingMaskIntoConstraints:NO];
[tableContainer setHasVerticalScroller:YES];
@ -68,6 +71,7 @@
[tableView setTranslatesAutoresizingMaskIntoConstraints:NO];
[tableView setFocusRingType:NSFocusRingTypeNone];
[tableView setSelectionHighlightStyle:NSTableViewSelectionHighlightStyleNone];
[tableView setDataSource:self.history];
NSTableColumn *idColumn = [[NSTableColumn alloc] initWithIdentifier:@"id"];
[idColumn setTitle:@"id"];
@ -140,10 +144,14 @@
- (void) serverDidReceiveRequest:(RequestMeta *)meta {
NSLog(@"[MainViewController] request start: {%d %s}", meta->seq, meta->path);
[[self history] addRequestItem:meta];
[[self historyTable] reloadData];
}
- (void) serverDidWriteResponse:(ResponseMeta *)meta {
NSLog(@"[MainViewController] request finish: {%d %d %d}", meta->seq, meta->status, meta->bytes);
[[self history] addResponseItem:meta];
[[self historyTable] reloadData];
}
@end

@ -0,0 +1,7 @@
#import <Cocoa/Cocoa.h>
#import "ui_darwin.h"
@interface RequestHistory : NSObject <NSTableViewDataSource>
- (void) addRequestItem:(RequestMeta *)meta;
- (void) addResponseItem:(ResponseMeta *)meta;
@end

@ -0,0 +1,35 @@
#import "RequestHistory.h"
@interface RequestHistory ()
@property (strong) NSMutableArray *items;
@end
@implementation RequestHistory
- (instancetype) init {
self = [super init];
if (self) {
[self setItems:[[NSMutableArray alloc] initWithCapacity:1000]];
}
return self;
}
- (NSInteger) numberOfRowsInTableView:(NSTableView *)view {
return [[self items] count];
}
- (id) tableView:(NSTableView *)view objectValueForTableColumn:(NSTableColumn *)column row:(NSInteger) row {
NSLog(@"[RequestHistory] objectValueForTableColumn: %@ row: %zd", column, row);
return [[self items] objectAtIndex:row];
}
- (void) addRequestItem:(RequestMeta *)meta {
NSLog(@"[RequestHistory] add request item");
[[self items] addObject:[NSValue valueWithBytes:meta objCType:@encode(RequestMeta)]];
}
- (void) addResponseItem:(ResponseMeta *)meta {
NSLog(@"[RequestHistory] add response item");
}
@end
Loading…
Cancel
Save