* Makefile.am:
[monodevelop.git] / extras / MonoDevelop.Database / MonoDevelop.Database.CodeGenerator / Commands / ToolCommands.cs
blob39fbfc610341502d4b188dff83ce61f30c194d96
1 //
2 // Authors:
3 // Ben Motmans <ben.motmans@gmail.com>
4 //
5 // Copyright (c) 2007 Ben Motmans
6 //
7 // Permission is hereby granted, free of charge, to any person obtaining
8 // a copy of this software and associated documentation files (the
9 // "Software"), to deal in the Software without restriction, including
10 // without limitation the rights to use, copy, modify, merge, publish,
11 // distribute, sublicense, and/or sell copies of the Software, and to
12 // permit persons to whom the Software is furnished to do so, subject to
13 // the following conditions:
14 //
15 // The above copyright notice and this permission notice shall be
16 // included in all copies or substantial portions of the Software.
17 //
18 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
22 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
23 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
24 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 using Gtk;
28 using System;
29 using MonoDevelop.Database.Sql;
30 using MonoDevelop.Core.Gui;
31 using MonoDevelop.Ide.Gui;
32 using MonoDevelop.Ide.Gui.Pads;
33 using MonoDevelop.Projects;
34 using MonoDevelop.Components.Commands;
35 using MonoDevelop.Core;
37 namespace MonoDevelop.Database.CodeGenerator
39 public enum ToolCommands
41 GenerateDataClasses
44 public class GenerateDataClassesHandler : CommandHandler
46 protected override void Run ()
48 GenerateDataClassesDialog dlg = new GenerateDataClassesDialog ();
49 try {
50 dlg.Run ();
51 } finally {
52 dlg.Destroy ();
56 protected override void Update (CommandInfo info)
58 int count = ConnectionContextService.DatabaseConnections.Count;
59 Solution combine = IdeApp.ProjectOperations.CurrentSelectedSolution;
60 if (count == 0 || combine == null) {
61 info.Enabled = false;
62 return;
65 //only enable the command if 1 or more code projects exist
66 foreach (SolutionItem entry in combine.Items) {
67 if (!(entry is DotNetProject))
68 continue;
70 DotNetProject proj = (DotNetProject)entry;
71 if (proj.LanguageBinding != null) {
72 info.Enabled = true;
73 break;