/// <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 DbMysqlTableIndexColumnsListModel(TreeViewAdv ListView, IndexColumnsListWrapper GrtList,
                                                 MySQLTableColumnsListWrapper TableColumnGrtList,
                                                 NodeCheckBox EnabledNodeControl,
                                                 AdvNodeComboBox NameNodeControl,
                                                 AdvNodeComboBox OrderNodeControl,
                                                 AdvNodeComboBox StorageNodeControl,
                                                 AdvNodeTextBox LengthNodeControl)
            : base(ListView, GrtList, false)
        {
            tableColumnGrtList = TableColumnGrtList;

            enabledNodeControl = EnabledNodeControl;
            nameNodeControl    = NameNodeControl;
            orderNodeControl   = OrderNodeControl;
            storageNodeControl = StorageNodeControl;
            lengthNodeControl  = LengthNodeControl;

            // assign virtual value events for displaying and processing the edited value content
            enabledNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            enabledNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            nameNodeControl.EditorInitialize    += new EditorInitializeEventHandler(EditorInitialize);
            nameNodeControl.ValueNeeded         += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            nameNodeControl.ValuePushed         += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            orderNodeControl.EditorInitialize   += new EditorInitializeEventHandler(EditorInitialize);
            orderNodeControl.ValueNeeded        += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            orderNodeControl.ValuePushed        += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            storageNodeControl.EditorInitialize += new EditorInitializeEventHandler(EditorInitialize);
            storageNodeControl.ValueNeeded      += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            storageNodeControl.ValuePushed      += new EventHandler <NodeControlValueEventArgs>(ValuePushed);
            lengthNodeControl.EditorInitialize  += new EditorInitializeEventHandler(EditorInitialize);
            lengthNodeControl.ValueNeeded       += new EventHandler <NodeControlValueEventArgs>(ValueNeeded);
            lengthNodeControl.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 DbMysqlTableIndexColumnsListModel(TreeViewAdv ListView, IndexColumnsListWrapper GrtList,
            MySQLTableColumnsListWrapper TableColumnGrtList,
            NodeCheckBox EnabledNodeControl,
            AdvNodeComboBox NameNodeControl,
            AdvNodeComboBox OrderNodeControl,
            AdvNodeComboBox StorageNodeControl,
            AdvNodeTextBox LengthNodeControl)
            : base(ListView, GrtList, false)
        {
            tableColumnGrtList = TableColumnGrtList;

              enabledNodeControl = EnabledNodeControl;
            nameNodeControl = NameNodeControl;
              orderNodeControl = OrderNodeControl;
              storageNodeControl = StorageNodeControl;
              lengthNodeControl = LengthNodeControl;

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