/// <summary>
        /// This method Add New Reader
        /// </summary>
        public void AddNewReader()
        {
            // Set the ActionType
            ActionType = ActionTypeEnum.AddButtonClicked;

            // Create a new instance of a 'CustomReader' object.
            this.SelectedReader = new CustomReader();

            // Erase the current values
            Clear();

            // Set the TableId
            this.SelectedReader.TableId = this.SelectedTable.TableId;

            // Create a new instance of a 'CustomReadersWriter' object.
            CustomReadersWriter writer = new CustomReadersWriter();

            // Export the selected reader
            StoredReader = writer.ExportCustomReader(SelectedReader);

            // Enable or disable controls
            UIEnable();

            // Set Focus to the TextBox of the ReaderNameControl
            this.ReaderNameControl.SetFocusToTextBox();
        }
        /// <summary>
        /// This method Edit Selected Reader
        /// </summary>
        public void EditSelectedReader()
        {
            // Set the ActionType
            ActionType = ActionTypeEnum.EditButtonClicked;

            // Create a new instance of a 'CustomReadersWriter' object.
            CustomReadersWriter writer = new CustomReadersWriter();

            // Export the selected reader
            StoredReader = writer.ExportCustomReader(SelectedReader);

            // Enable or disable controls
            UIEnable();

            // Set Focus to the TextBox of the ReaderNameControl
            this.ReaderNameControl.SetFocusToTextBox();
        }
        /// <summary>
        /// This method UI Enable
        /// </summary>
        public void UIEnable()
        {
            // Enable or disable the controls based upon if we have a SelectedReader or not
            ReaderNameControl.Editable  = HasSelectedReader;
            FieldSetControl.Editable    = HasSelectedReader;
            EditFieldSetsButton.Enabled = EditingInProgress;

            // these two controls are set via the ReaderNameControl
            ClassNameControl.Editable = false;
            FileNameControl.Editable  = false;

            // Disable or enable the buttons based upon the ActionType
            if (EditingInProgress)
            {
                // Disable all the buttons while editing is in progress
                AddButton.Enabled           = false;
                EditButton.Enabled          = false;
                EditButton.Selected         = false;
                DeleteButton.Enabled        = false;
                DeleteButton.Selected       = false;
                ReaderNameControl.Editable  = true;
                FieldSetControl.Editable    = true;
                EditFieldSetsButton.Enabled = true;

                // Change to Cancel
                this.SaveCancelControl.SetupCancelButton("Cancel", 80);
            }
            else
            {
                // Not Editable
                ReaderNameControl.Editable  = false;
                FieldSetControl.Editable    = false;
                EditFieldSetsButton.Enabled = false;

                // you can always add a new one if not editing
                AddButton.Enabled = true;

                // if the value for HasSelectedReader is true
                if (HasSelectedReader)
                {
                    // These buttons require a selected reader
                    EditButton.Enabled    = true;
                    EditButton.Selected   = true;
                    DeleteButton.Enabled  = true;
                    DeleteButton.Selected = true;
                }
                else
                {
                    // withhout a SelectedReader, you cannot Edit or Delete
                    EditButton.Enabled    = false;
                    EditButton.Selected   = false;
                    DeleteButton.Enabled  = false;
                    DeleteButton.Selected = false;
                }

                // Change back to Done
                this.SaveCancelControl.SetupCancelButton("Done", 80);
            }

            // if we are in Add New Mode
            if (ActionType == ActionTypeEnum.AddButtonClicked)
            {
                // Enable the Save button
                SaveCancelControl.EnableSaveButton(true);
            }
            else if (ActionType == ActionTypeEnum.EditButtonClicked)
            {
                // Create a new instance of a 'CustomReadersWriter' object.
                CustomReadersWriter writer = new CustomReadersWriter();

                // Export the selected reader
                string currentReaderXml = writer.ExportCustomReader(SelectedReader);

                // determine if there are changes or not
                bool hasChanges = !TextHelper.IsEqual(StoredReader, currentReaderXml);

                // Enable the save button if there are changes
                SaveCancelControl.EnableSaveButton(hasChanges);
            }
            else
            {
                // Disable the save button
                SaveCancelControl.EnableSaveButton(false);
            }
        }