File: MGRTRoutineEditor.mm

package info (click to toggle)
mysql-gui-tools 5.0r14%2BopenSUSE-2.1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 116,956 kB
  • ctags: 48,715
  • sloc: sql: 341,918; pascal: 276,698; ansic: 91,020; cpp: 90,451; objc: 33,236; sh: 29,481; yacc: 10,756; xml: 10,589; java: 10,079; php: 2,806; python: 2,092; makefile: 1,783; perl: 4
file content (143 lines) | stat: -rw-r--r-- 2,629 bytes parent folder | download | duplicates (4)
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