// // $Id$ // // SPIndexesController.h // sequel-pro // // Created by Stuart Connolly (stuconnolly.com) on June 13, 2010 // Copyright (c) 2009 Stuart Connolly. All rights reserved. // // 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/> #ifndef SP_REFACTOR @class SPDatabaseDocument, SPTablesList, SPTableData, SPTableStructure, SPMySQLConnection, BWAnchoredButtonBar, SPTableView; #else @class SPDatabaseDocument, SPTablesList, SPTableData, SPTableStructure, SPMySQLConnection, SPTableView; #endif @interface SPIndexesController : NSWindowController #ifdef SP_REFACTOR <NSTableViewDelegate, NSTableViewDataSource> #endif { // Controllers IBOutlet SPDatabaseDocument *dbDocument; IBOutlet SPTableStructure *tableStructure; IBOutlet SPTablesList *tablesList; IBOutlet SPTableData *tableData; // Index table view IBOutlet SPTableView *indexesTableView; IBOutlet NSButton *addIndexButton; IBOutlet NSButton *removeIndexButton; // New index sheet IBOutlet NSPopUpButton *indexTypePopUpButton; IBOutlet NSTextField *indexNameTextField; IBOutlet NSTableView *indexedColumnsTableView; IBOutlet NSScrollView *indexedColumnsScrollView; IBOutlet NSTextField *indexTypeLabel; IBOutlet NSTextField *indexNameLabel; IBOutlet NSTableColumn *indexSizeTableColumn; IBOutlet NSButton *addIndexedColumnButton; IBOutlet NSButton *removeIndexedColumnButton; IBOutlet NSButton *confirmAddIndexButton; #ifndef SP_REFACTOR IBOutlet BWAnchoredButtonBar *anchoredButtonBar; // Advanced options view IBOutlet NSButton *indexAdvancedOptionsViewButton; IBOutlet NSView *indexAdvancedOptionsView; IBOutlet NSButton *indexAdvancedOptionsViewLabelButton; IBOutlet NSPopUpButton *indexStorageTypePopUpButton; IBOutlet NSTextField *indexKeyBlockSizeTextField; #endif BOOL _mainNibLoaded; NSString *table; NSMutableArray *fields, *indexes, *indexedFields; NSArray *supportsLength, *requiresLength; #ifndef SP_REFACTOR /* ivars */ NSUserDefaults *prefs; #endif SPMySQLConnection *connection; #ifndef SP_REFACTOR /* ivars */ BOOL showAdvancedView; NSInteger heightOffset; NSUInteger windowMinWidth; NSUInteger windowMinHeigth; #endif } #ifdef SP_REFACTOR @property (assign) SPTableView* indexesTableView; @property (assign) SPTableStructure* tableStructure; @property (assign) NSButton* addIndexButton; @property (assign) NSButton* removeIndexButton; - (void)setDatabaseDocument:(SPDatabaseDocument*)db; #endif /** * @property table The table currently being viewed */ @property (readwrite, retain) NSString *table; /** * @property connection The MySQL connection to use */ @property (readwrite, assign) SPMySQLConnection *connection; - (IBAction)addIndex:(id)sender; - (IBAction)removeIndex:(id)sender; - (IBAction)chooseIndexType:(id)sender; - (IBAction)closeSheet:(id)sender; - (IBAction)addIndexedField:(id)sender; - (IBAction)removeIndexedField:(id)sender; - (IBAction)toggleAdvancedIndexOptionsView:(id)sender; - (void)setFields:(NSArray *)tableFields; - (void)setIndexes:(NSArray *)tableIndexes; @end