diff options
Diffstat (limited to 'trunk/TableDocument.h')
-rw-r--r-- | trunk/TableDocument.h | 223 |
1 files changed, 223 insertions, 0 deletions
diff --git a/trunk/TableDocument.h b/trunk/TableDocument.h new file mode 100644 index 00000000..5ade5ec1 --- /dev/null +++ b/trunk/TableDocument.h @@ -0,0 +1,223 @@ +// +// TableDocument.h +// sequel-pro +// +// Created by lorenz textor (lorenz@textor.ch) on Wed May 01 2002. +// Copyright (c) 2002-2003 Lorenz Textor. All rights reserved. +// +// Forked by Abhi Beckert (abhibeckert.com) 2008-04-04 +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// More info at <http://code.google.com/p/sequel-pro/> + +#import <Cocoa/Cocoa.h> +#import <MCPKit_bundled/MCPKit_bundled.h> +#import "CMMCPConnection.h" +#import "CMMCPResult.h" + +/** + * The TableDocument class controls the primary database view window. + */ + +@interface TableDocument : NSDocument +{ + //IBOutlets + IBOutlet id keyChainInstance; + IBOutlet id tablesListInstance; + IBOutlet id tableSourceInstance; + IBOutlet id tableContentInstance; + IBOutlet id customQueryInstance; + IBOutlet id tableDumpInstance; + IBOutlet id tableStatusInstance; + + IBOutlet id tableWindow; + IBOutlet id connectSheet; + IBOutlet id databaseSheet; + IBOutlet id variablesSheet; + IBOutlet id consoleDrawer; + + IBOutlet id queryProgressBar; + IBOutlet id favoritesButton; + IBOutlet NSTableView *connectFavoritesTableView; + IBOutlet NSArrayController *favoritesController; + IBOutlet id hostField; + IBOutlet id socketField; + IBOutlet id userField; + IBOutlet id passwordField; + IBOutlet id portField; + IBOutlet id databaseField; + + IBOutlet id connectProgressBar; + IBOutlet id connectProgressStatusText; + IBOutlet id databaseNameField; + IBOutlet id chooseDatabaseButton; + IBOutlet id consoleTextView; + IBOutlet id variablesTableView; + IBOutlet NSTabView *tableTabView; + + IBOutlet id sidebarGrabber; + + IBOutlet NSTableView *dbTablesTableView; + + IBOutlet id syntaxView; + IBOutlet id syntaxViewContent; + IBOutlet NSWindow *createTableSyntaxWindow; + + CMMCPConnection *mySQLConnection; + + NSMutableArray *favorites; + NSArray *variables; + NSString *selectedDatabase; + NSString *selectedFavorite; + NSString *mySQLVersion; + NSUserDefaults *prefs; + + NSMenu *selectEncodingMenu; + BOOL _supportsEncoding; + NSString *_encoding; + + NSToolbar *mainToolbar; + NSToolbarItem *chooseDatabaseToolbarItem; +} + +//start sheet +- (IBAction)connectToDB:(id)sender; +- (IBAction)connect:(id)sender; +- (IBAction)closeSheet:(id)sender; +- (IBAction)chooseFavorite:(id)sender; +- (id)selectedFavorite; +- (NSString *)selectedFavoritePassword; +- (void)connectSheetAddToFavorites:(id)sender; +- (void)addToFavoritesHost:(NSString *)host socket:(NSString *)socket + user:(NSString *)user password:(NSString *)password + port:(NSString *)port database:(NSString *)database + useSSH:(BOOL)useSSH // no-longer in use + sshHost:(NSString *)sshHost // no-longer in use + sshUser:(NSString *)sshUser // no-longer in use + sshPassword:(NSString *)sshPassword // no-longer in use + sshPort:(NSString *)sshPort; // no-longer in use +- (NSMutableArray *)favorites; + +//alert sheets method +- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(NSString *)contextInfo; + +//connection getter +- (CMMCPConnection *)sharedConnection; + +//database methods +- (IBAction)setDatabases:(id)sender; +- (IBAction)chooseDatabase:(id)sender; +- (IBAction)addDatabase:(id)sender; +- (IBAction)closeDatabaseSheet:(id)sender; +- (IBAction)removeDatabase:(id)sender; + +//console methods +- (void)toggleConsole:(id)sender; +- (void)clearConsole:(id)sender; +- (BOOL)consoleIsOpened; +- (void)showMessageInConsole:(NSString *)message; +- (void)showErrorInConsole:(NSString *)error; + +//encoding methods +- (void)setEncoding:(NSString *)encoding; +- (void)detectEncoding; +- (IBAction)chooseEncoding:(id)sender; +- (BOOL)supportsEncoding; +- (void)updateEncodingMenuWithSelectedEncoding:(NSString *)encoding; +- (NSString *)encodingNameFromMySQLEncoding:(NSString *)mysqlEncoding; +- (NSString *)mysqlEncodingFromDisplayEncoding:(NSString *)encodingName; + +//table methods +- (IBAction)showCreateTableSyntax:(id)sender; +- (IBAction)copyCreateTableSyntax:(id)sender; +- (IBAction)checkTable:(id)sender; +- (IBAction)analyzeTable:(id)sender; +- (IBAction)optimizeTable:(id)sender; +- (IBAction)repairTable:(id)sender; +- (IBAction)flushTable:(id)sender; +- (IBAction)checksumTable:(id)sender; + +//other methods +- (NSString *)host; +- (void)doPerformQueryService:(NSString *)query; +- (void)flushPrivileges:(id)sender; +- (void)showVariables:(id)sender; +- (void)closeConnection; + +//getter methods +- (NSString *)database; +- (NSString *)table; +- (NSString *)mySQLVersion; +- (NSString *)user; + +//notification center methods +- (void)willPerformQuery:(NSNotification *)notification; +- (void)hasPerformedQuery:(NSNotification *)notification; +- (void)applicationWillTerminate:(NSNotification *)notification; +- (void)tunnelStatusChanged:(NSNotification *)notification; + +//menu methods +- (BOOL)validateMenuItem:(NSMenuItem *)anItem; +- (IBAction)import:(id)sender; +- (IBAction)importCSV:(id)sender; +- (IBAction)export:(id)sender; +- (IBAction)exportTable:(id)sender; +- (IBAction)exportMultipleTables:(id)sender; +- (IBAction)viewStructure:(id)sender; +- (IBAction)viewContent:(id)sender; +- (IBAction)viewQuery:(id)sender; +- (IBAction)viewStatus:(id)sender; + +//toolbar methods +- (void)setupToolbar; +- (NSToolbarItem *)toolbar:(NSToolbar *)toolbar itemForItemIdentifier:(NSString *)itemIdentifier willBeInsertedIntoToolbar:(BOOL)flag; +- (NSArray *)toolbarAllowedItemIdentifiers:(NSToolbar*)toolbar; +- (NSArray *)toolbarDefaultItemIdentifiers:(NSToolbar*)toolbar; +- (BOOL)validateToolbarItem:(NSToolbarItem *)toolbarItem; +- (void)updateChooseDatabaseToolbarItemWidth; + +//NSDocument methods +- (NSString *)windowNibName; +- (void)windowControllerDidLoadNib:(NSWindowController *)aController; +- (void)windowWillClose:(NSNotification *)aNotification; + +//NSWindow delegate methods +- (BOOL)windowShouldClose:(id)sender; + +//SMySQL delegate methods +- (void)willQueryString:(NSString *)query; +- (void)queryGaveError:(NSString *)error; + +//splitView delegate methods +- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview; +- (float)splitView:(NSSplitView *)sender constrainMaxCoordinate:(float)proposedMax ofSubviewAt:(int)offset; +- (float)splitView:(NSSplitView *)sender constrainMinCoordinate:(float)proposedMin ofSubviewAt:(int)offset; +- (NSRect)splitView:(NSSplitView *)splitView additionalEffectiveRectOfDividerAtIndex:(int)dividerIndex; + + +//tableView datasource methods +- (int)numberOfRowsInTableView:(NSTableView *)aTableView; +- (id)tableView:(NSTableView *)aTableView + objectValueForTableColumn:(NSTableColumn *)aTableColumn + row:(int)rowIndex; + +//for freeing up memory +- (void)dealloc; + +@end + +extern NSString *TableDocumentFavoritesControllerSelectionIndexDidChange; +extern NSString *TableDocumentFavoritesControllerFavoritesDidChange; |