Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Experiments / Attic / Generator / Castle.ActiveRecord.Generator / Actions / AddDatabaseAction.cs
blobc0455bc7fe0785b3408ec62da35f4fc037dfe72e
1 // Copyright 2004-2008 Castle Project - http://www.castleproject.org/
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
15 namespace Castle.ActiveRecord.Generator.Actions
17 using System;
18 using System.Windows.Forms;
20 using Castle.ActiveRecord.Generator.Dialogs;
21 using Castle.ActiveRecord.Generator.Components.Database;
24 public class AddDatabaseAction : AbstractAction
26 private System.Windows.Forms.ToolBarButton toolBarButton1;
28 public AddDatabaseAction()
30 this.toolBarButton1 = new System.Windows.Forms.ToolBarButton();
33 #region IAction Members
35 public override void Install(IWorkspace workspace, object parentMenu, object parentGroup)
37 base.Install(workspace, parentMenu, parentGroup);
39 //
40 // toolBarButton1
41 //
42 this.toolBarButton1.ImageIndex = ImageConstants.Database_Tables;
44 workspace.MainToolBar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[]
46 this.toolBarButton1
47 });
49 workspace.MainToolBar.ButtonClick +=
50 new ToolBarButtonClickEventHandler(MainToolBar_ButtonClick);
53 #endregion
55 private void MainToolBar_ButtonClick(object sender, ToolBarButtonClickEventArgs e)
57 if (e.Button == toolBarButton1)
59 using(DatabaseConnectionDialog dialog = new DatabaseConnectionDialog())
61 DialogResult result = dialog.ShowDialog(Workspace.ActiveWindow);
63 if (result == DialogResult.OK)
65 IDatabaseDefinitionBuilder defBuilder =
66 ServiceRegistry.Instance[ typeof(IDatabaseDefinitionBuilder) ] as IDatabaseDefinitionBuilder;
68 DatabaseDefinition def = defBuilder.Build(dialog.Alias, dialog.ConnectionString);
70 Model.CurrentProject.AddDatabaseDefinition(def);
72 Model.Update();