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
|
//
// MGRTRoutineEditor.m
// MySQL GRT
//
// Created by Alfredo Kojima on 05/9/11.
// Copyright 2005 MySQL AB. All rights reserved.
//
#import "MGRTRoutineEditor.h"
#import "MGRT.h"
#include "MGRTValue.h"
#import <MySQLToolsCommon/mxUtils.h>
@implementation MGRTRoutineEditor
- (id)init
{
self= [super init];
if (self)
{
NSNib *nib= [[NSNib alloc] initWithNibNamed:@"GRTRoutineEditor"
bundle:[NSBundle bundleForClass:[self class]]];
if (![nib instantiateNibWithOwner:self topLevelObjects:nil])
NSLog(@"Error instantiating nib");
[nib release];
}
return self;
}
- (void)dealloc
{
delete _routine;
[_grt release];
[super dealloc];
}
- (void)awakeFromNib
{
[[editor textScrollView] setHasHorizontalScroller:NO];
[editor setAutoresizingMask:NSViewWidthSizable|NSViewHeightSizable];
}
- (NSView*)baseView
{
return baseView;
}
- (void)showObject
{
[nameText setStringValue:NSStr(_routine->get("name", "new_routine"))];
[[editor textView] setString:NSStr(_routine->get("routineCode", ""))];
}
- (void)setMGRT:(MGRT*)grt
{
[_grt release];
_grt= [grt retain];
}
- (void)saveChanges
{
NSString *sql= [[editor textView] string];
NSString *name, *type;
type= [_grt performModule:@"DbUtils"
stringFunction:@"getRoutineType"
arguments:[NSArray arrayWithObject:sql]];
if (type)
{
_routine->set("routineType", [type UTF8String]);
}
name= [_grt performModule:@"DbUtils"
stringFunction:@"getRoutineName"
arguments:[NSArray arrayWithObject:sql]];
if (name)
{
_routine->set("name", [name UTF8String]);
}
[nameText setStringValue:[NSString stringWithFormat:@"%@ %@", type?:@"routine", name?:@"?"]];
_routine->set("routineCode", [sql UTF8String]);
}
- (void)setRoutine:(MGRTValue*)routine
{
_routine= new MGRTValue(*routine);
[self showObject];
}
- (MGRTValue*)routine
{
return _routine;
}
- (void)setDelegate:(id)delegate
{
_delegate= delegate;
}
- (IBAction)deleteRoutine:(id)sender
{
[_delegate performSelector:@selector(routineEditorDelete:) withObject:self];
}
- (IBAction)toggleView:(id)sender
{
NSRect frame= [baseView frame];
if ([sender state] == NSOffState)
{
[editor setHidden:YES];
frame.size.height= 15;
_lastFrame= [editor frame];
[baseView setFrame:frame];
}
else
{
[editor setHidden:NO];
frame.size.height= 15 + NSHeight(_lastFrame);
[baseView setFrame:frame];
_lastFrame.size.width= NSWidth(frame);
[editor setFrame:_lastFrame];
}
}
@end
|