aboutsummaryrefslogtreecommitdiffstats
path: root/SPTableInfo.m
diff options
context:
space:
mode:
Diffstat (limited to 'SPTableInfo.m')
-rw-r--r--SPTableInfo.m190
1 files changed, 0 insertions, 190 deletions
diff --git a/SPTableInfo.m b/SPTableInfo.m
deleted file mode 100644
index b2b81c05..00000000
--- a/SPTableInfo.m
+++ /dev/null
@@ -1,190 +0,0 @@
-//
-// SPTableInfo.m
-// sequel-pro
-//
-// Created by Ben Perry on 6/05/08.
-// Copyright 2008 Ben Perry. All rights reserved.
-//
-
-#import "SPTableInfo.h"
-#import "ImageAndTextCell.h"
-#import <MCPKit_bundled/MCPKit_bundled.h>
-#import "CMMCPConnection.h"
-#import "CMMCPResult.h"
-#import "TableDocument.h"
-
-@implementation SPTableInfo
-
-- (id)init
-{
- self = [super init];
- info = [[NSMutableArray alloc] init];
- return self;
-}
-
-- (void)awakeFromNib
-{
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(tableChanged:)
- name:NSTableViewSelectionDidChangeNotification
- object:tableList];
- [info addObject:NSLocalizedString(@"TABLE INFORMATION",@"header for table info pane")];
- [infoTable reloadData];
-}
-
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter] removeObserver:self];
-
- [info release];
-
- [super dealloc];
-}
-
-- (int)numberOfRowsInTableView:(NSTableView *)aTableView
-{
- return [info count];
-}
-
-- (id)tableView:(NSTableView *)aTableView
-objectValueForTableColumn:(NSTableColumn *)aTableColumn
- row:(int)rowIndex
-{
- return [info objectAtIndex:rowIndex];
-}
-
-- (BOOL)tableView:(NSTableView *)aTableView shouldSelectRow:(int)rowIndex
-{
- // row 1 and 6 should be editable - ie be able to rename the table and change the auto_increment value.
- return NO;//(rowIndex == 1 || rowIndex == 6 );
-}
-
-
-- (BOOL)tableView:(NSTableView *)aTableView isGroupRow:(int)row
-{
- // This makes the top row (TABLE INFORMATION) have the diff styling
- return (row == 0);
-}
-
-- (void)tableView:(NSTableView *)aTableView
- willDisplayCell:(id)aCell
- forTableColumn:(NSTableColumn *)aTableColumn
- row:(int)rowIndex
-{
- if ((rowIndex > 0) && [[aTableColumn identifier] isEqualToString:@"info"]) {
- [(ImageAndTextCell*)aCell setImage:[NSImage imageNamed:@"CodeAssistantProtocol"]];
- [(ImageAndTextCell*)aCell setIndentationLevel:1];
- } else {
- [(ImageAndTextCell*)aCell setImage:nil];
- [(ImageAndTextCell*)aCell setIndentationLevel:0];
- }
-}
-
-- (void)tableChanged:(NSNotification *)notification
-{
- NSString *query;
- CMMCPResult *theResult;
- NSDictionary *theRow;
-
- [info removeAllObjects];
- [info addObject:@"TABLE INFORMATION"];
-
- if ([tableListInstance table])
- {
- if ([(NSString *)[tableListInstance table] isEqualToString:@""]) {
- [info addObject:@"multiple tables"];
-
- } else {
- // Notify that we are about to perform a query
- [[NSNotificationCenter defaultCenter] postNotificationName:@"SMySQLQueryWillBePerformed" object:self];
-
- // Create the query and get results
- query = [NSString stringWithFormat:@"SHOW TABLE STATUS LIKE '%@'", [tableListInstance table]];
-
- // This line triggers a bug when opening a new window. but only after having closed a window
- theResult = [[tableDocumentInstance sharedConnection] queryString:query];
-
- // Check for errors
- if (![[[tableDocumentInstance sharedConnection] getLastErrorMessage] isEqualToString:@""]) {
- [info addObject:@"error occurred"];
- return;
- }
-
- // Process result
- theRow = [[theResult fetch2DResultAsType:MCPTypeDictionary] lastObject];
-
- // Check for "Create_time" == NULL
- if (![[theRow objectForKey:@"Create_time"] isNSNull]) {
- // Setup our data formatter
- NSDateFormatter *createDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
- [createDateFormatter setDateStyle:NSDateFormatterShortStyle];
- [createDateFormatter setTimeStyle:NSDateFormatterNoStyle];
-
- // Convert our string date from the result to an NSDate.
- NSDate *create_date = [NSDate dateWithNaturalLanguageString:[theRow objectForKey:@"Create_time"]];
-
- // Add the creation date to the infoTable
- [info addObject:[NSString stringWithFormat:@"created: %@", [createDateFormatter stringFromDate:create_date]]];
- }
-
- // Check for "Update_time" == NULL - InnoDB tables don't have an update time
- if (![[theRow objectForKey:@"Update_time"] isNSNull]) {
- // Setup our data formatter
- NSDateFormatter *updateDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
- [updateDateFormatter setDateStyle:NSDateFormatterShortStyle];
- [updateDateFormatter setTimeStyle:NSDateFormatterNoStyle];
-
- // Convert our string date from the result to an NSDate.
- NSDate *update_date = [NSDate dateWithNaturalLanguageString:[theRow objectForKey:@"Update_time"]];
-
- // Add the update date to the infoTable
- [info addObject:[NSString stringWithFormat:@"updated: %@", [updateDateFormatter stringFromDate:update_date]]];
- }
-
- [info addObject:[NSString stringWithFormat:@"rows: %@", [theRow objectForKey:@"Rows"]]];
- [info addObject:[NSString stringWithFormat:@"size: %@", [self sizeFromBytes:[[theRow objectForKey:@"Data_length"] intValue]]]];
- [info addObject:[NSString stringWithFormat:@"encoding: %@", [[[theRow objectForKey:@"Collation"] componentsSeparatedByString:@"_"] objectAtIndex:0]]];
- [info addObject:[NSString stringWithFormat:@"auto_increment: %@", [theRow objectForKey:@"Auto_increment"]]];
-
- // Notify that we've finished performing the query
- [[NSNotificationCenter defaultCenter] postNotificationName:@"SMySQLQueryHasBeenPerformed" object:self];
- }
- }
-
- [infoTable reloadData];
-}
-
-- (NSString *)sizeFromBytes:(int)theSize
-{
- NSNumberFormatter *numberFormatter = [[[NSNumberFormatter alloc] init] autorelease];
- float floatSize = theSize;
-
- [numberFormatter setNumberStyle:NSNumberFormatterDecimalStyle];
-
- if (theSize < 1023) {
- [numberFormatter setFormat:@"#,##0 B"];
- return [numberFormatter stringFromNumber:[NSNumber numberWithInt:theSize]];
- }
-
- floatSize = floatSize / 1024;
-
- if (floatSize < 1023) {
- [numberFormatter setFormat:@"#,##0.0 KB"];
- return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]];
- }
-
- floatSize = floatSize / 1024;
-
- if (floatSize < 1023) {
- [numberFormatter setFormat:@"#,##0.0 MB"];
- return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]];
- }
-
- floatSize = floatSize / 1024;
-
- [numberFormatter setFormat:@"#,##0.0 GB"];
- return [numberFormatter stringFromNumber:[NSNumber numberWithFloat:floatSize]];
-}
-
-@end