1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
//
// MPreferenceEditor.m
// MySQLGUICommon
//
// Created by Alfredo Kojima on 1/8/05.
// Copyright 2005 MySQL AB. All rights reserved.
//
#import "MPreferenceEditor.h"
#import "MConnectionEditor.h"
#import "MNibOwner.h"
@implementation MPreferenceEditor
- (id)initForConnectionsFile:(NSString*)file
{
self= [super init];
if (self)
{
if (![NSBundle loadNibNamed:@"PreferencesEditor" owner:self])
{
NSLog(@"Could not load PreferencesEditor nib file");
[self release];
return nil;
}
_connectionEditor= [[MConnectionEditor alloc] initForFile:file];
[[tabView tabViewItemAtIndex:0] setView: _connectionEditor->topView];
_pages= [[NSMutableArray alloc] init];
}
return self;
}
- (id)registerPageNib:(NSString*)nibName withLabel:(NSString*)label
{
MNibOwner *owner= [[MNibOwner alloc] init];
NSTabViewItem *tabItem= [[NSTabViewItem alloc] initWithIdentifier:label];
if (![NSBundle loadNibNamed:nibName owner:owner])
NSLog(@"Can't load nib");
[tabItem setLabel:label];
[tabItem setView:owner->view];
[tabView addTabViewItem:tabItem];
[tabItem release];
[_pages addObject:owner];
[owner release];
return owner->controller;
}
- (id)registerMultiPageNib:(NSString*)nibName withLabels:(NSArray*)labels
{
MNibOwner *owner= [[MNibOwner alloc] init];
NSTabViewItem *tabItem;
unsigned int i;
if (![NSBundle loadNibNamed:nibName owner:owner])
NSLog(@"Can't load nib");
for (i= 0; i < [labels count]; i++)
{
tabItem= [[NSTabViewItem alloc] initWithIdentifier:[labels objectAtIndex:i]];
[tabItem setLabel:[labels objectAtIndex:i]];
switch (i)
{
case 0:
[tabItem setView:owner->view];
break;
case 1:
[tabItem setView:owner->view1];
break;
case 2:
[tabItem setView:owner->view2];
break;
case 3:
[tabItem setView:owner->view3];
break;
case 4:
[tabItem setView:owner->view4];
break;
case 5:
[tabItem setView:owner->view5];
break;
}
[tabView addTabViewItem:tabItem];
[tabItem release];
[_pages addObject:owner];
[owner release];
}
return owner->controller;
}
- (void)dealloc
{
[_pages release];
[_connectionEditor release];
[super dealloc];
}
- (NSWindow*)window
{
return window;
}
- (void)windowWillClose:(NSNotification *)aNotification
{
[_connectionEditor save:self];
if (_inModalLoop)
[NSApp stopModal];
[window orderOut:nil];
}
- (void)show
{
unsigned int i;
for (i= 0; i < [_pages count]; i++)
{
MNibOwner *owner= [_pages objectAtIndex:i];
if (owner->controller && [owner->controller respondsToSelector:@selector(willShow)])
[owner->controller performSelector:@selector(willShow)];
}
[window makeKeyAndOrderFront:nil];
}
- (int)runConnectionEditor
{
[window makeKeyAndOrderFront:nil];
_inModalLoop= YES;
return [NSApp runModalForWindow:window];
}
@end
|