Beispiel #1
0
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        /// <param name="NodeStateIcon">The NodeStateIcon NodeControl that displays the icon</param>
        public DbMysqlTableColumnsListModel(IModelChangeListener listener, TreeViewAdv tree,
                                            MySQLTableColumnsListWrapper grtList,
                                            NodeIcon columnIconNodeControl, AdvNodeTextBox nameNodeControl, AdvNodeComboBox datatypeComboBoxNodeControl,
                                            NodeCheckBox pkNodeControl, NodeCheckBox nnNodeControl, NodeCheckBox uqNodeControl, NodeCheckBox binNodeControl,
                                            NodeCheckBox unNodeControl, NodeCheckBox zfNodeControl, NodeCheckBox aiNodeControl,
                                            NodeCheckBox gNodeControl, AdvNodeTextBox defaultNodeControl, MySQLTableEditorWrapper wrapper)
            : base(tree, grtList, columnIconNodeControl, true)
        {
            this.listener = listener;

            this.nameNodeControl             = nameNodeControl;
            this.datatypeComboBoxNodeControl = datatypeComboBoxNodeControl;
            this.pkNodeControl           = pkNodeControl;
            this.nnNodeControl           = nnNodeControl;
            this.uqNodeControl           = uqNodeControl;
            this.binNodeControl          = binNodeControl;
            this.unNodeControl           = unNodeControl;
            this.zfNodeControl           = zfNodeControl;
            this.aiNodeControl           = aiNodeControl;
            this.gNodeControl            = gNodeControl;
            this.defaultNodeControl      = defaultNodeControl;
            this.mySQLTableEditorWrapper = wrapper;

            // assign virtual value events for displaying and processing the edited value content
            nameNodeControl.EditorInitialize             += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded                  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed                  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            datatypeComboBoxNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            datatypeComboBoxNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            datatypeComboBoxNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);

            pkNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            pkNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            nnNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            nnNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            uqNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            uqNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            binNodeControl.ValueNeeded += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            binNodeControl.ValuePushed += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            unNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            unNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            zfNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            zfNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            aiNodeControl.ValueNeeded  += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            aiNodeControl.ValuePushed  += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            gNodeControl.ValueNeeded   += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            gNodeControl.ValuePushed   += new EventHandler <NodeControlValueEventArgs>(ValuePushed);

            defaultNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            defaultNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            defaultNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
        }
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        /// <param name="NodeStateIcon">The NodeStateIcon NodeControl that displays the icon</param>
        public DbMysqlTableColumnsListModel(IModelChangeListener listener, TreeViewAdv tree,
            MySQLTableColumnsListWrapper grtList,
            NodeIcon columnIconNodeControl, AdvNodeTextBox nameNodeControl, AdvNodeComboBox datatypeComboBoxNodeControl,
            NodeCheckBox pkNodeControl, NodeCheckBox nnNodeControl, NodeCheckBox uqNodeControl, NodeCheckBox binNodeControl,
            NodeCheckBox unNodeControl, NodeCheckBox zfNodeControl, NodeCheckBox aiNodeControl,
            NodeCheckBox gNodeControl, AdvNodeTextBox defaultNodeControl, MySQLTableEditorWrapper wrapper)
            : base(tree, grtList, columnIconNodeControl, true)
        {
            this.listener = listener;

              this.nameNodeControl = nameNodeControl;
              this.datatypeComboBoxNodeControl = datatypeComboBoxNodeControl;
              this.pkNodeControl = pkNodeControl;
              this.nnNodeControl = nnNodeControl;
              this.uqNodeControl = uqNodeControl;
              this.binNodeControl = binNodeControl;
              this.unNodeControl = unNodeControl;
              this.zfNodeControl = zfNodeControl;
              this.aiNodeControl = aiNodeControl;
              this.gNodeControl = gNodeControl;
              this.defaultNodeControl = defaultNodeControl;
              this.mySQLTableEditorWrapper = wrapper;

            // assign virtual value events for displaying and processing the edited value content
            nameNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              datatypeComboBoxNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
              datatypeComboBoxNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              datatypeComboBoxNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);

              pkNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              pkNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              nnNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            nnNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              uqNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              uqNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              binNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              binNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              unNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              unNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              zfNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              zfNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              aiNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            aiNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              gNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              gNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);

              defaultNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            defaultNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            defaultNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
        }
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        public DbMysqlTableIndicesListModel(TreeViewAdv tree, IndexListWrapper grtList,
                                            AdvNodeTextBox nameNodeControl, AdvNodeComboBox typeNodeControl,
                                            AdvNodeComboBox indexColumnNameNodeControl, MySQLTableEditorWrapper wrapper)
            : base(tree, grtList, true)
        {
            this.nameNodeControl            = nameNodeControl;
            this.typeNodeControl            = typeNodeControl;
            this.indexColumnNameNodeControl = indexColumnNameNodeControl;
            tableEditorWrapper = wrapper;

            // assign virtual value events for displaying and processing the edited value content
            nameNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            typeNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            typeNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            typeNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
        }
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        public DbMysqlTableIndicesListModel(TreeViewAdv tree, IndexListWrapper grtList,
            AdvNodeTextBox nameNodeControl, AdvNodeComboBox typeNodeControl,
            AdvNodeComboBox indexColumnNameNodeControl, MySQLTableEditorWrapper wrapper)
            : base(tree, grtList, true)
        {
            this.nameNodeControl = nameNodeControl;
              this.typeNodeControl = typeNodeControl;
              this.indexColumnNameNodeControl = indexColumnNameNodeControl;
              tableEditorWrapper = wrapper;

            // assign virtual value events for displaying and processing the edited value content
            nameNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
            typeNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            typeNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            typeNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
        }
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        /// <param name="NodeStateIcon">The NodeStateIcon NodeControl that displays the icon</param>
        public DbMysqlTableFkListModel(TreeViewAdv tree, FKConstraintListWrapper grtList,
                                       AdvNodeTextBox nameNodeControl, AdvNodeComboBox targetNodeControl,
                                       MySQLTableEditorWrapper wrapper, NodeCheckBox columnEnabledFkNodeControl)
            : base(tree, grtList, true)
        {
            this.nameNodeControl         = nameNodeControl;
            this.targetNodeControl       = targetNodeControl;
            this.mySQLTableEditorWrapper = wrapper;

            this.columnEnabledFkNodeControl = columnEnabledFkNodeControl;

            // Assign virtual value events for displaying and processing the edited value content.
            nameNodeControl.EditorInitialize   += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded        += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed        += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            targetNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            targetNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            targetNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
        }
        /// <summary>
        /// Constructor that initializes the model with the given objects
        /// </summary>
        /// <param name="TreeView">The TreeViewAdv control this model belongs to</param>
        /// <param name="GrtTree">The GRT tree this model belongs to</param>
        /// <param name="NodeStateIcon">The NodeStateIcon NodeControl that displays the icon</param>
        public DbMysqlTableFkListModel(TreeViewAdv tree, FKConstraintListWrapper grtList,
            AdvNodeTextBox nameNodeControl, AdvNodeComboBox targetNodeControl,
            MySQLTableEditorWrapper wrapper, NodeCheckBox columnEnabledFkNodeControl)
            : base(tree, grtList, true)
        {
            this.nameNodeControl = nameNodeControl;
              this.targetNodeControl = targetNodeControl;
              this.mySQLTableEditorWrapper = wrapper;

              this.columnEnabledFkNodeControl = columnEnabledFkNodeControl;

            // Assign virtual value events for displaying and processing the edited value content.
            nameNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
              targetNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
              targetNodeControl.ValueNeeded += new EventHandler<NodeControlValueEventArgs>(ValueNeeded);
              targetNodeControl.ValuePushed += new EventHandler<NodeControlValueEventArgs>(ValuePushed);
        }
        public override bool ReinitWithArguments(GrtValue value)
        {
            if (Backend != null && !Backend.can_close())
            return false;  // Will open the plugin in a new editor window instead.

              InitializingControls = true;
              SuspendLayout();

              try
              {
            // We have to remove the privileges tab here otherwise we leave it with a
            // dangling backend reference, which later crashes.
            // This will certainly flicker but due to the design (priv tab in a different form)
            // we have no other choice.
            if (dbObjectEditorPages != null)
            {
              privPageWasActive = mainTabControl.SelectedTab == dbObjectEditorPages.PrivilegesTabPage;
              mainTabControl.TabPages.Remove(dbObjectEditorPages.PrivilegesTabPage);
            }

            if (insertsTabPage.Controls.Count > 0)
              insertsTabPage.Controls.Clear();

            Backend = new MySQLTableEditorWrapper(GrtManager, value);

            Control panel = tableEditorBE.get_trigger_panel();
            triggersTabPage.Controls.Add(panel);
            panel.Dock = DockStyle.Fill;

            dbObjectEditorPages = new DbObjectEditorPages(GrtManager, tableEditorBE);

            InitFormData();
            RefreshFormData();

            {
              panel = tableEditorBE.get_inserts_panel();
              insertsTabPage.Controls.Add(panel);
              panel.Parent = insertsTabPage;
              panel.Dock = DockStyle.Fill;
            }
            Backend.reset_editor_undo_stack();
              }
              finally
              {
            ResumeLayout(true);

            InitializingControls = false;
              }

              return true;
        }