|
|
@@ -21,6 +21,7 @@
|
|
|
}
|
|
|
|
|
|
@property (nonatomic) NSArray<NSString *> *tables;
|
|
|
+@property (nonatomic) NSArray<NSString *> *filteredTables;
|
|
|
|
|
|
+ (NSArray<NSString *> *)supportedSQLiteExtensions;
|
|
|
+ (NSArray<NSString *> *)supportedRealmExtensions;
|
|
|
@@ -67,11 +68,35 @@
|
|
|
[array addObject:columnName];
|
|
|
}
|
|
|
self.tables = array;
|
|
|
+ self.filteredTables = array;
|
|
|
}
|
|
|
|
|
|
+- (void)viewDidLoad
|
|
|
+{
|
|
|
+ [super viewDidLoad];
|
|
|
+
|
|
|
+ self.showsSearchBar = YES;
|
|
|
+}
|
|
|
+
|
|
|
+#pragma mark - Search bar
|
|
|
+
|
|
|
+- (void)updateSearchResults:(NSString *)searchText
|
|
|
+{
|
|
|
+ if (searchText.length > 0) {
|
|
|
+ NSPredicate *searchPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] %@", searchText];
|
|
|
+ self.filteredTables = [self.tables filteredArrayUsingPredicate:searchPredicate];
|
|
|
+ } else {
|
|
|
+ self.filteredTables = self.tables;
|
|
|
+ }
|
|
|
+ [self.tableView reloadData];
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+#pragma mark - Table View Data Source
|
|
|
+
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
|
|
|
{
|
|
|
- return self.tables.count;
|
|
|
+ return self.filteredTables.count;
|
|
|
}
|
|
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
|
|
@@ -81,7 +106,7 @@
|
|
|
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
|
|
|
reuseIdentifier:@"FLEXTableListViewControllerCell"];
|
|
|
}
|
|
|
- cell.textLabel.text = self.tables[indexPath.row];
|
|
|
+ cell.textLabel.text = self.filteredTables[indexPath.row];
|
|
|
return cell;
|
|
|
}
|
|
|
|
|
|
@@ -90,19 +115,20 @@
|
|
|
{
|
|
|
FLEXTableContentViewController *contentViewController = [FLEXTableContentViewController new];
|
|
|
|
|
|
- contentViewController.contentsArray = [_dbm queryAllDataWithTableName:self.tables[indexPath.row]];
|
|
|
- contentViewController.columnsArray = [_dbm queryAllColumnsWithTableName:self.tables[indexPath.row]];
|
|
|
+ contentViewController.contentsArray = [_dbm queryAllDataWithTableName:self.filteredTables[indexPath.row]];
|
|
|
+ contentViewController.columnsArray = [_dbm queryAllColumnsWithTableName:self.filteredTables[indexPath.row]];
|
|
|
|
|
|
- contentViewController.title = self.tables[indexPath.row];
|
|
|
+ contentViewController.title = self.filteredTables[indexPath.row];
|
|
|
[self.navigationController pushViewController:contentViewController animated:YES];
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
|
|
|
{
|
|
|
- return [NSString stringWithFormat:@"%lu tables", (unsigned long)self.tables.count];
|
|
|
+ return [NSString stringWithFormat:@"Tables (%lu)", (unsigned long)self.filteredTables.count];
|
|
|
}
|
|
|
|
|
|
+#pragma mark - FLEXTableListViewController
|
|
|
+
|
|
|
+ (BOOL)supportsExtension:(NSString *)extension
|
|
|
{
|
|
|
extension = extension.lowercaseString;
|