protected virtual void OkClicked(object sender, EventArgs e)
        {
            if (context.IsTemporary)
            {
                try {
                    //make it a real connection context and fill in the database
                    IConnectionPool pool = DbFactoryService.CreateConnectionPool(DatabaseConnection);
                    pool.Initialize();
                    ISchemaProvider provider = DbFactoryService.CreateSchemaProvider(DatabaseConnection,
                                                                                     pool);

                    DatabaseSchema db = provider.CreateDatabaseSchema(settingsWidget.ConnectionSettings.Database);
                    OnBeforeDatabaseCreation(db);
                    ((AbstractEditSchemaProvider)provider).CreateDatabase(db);

                    context.ConnectionSettings.Database = settingsWidget.ConnectionSettings.Database;
                    context.ConnectionSettings.Name     = settingsWidget.ConnectionSettings.Name;
                    context.IsTemporary = false;
                    MessageService.ShowMessage(AddinCatalog.GetString("Database has been created."));
                    ConnectionContextService.AddDatabaseConnectionContext(context);
                } catch (Exception ex) {
                    QueryService.RaiseException(ex);
                    Respond(ResponseType.Close);
                    return;
                }
            }
            Respond(ResponseType.Ok);
        }
        public override void BuildNode(ITreeBuilder builder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
        {
            label = AddinCatalog.GetString("Database Connections");
            icon  = Context.GetIcon("md-db-connection");

            this.builder = builder;
        }
Exemplo n.º 3
0
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo)
        {
            nodeInfo.Label = AddinCatalog.GetString("Groups");
            nodeInfo.Icon  = Context.GetIcon("md-db-tables");

            BaseNode node = (BaseNode)dataObject;
        }
Exemplo n.º 4
0
        public UserEditorDialog(ISchemaProvider schemaProvider, UserSchema user, bool create)
        {
            this.Build();

            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }
            if (user == null)
            {
                throw new ArgumentNullException("user");
            }

            this.schemaProvider = schemaProvider;
            this.user           = user;
            this.action         = create ? SchemaActions.Create : SchemaActions.Alter;

            this.Build();

            if (create)
            {
                Title = AddinCatalog.GetString("Create User");
            }
            else
            {
                Title = AddinCatalog.GetString("Alter User");
            }

            notebook = new Notebook();
            vboxContent.PackStart(notebook, true, true, 0);
            vboxContent.ShowAll();
        }
        public virtual bool ValidateFields()
        {
            bool ok = false;

            if (checkCustom.Active)
            {
                ok = textConnectionString.Buffer.Text.Length > 0;
            }
            else
            {
                bool     alreadyExists = ConnectionContextService.DatabaseConnectionContextExist(ConnectionSettings);
                TreeIter iter;
                ok = entryName.Text.Length > 0 &&
                     (entryServer.Text.Length > 0 || !enableServerEntry) &&
                     (entryUsername.Text.Length > 0 || !enableUsernameEntry) &&
                     (comboDatabase.Entry.Text.Length > 0) &&
                     (!alreadyExists || (isEditMode && ConnectionSettings.Name == entryName.Text));
                if (alreadyExists && !isEditMode)
                {
                    labelMessage.Markup = string.Concat("<i>",
                                                        AddinCatalog.GetString("Connection Name Already used, choose another."), "</i>");
                }
                else
                {
                    labelMessage.Markup = "";
                }
            }
            return(ok);
        }
Exemplo n.º 6
0
        public override void BuildNode(ITreeBuilder builder, object dataObject, NodeInfo nodeInfo)
        {
            nodeInfo.Label = AddinCatalog.GetString("Database Connections");
            nodeInfo.Icon  = Context.GetIcon("md-db-connection");

            this.builder = builder;
        }
Exemplo n.º 7
0
        public TableEditorDialog(IEditSchemaProvider schemaProvider, bool create, TableEditorSettings settings)
        {
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }

            this.schemaProvider = schemaProvider;
            this.action         = create ? SchemaActions.Create : SchemaActions.Alter;
            this.settings       = settings;

            this.Build();

            if (create)
            {
                Title = AddinCatalog.GetString("Create Table");
            }
            else
            {
                Title = AddinCatalog.GetString("Alter Table");
            }

            notebook = new Notebook();
            vboxContent.PackStart(notebook, true, true, 0);

            notebook.Sensitive = false;
            ThreadPool.QueueUserWorkItem(new WaitCallback(InitializeThreaded));
            vboxContent.ShowAll();
        }
Exemplo n.º 8
0
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
        {
            label = AddinCatalog.GetString("Languages");
            icon  = Context.GetIcon("md-db-tables");

            BaseNode node = (BaseNode)dataObject;
        }
Exemplo n.º 9
0
        public MySqlCreateDatabaseDialog(IDbFactory factory) : base(factory)
        {
            createDBWidget = new MySqlCreateDatabaseWidget();
            Notebook.AppendPage(createDBWidget,
                                new Label(AddinCatalog.GetString("Database Properties")));
            Notebook.ShowTabs = true;
            Gtk.Notebook nb = Notebook;

            nb.SwitchPage += delegate(object o, SwitchPageArgs args) {
                if (nb.CurrentPage == 1)
                {
                    if (!connectionWidget.ValidateFields())
                    {
                        nb.CurrentPage = 0;
                        MessageService.ShowError(this,
                                                 AddinCatalog.GetString("Set the connection properties before the database properties."));
                    }
                    else
                    {
                        Initialize(factory);
                        if (DatabaseConnection.ConnectionPool.HasErrors)
                        {
                            MessageService.ShowError(DatabaseConnection.ConnectionPool.Error);
                            nb.CurrentPage = 0;
                            return;
                        }
                        createDBWidget.Initialize((MySqlSchemaProvider)DatabaseConnection.SchemaProvider);
                    }
                }
            };

            Notebook.ShowAll();
        }
Exemplo n.º 10
0
        public virtual bool ValidateSchemaObjects(out string msg)
        {
            TreeIter iter;

            if (store.GetIterFirst(out iter))
            {
                do
                {
                    string name   = store.GetValue(iter, colNameIndex) as string;
                    string column = store.GetValue(iter, colColumnNameIndex) as string;
                    string source = store.GetValue(iter, colSourceIndex) as string;
                    bool   iscolc = (bool)store.GetValue(iter, colIsColumnConstraintIndex);

                    if (String.IsNullOrEmpty(source))
                    {
                        msg = AddinCatalog.GetString("Checked constraint '{0}' does not contain a check statement.", name);
                        return(false);
                    }

                    if (iscolc && String.IsNullOrEmpty(column))
                    {
                        msg = AddinCatalog.GetString("Checked constraint '{0}' is marked as a column constraint but is not applied to a column.", name);
                        return(false);
                    }
                } while (store.IterNext(ref iter));
            }
            msg = null;
            return(true);
        }
Exemplo n.º 11
0
        public static void ShowDialog(string text)
        {
            if (dlg == null)
            {
                dlg = new WaitDialog();
            }

            if (text == null)
            {
                dlg.label.Markup = AddinCatalog.GetString("Please Wait");
            }
            else
            {
                dlg.label.Markup = text;
            }

            dlg.ShowAll();
            if (!isRunning)
            {
                isRunning = true;
                ThreadPool.QueueUserWorkItem(new WaitCallback(ProgressUpdate));
            }
            else
            {
                dlg.Present();
            }
        }
Exemplo n.º 12
0
        public IEnumerable <CA.IViolation> Run(string inspectedFile, IEnumerable <CA.IRule> ruleSet)
        {
            // FIXME: add support for ruleSet parameter
            // TODO: use MonoDevelop process APIs instead of System.Diagnostics
            string arguments = "-xml";

            ProcessStartInfo startInfo = new ProcessStartInfo("mono");

            // runtime needs to be defined explicitly (or somewhy 1.1 can be loaded)
            startInfo.Arguments = string.Format("--runtime=v2.0.50727 {0} {1} {2}",
                                                smokey.CodeBase, arguments, inspectedFile);
            startInfo.RedirectStandardOutput = true;
            startInfo.UseShellExecute        = false;

            Process smokeyProcess = null;

            try {
                smokeyProcess = Process.Start(startInfo);
                return(SmokeyParser.ParseOutput(smokeyProcess.StandardOutput, ruleSet));
            } catch (Exception ex) {
                throw new InvalidOperationException(AddinCatalog.GetString("Could not run Smokey or parse its output."), ex);
            } finally {
                if (smokey != null)
                {
                    smokeyProcess.Dispose();
                }
            }
        }
        protected virtual void OnButtonOpenClicked(object sender, System.EventArgs e)
        {
            FileChooserDialog dlg = new FileChooserDialog(
                AddinCatalog.GetString("Open Script"), null, FileChooserAction.Open,
                "gtk-cancel", ResponseType.Cancel,
                "gtk-open", ResponseType.Accept
                );

            dlg.SelectMultiple = false;
            dlg.LocalOnly      = true;
            dlg.Modal          = true;

            FileFilter filter = new FileFilter();

            filter.AddPattern("*.sql");
            filter.Name = AddinCatalog.GetString("SQL Scripts");
            FileFilter filterAll = new FileFilter();

            filterAll.AddPattern("*");
            filterAll.Name = AddinCatalog.GetString("All files");
            dlg.AddFilter(filter);
            dlg.AddFilter(filterAll);

            try {
                if (dlg.Run() == (int)ResponseType.Accept)
                {
                    using (StreamReader reader = File.OpenText(dlg.Filename)) {
                        sqlEditor.Text = reader.ReadToEnd();
                        reader.Close();
                    }
                }
            } finally {
                dlg.Destroy();
            }
        }
Exemplo n.º 14
0
        protected void OnImportFromFile()
        {
            FileChooserDialog dlg = new FileChooserDialog(
                AddinCatalog.GetString("Import From File"), null, FileChooserAction.Open,
                "gtk-cancel", ResponseType.Cancel,
                "gtk-open", ResponseType.Accept
                );

            dlg.SelectMultiple = false;
            dlg.LocalOnly      = true;
            dlg.Modal          = true;

            FileFilter filter = new FileFilter();

            filter.AddPattern("*.[sS][qQ][lL]");
            filter.Name = AddinCatalog.GetString("SQL files");
            FileFilter filterAll = new FileFilter();

            filterAll.AddPattern("*");
            filterAll.Name = AddinCatalog.GetString("All files");
            dlg.AddFilter(filter);
            dlg.AddFilter(filterAll);

            if (dlg.Run() == (int)ResponseType.Accept)
            {
                using (FileStream stream = File.Open(dlg.Filename, FileMode.Open)) {
                    using (StreamReader reader = new StreamReader(stream)) {
                        Text = reader.ReadToEnd();
                    }
                }
            }
            dlg.Destroy();
        }
Exemplo n.º 15
0
        public IEnumerable <IViolation> Run(string inspectedFile, IEnumerable <CA.IRule> ruleSet)
        {
            if (!File.Exists(inspectedFile))
            {
                throw new ArgumentException(AddinCatalog.GetString("File does not exist: '{0}'.", inspectedFile),
                                            "inspectedFile");
            }

            // assemblies
            base.Assemblies.Clear();
            AssemblyDefinition ad = AssemblyFactory.GetAssembly(inspectedFile);

            base.Assemblies.Add(ad);

            // rules
            base.Rules.Clear();
            foreach (CA.IRule rule in ruleSet)
            {
                base.Rules.Add(((GendarmeRule)rule).InternalRule);
            }

            // defects
            base.Reset();

            base.Initialize();
            base.Run();

            foreach (GF.Defect def in base.Defects)
            {
                yield return(new GendarmeViolation(def));
            }
        }
        public PrimaryKeyConstraintEditorWidget(ISchemaProvider schemaProvider, SchemaActions action)
        {
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }

            this.schemaProvider = schemaProvider;
            this.action         = action;

            this.Build();
            store        = new ListStore(typeof(string), typeof(string), typeof(object));
            listPK.Model = store;

            TreeViewColumn colName = new TreeViewColumn();

            colName.Title = AddinCatalog.GetString("Name");
            CellRendererText nameRenderer = new CellRendererText();

            nameRenderer.Editable = true;
            nameRenderer.Edited  += new EditedHandler(NameEdited);

            colName.PackStart(nameRenderer, true);
            colName.AddAttribute(nameRenderer, "text", colNameIndex);
            listPK.AppendColumn(colName);

            listPK.Selection.Changed     += new EventHandler(SelectionChanged);
            columnSelecter.ColumnToggled += new EventHandler(ColumnToggled);

            ShowAll();
        }
 protected virtual void DatabaseChanged(object sender, EventArgs e)
 {
     if (isDatabaseListEmpty && comboDatabase.Entry.Text == AddinCatalog.GetString("No databases found!"))
     {
         comboDatabase.Entry.Text = String.Empty;
     }
     CheckSettings(true);
 }
Exemplo n.º 18
0
 /// <summary>
 /// Informs the GUI that analysis has finished.
 /// </summary>
 public static void AnalysisFinished()
 {
     DispatchService.GuiDispatch(delegate {
         IdeApp.Workbench.StatusBar.EndProgress();
         IdeApp.Workbench.StatusBar.ShowMessage(AddinCatalog.GetString("Analysis has finished."));
         ResetProgressBar();
     });
 }
Exemplo n.º 19
0
 /// <summary>
 /// Informs the GUI that analysis has started.
 /// </summary>
 public static void AnalysisStarted(string entryName)
 {
     DispatchService.GuiDispatch(delegate {
         ResetProgressBar();
         IdeApp.Workbench.StatusBar.BeginProgress(AddinCatalog.GetString("Analyzing {0}...", entryName));
         TaskService.Errors.Clear();
     });
 }
Exemplo n.º 20
0
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo)
        {
            nodeInfo.Label = AddinCatalog.GetString("Tables");
            nodeInfo.Icon  = Context.GetIcon("md-db-tables");
            BaseNode node = (BaseNode)dataObject;

            node.RefreshEvent += RefreshHandler;
        }
Exemplo n.º 21
0
        private void OnEmptyTableCallback(IPooledDbConnection connection, int result, object state)
        {
            connection.Release();

            DispatchService.GuiDispatch(delegate() {
                IdeApp.Workbench.StatusBar.ShowMessage(AddinCatalog.GetString("Table emptied"));
            });
        }
Exemplo n.º 22
0
        public static CA.IRule GetProxy(GF.IRule rule)
        {
            if (!boundProxies.ContainsKey(rule))
            {
                throw new ArgumentException(AddinCatalog.GetString("{0} rule has not been cached but it should.", rule), "rule");
            }

            return(boundProxies [rule]);
        }
Exemplo n.º 23
0
        protected void OnInsertQueryOnClipboard()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            Gtk.Clipboard clp = Clipboard.Get(Gdk.Selection.Clipboard);
            clp.Text = schemaProvider.GetInsertQuery(node.Table);
            MessageService.ShowMessage(AddinCatalog.GetString("INSERT INTO Statement has been copied to Clipboard."));
        }
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
        {
            label = AddinCatalog.GetString("Procedures");
            icon  = Context.GetIcon("md-db-procedure");

            BaseNode node = (BaseNode)dataObject;

            node.RefreshEvent += RefreshHandler;
        }
        protected virtual void TestClicked(object sender, System.EventArgs e)
        {
            //TODO: use a Thread object, so the thread can be aborted when the entered values change
            DatabaseConnectionSettings settingsCopy = CreateDatabaseConnectionSettings();

            labelTest.Text       = AddinCatalog.GetString("Trying to connect to database ...");
            buttonTest.Sensitive = false;
            ThreadPool.QueueUserWorkItem(new WaitCallback(TestClickedThreaded), settingsCopy);
        }
Exemplo n.º 26
0
        protected void OnShowDefinitionOnClipboard()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            Gtk.Clipboard clp = Clipboard.Get(Gdk.Selection.Clipboard);
            clp.Text = schemaProvider.GetTableCreateStatement(node.Table);
            MessageService.ShowMessage(AddinCatalog.GetString("CREATE Statement has been copied to Clipboard."));
        }
Exemplo n.º 27
0
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo)
        {
            nodeInfo.Label = AddinCatalog.GetString("Users");
            nodeInfo.Icon  = Context.GetIcon("md-db-users");

            BaseNode node = (BaseNode)dataObject;

            RefreshHandler += new EventHandler(OnRefreshEvent);
        }
        public override void BuildNode(ITreeBuilder treeBuilder, object dataObject, ref string label, ref Gdk.Pixbuf icon, ref Gdk.Pixbuf closedIcon)
        {
            label = AddinCatalog.GetString("Users");
            icon  = Context.GetIcon("md-db-users");

            BaseNode node = (BaseNode)dataObject;

            RefreshHandler += new EventHandler(OnRefreshEvent);
        }
Exemplo n.º 29
0
        protected void OnRemoveConnection()
        {
            DatabaseConnectionContext context = (DatabaseConnectionContext)CurrentNode.DataItem;

            if (MessageService.Confirm(
                    AddinCatalog.GetString("Are you sure you want to remove connection '{0}'?", context.ConnectionSettings.Name),
                    AlertButton.Remove))
            {
                ConnectionContextService.RemoveDatabaseConnectionContext(context);
            }
        }
Exemplo n.º 30
0
        private void StopClicked(object sender, EventArgs e)
        {
            SetQueryState(false, AddinCatalog.GetString("Query execute cancelled"));

            //since we can't abort a threadpool task, each task is assigned a unique state
            //when stop is pressed, the state is added to the list of results that need
            //to be discarded when they get in
            if (!stoppedQueries.Contains(currentQueryState))
            {
                stoppedQueries.Add(currentQueryState);
            }
        }