コード例 #1
0
		public bool ShowTableEditorDialog (IEditSchemaProvider schemaProvider, TableSchema table, bool create)
		{
			TableEditorSettings settings = new TableEditorSettings ();
			settings.ConstraintSettings.CheckSettings.SupportsColumnConstraints = false;
			TableEditorDialog dlg = new TableEditorDialog (schemaProvider, create, settings);
			dlg.Initialize (table);
			return RunDialog (dlg);
コード例 #2
0
		public bool ShowTableEditorDialog (IEditSchemaProvider schemaProvider, TableSchema table, bool create)
		{
			TableEditorSettings settings = new TableEditorSettings ();
			TableEditorDialog dlg = new TableEditorDialog (schemaProvider, create, settings);
			dlg.Initialize (table);

			return RunDialog (dlg);
コード例 #3
0
		public bool ShowViewEditorDialog (IEditSchemaProvider schemaProvider, ViewSchema view, bool create)
		{
			ViewEditorSettings settings = new ViewEditorSettings ();
			ViewEditorDialog dlg = new ViewEditorDialog (schemaProvider, create, settings);
			dlg.Initialize (view);

			return RunDialog (dlg);
コード例 #4
0
        protected void OnInsertQueryOnNewWindow()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;
            SqlQueryView        view           = new SqlQueryView();

            view.SelectedConnectionContext = node.ConnectionContext;
            view.TextEditor.Insert(0, schemaProvider.GetInsertQuery(node.Table));
            IdeApp.Workbench.OpenDocument(view, true);
        }
コード例 #5
0
        public bool ShowProcedureEditorDialog(IEditSchemaProvider schemaProvider, ProcedureSchema procedure, bool create)
        {
            ProcedureEditorSettings settings = new ProcedureEditorSettings();

            settings.ShowName = false;
            ProcedureEditorDialog dlg = new ProcedureEditorDialog(schemaProvider, create, settings);

            dlg.Initialize(procedure);
            return(RunDialog(dlg));
        }
コード例 #6
0
        public bool ShowTableEditorDialog(IEditSchemaProvider schemaProvider, TableSchema table, bool create)
        {
            TableEditorSettings settings = new TableEditorSettings();

            settings.ConstraintSettings.CheckSettings.SupportsColumnConstraints = false;
            TableEditorDialog dlg = new TableEditorDialog(schemaProvider, create, settings);

            dlg.Initialize(table);
            return(RunDialog(dlg));
        }
コード例 #7
0
        private void OnCreateProcedureThreaded(object state)
        {
            object[] objs = state as object[];

            IEditSchemaProvider provider = objs[0] as IEditSchemaProvider;
            ProcedureSchema     proc     = objs[1] as ProcedureSchema;
            BaseNode            node     = objs[2] as BaseNode;

            provider.CreateProcedure(proc);
            node.Refresh();
        }
コード例 #8
0
        protected void OnAlterTable()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IDbFactory          fac            = node.ConnectionContext.DbFactory;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            if (fac.GuiProvider.ShowTableEditorDialog(schemaProvider, node.Table, false))
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(OnAlterTableThreaded), CurrentNode.DataItem);
            }
        }
コード例 #9
0
        private void OnCreateViewThreaded(object state)
        {
            object[] objs = state as object[];

            IEditSchemaProvider provider = objs[0] as IEditSchemaProvider;
            ViewSchema          view     = objs[1] as ViewSchema;
            BaseNode            node     = objs[2] as BaseNode;

            provider.CreateView(view);
            node.Refresh();
        }
コード例 #10
0
        private void OnCreateUserThreaded(object state)
        {
            object[] objs = state as object[];

            IEditSchemaProvider provider = objs[0] as IEditSchemaProvider;
            UserSchema          user     = objs[1] as UserSchema;
            BaseNode            node     = objs[2] as BaseNode;

            provider.CreateUser(user);
            node.Refresh();
        }
コード例 #11
0
        protected void OnAlterProcedure()
        {
            ProcedureNode       node           = CurrentNode.DataItem as ProcedureNode;
            IDbFactory          fac            = node.ConnectionContext.DbFactory;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;
            ProcedureSchema     alterProc      = (ProcedureSchema)node.Procedure.Clone();

            if (fac.GuiProvider.ShowProcedureEditorDialog(schemaProvider, alterProc, false))
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(OnAlterProcedureThreaded), alterProc);
            }
        }
コード例 #12
0
        public bool ShowTableEditorDialog(IEditSchemaProvider schemaProvider, TableSchema table, bool create)
        {
            TableEditorSettings settings = new TableEditorSettings();

            // SQLite doesn't support "NO ACTION" on "Foreign Key"
            settings.ConstraintSettings.ForeignKeySettings.SupportsNoAction = false;
            TableEditorDialog dlg = new TableEditorDialog(schemaProvider, create, settings);

            dlg.Initialize(table);

            return(RunDialog(dlg));
        }
コード例 #13
0
        protected void OnCreateUser()
        {
            BaseNode            node           = CurrentNode.DataItem as BaseNode;
            IDbFactory          fac            = node.ConnectionContext.DbFactory;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;
            UserSchema          user           = schemaProvider.CreateUserSchema("NewUser");

            if (fac.GuiProvider.ShowUserEditorDialog(schemaProvider, user, true))
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(OnCreateUserThreaded), new object[] { schemaProvider, user, node } as object);
            }
        }
コード例 #14
0
        protected void OnShowDefinitionOnCurrentWindow()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            if (IdeApp.Workbench.ActiveDocument.IsFile && !IdeApp.Workbench.ActiveDocument.IsViewOnly)
            {
                IdeApp.Workbench.ActiveDocument.Editor.InsertAtCaret(schemaProvider.GetTableCreateStatement(node.Table));
            }
            else
            {
                MessageService.ShowError(AddinCatalog.GetString("Cannot insert text into the current window."));
            }
        }
コード例 #15
0
        protected void OnDeleteQueryOnCurrentWindow()
        {
            TableNode           node           = CurrentNode.DataItem as TableNode;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            if (IdeApp.Workbench.ActiveDocument.IsFile && !IdeApp.Workbench.ActiveDocument.IsViewOnly)
            {
                IdeApp.Workbench.ActiveDocument.TextEditor.InsertText(IdeApp.Workbench.ActiveDocument.TextEditor.CursorPosition,
                                                                      schemaProvider.GetDeleteQuery(node.Table));
            }
            else
            {
                MessageService.ShowError(AddinCatalog.GetString("Cannot insert text into the current window."));
            }
        }
コード例 #16
0
        private void OnDropDatabaseThreaded(object state)
        {
            DatabaseConnectionContext context = (DatabaseConnectionContext)CurrentNode.DataItem;

            try {
                context.ConnectionPool.Initialize();
                ISchemaProvider     provider       = context.SchemaProvider;
                DatabaseSchema      db             = provider.CreateDatabaseSchema(context.ConnectionSettings.Database);
                IEditSchemaProvider schemaProvider = (IEditSchemaProvider)context.SchemaProvider;
                schemaProvider.DropDatabase(db);
                ConnectionContextService.RemoveDatabaseConnectionContext(context);
            } catch (Exception ex) {
                DispatchService.GuiDispatch(delegate {
                    MessageService.ShowException(ex);
                });
            }
        }
コード例 #17
0
        public ProcedureEditorDialog(IEditSchemaProvider schemaProvider, bool create, ProcedureEditorSettings settings)
        {
            if (schemaProvider == null)
            {
                throw new ArgumentNullException("schemaProvider");
            }

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

            this.Build();

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

            notebook = new Notebook();

            sqlEditor              = new SqlEditorWidget();
            sqlEditor.TextChanged += new EventHandler(SqlChanged);
            notebook.AppendPage(sqlEditor, new Label(AddinCatalog.GetString("Definition")));

            if (settings.ShowComment)
            {
                commentEditor = new CommentEditorWidget();
                notebook.AppendPage(commentEditor, new Label(AddinCatalog.GetString("Comment")));
            }

            if (!settings.ShowName)
            {
                nameLabel.Visible = false;
                entryName.Visible = false;
            }

            vboxContent.PackStart(notebook, true, true, 0);
            vboxContent.ShowAll();
            SetWarning(null);
        }
コード例 #18
0
        protected void OnCreateTable()
        {
            BaseNode            node           = CurrentNode.DataItem as BaseNode;
            IDbFactory          fac            = node.ConnectionContext.DbFactory;
            IEditSchemaProvider schemaProvider = (IEditSchemaProvider)node.ConnectionContext.SchemaProvider;

            // Need to detect if it is a previous (saved) table with the same name.
            string name    = AddinCatalog.GetString("NewTable");
            int    lastIdx = 0;
            TableSchemaCollection tables = schemaProvider.GetTables();

            for (int t = tables.Count - 1; t > -1; t--)
            {
                if (tables[t].Name.ToLower() == name.ToLower())
                {
                    name = string.Concat(name, "1");
                    break;
                }
                else if (tables[t].Name.StartsWith(name, StringComparison.OrdinalIgnoreCase))
                {
                    string idx = tables[t].Name.Substring(name.Length);
                    int    newIdx;
                    if (int.TryParse(idx, out newIdx))
                    {
                        lastIdx = newIdx;
                        break;
                    }
                }
            }
            if (lastIdx != 0)
            {
                name = String.Concat(name, lastIdx + 1);
            }

            TableSchema table = schemaProvider.CreateTableSchema(name);

            if (fac.GuiProvider.ShowTableEditorDialog(schemaProvider, table, true))
            {
                ThreadPool.QueueUserWorkItem(new WaitCallback(OnCreateTableThreaded), new object[] { schemaProvider, table, node } as object);
            }
        }
コード例 #19
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 ();
		}
コード例 #20
0
		public ProcedureEditorDialog (IEditSchemaProvider schemaProvider, bool create, ProcedureEditorSettings settings)
		{
			if (schemaProvider == null)
				throw new ArgumentNullException ("schemaProvider");
			
			this.settings = settings;
			this.schemaProvider = schemaProvider;
			this.action = create ? SchemaActions.Create : SchemaActions.Alter;
			
			this.Build();
			
			if (create)
				Title = AddinCatalog.GetString ("Create Procedure");
			else
				Title = AddinCatalog.GetString ("Alter Procedure");
			
			notebook = new Notebook ();

			sqlEditor = new SqlEditorWidget ();
			sqlEditor.TextChanged += new EventHandler (SqlChanged);
			notebook.AppendPage (sqlEditor, new Label (AddinCatalog.GetString ("Definition")));
			
			if (settings.ShowComment) {
				commentEditor = new CommentEditorWidget ();
				notebook.AppendPage (commentEditor, new Label (AddinCatalog.GetString ("Comment")));
			}
			
			if (!settings.ShowName) {
				nameLabel.Visible = false;
				entryName.Visible = false;
			}

			vboxContent.PackStart (notebook, true, true, 0);
			vboxContent.ShowAll ();
			SetWarning (null);
		}
コード例 #21
0
        private void RenameItemThreaded(object state)
        {
            object[] objs = state as object[];

            TableNode           node     = objs[0] as TableNode;
            string              newName  = objs[1] as string;
            IEditSchemaProvider provider = (IEditSchemaProvider)node.Table.SchemaProvider;

            if (provider.IsValidName(newName))
            {
                provider.RenameTable(node.Table, newName);
                node.Refresh();
            }
            else
            {
                DispatchService.GuiDispatch(delegate() {
                    MessageService.ShowError(String.Format(
                                                 "Unable to rename table '{0}' to '{1}'!",
                                                 node.Table.Name, newName
                                                 ));
                });
            }
            node.Refresh();
        }
コード例 #22
0
 bool IGuiProvider.ShowUserEditorDialog(IEditSchemaProvider schemaProvider, UserSchema user, bool create)
 {
     return false;
 }
コード例 #23
0
 public bool ShowUserEditorDialog(IEditSchemaProvider schemaProvider, UserSchema user, bool create)
 {
     return(false);            //TODO: implement ShowUserEditorDialog
 }
コード例 #24
0
		public bool ShowTableEditorDialog (IEditSchemaProvider schemaProvider, TableSchema table, bool create)
		{
			TableEditorSettings settings = new TableEditorSettings ();
			// SQLite doesn't support "NO ACTION" on "Foreign Key"
			settings.ConstraintSettings.ForeignKeySettings.SupportsNoAction = false;
			TableEditorDialog dlg = new TableEditorDialog (schemaProvider, create, settings);
			dlg.Initialize (table);

			return RunDialog (dlg);
コード例 #25
0
 public bool ShowUserEditorDialog(IEditSchemaProvider schemaProvider, UserSchema user, bool create)
 {
     throw new NotImplementedException();
 }
コード例 #26
0
		public bool ShowProcedureEditorDialog (IEditSchemaProvider schemaProvider, ProcedureSchema procedure, bool create)
		{
			ProcedureEditorSettings settings = new ProcedureEditorSettings ();
			ProcedureEditorDialog dlg = new ProcedureEditorDialog (schemaProvider, create, settings);
			dlg.Initialize (procedure);

			return RunDialog (dlg);
コード例 #27
0
		public bool ShowUserEditorDialog (IEditSchemaProvider schemaProvider, UserSchema user, bool create)
		{
			throw new NotImplementedException ();
コード例 #28
0
 public bool ShowProcedureEditorDialog(IEditSchemaProvider schemaProvider, ProcedureSchema procedure, bool create)
 {
     throw new NotImplementedException();
 }
コード例 #29
0
 public bool ShowTableEditorDialog(IEditSchemaProvider schemaProvider, TableSchema table, bool create)
 {
     throw new NotImplementedException();
 }
コード例 #30
0
 public bool ShowViewEditorDialog(IEditSchemaProvider schemaProvider, ViewSchema view, bool create)
 {
     throw new NotImplementedException();
 }
コード例 #31
0
		public bool ShowTableEditorDialog (IEditSchemaProvider schemaProvider, TableSchema table, bool create)
		{
			throw new NotImplementedException ();
コード例 #32
0
		public bool ShowProcedureEditorDialog (IEditSchemaProvider schemaProvider, ProcedureSchema procedure, bool create)
		{
			throw new NotImplementedException ();
コード例 #33
0
		public bool ShowUserEditorDialog (IEditSchemaProvider schemaProvider, UserSchema user, bool create)
		{
			return false; //TODO: implement ShowUserEditorDialog
コード例 #34
0
		public bool ShowViewEditorDialog (IEditSchemaProvider schemaProvider, ViewSchema view, bool create)
		{
			throw new NotImplementedException ();