private bool ContinueOnCheckCodeChanged(string currentCheckCode) { string checkCodeFromField = string.Empty; EditorComboBoxItem selectedField = ((EditorComboBoxItem)cbxFields.Items[currentFieldItem]); if (cbxEvents.SelectedIndex == 0 && (selectedField).IDVal is IFieldWithCheckCodeBefore) { Field beforeField = (selectedField).IDVal as Field; checkCodeFromField = ((IFieldWithCheckCodeBefore)beforeField).CheckCodeBefore; } else if (cbxEvents.SelectedIndex == 1 && (selectedField).IDVal is IFieldWithCheckCodeAfter) { Field afterField = (selectedField).IDVal as Field; checkCodeFromField = ((IFieldWithCheckCodeAfter)afterField).CheckCodeAfter; } else if (cbxEvents.SelectedIndex == 1 && (selectedField).IDVal is IFieldWithCheckCodeClick) { Field afterField = (selectedField).IDVal as Field; checkCodeFromField = ((IFieldWithCheckCodeClick)afterField).CheckCodeClick; } else if (selectedField.IDVal is Page) { if (cbxEvents.SelectedIndex == 0) { checkCodeFromField = ((Page)selectedField.IDVal).CheckCodeBefore; } else { checkCodeFromField = ((Page)selectedField.IDVal).CheckCodeAfter; } } else { if (selectedField.Type.Equals("View")) { if (cbxEvents.SelectedIndex == 0) { checkCodeFromField = ((View)selectedField.IDVal).CheckCodeBefore; } else { checkCodeFromField = ((View)selectedField.IDVal).WebSurveyId; } } else if (selectedField.Type.Equals("Record")) { if (cbxEvents.SelectedIndex == 0) { checkCodeFromField = ((View)selectedField.IDVal).RecordCheckCodeBefore; } else { checkCodeFromField = ((View)selectedField.IDVal).RecordCheckCodeAfter; } } else if (selectedField.Type.Equals("DefinedVariables")) { checkCodeFromField = ((View)selectedField.IDVal).CheckCodeVariableDefinitions; } } checkCodeFromField = checkCodeFromField.Trim().Trim(Environment.NewLine.ToCharArray()); if (!checkCodeFromField.Equals(currentCheckCode.Trim().Trim(Environment.NewLine.ToCharArray()))) { DialogResult result = MsgBox.ShowQuestion(SharedStrings.CHECKCODE_CHANGED, MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { if (string.IsNullOrEmpty(currentCheckCode) || CompileCheckCode(currentCheckCode)) { txtTextArea.Text = currentCheckCode; Save(cbxFields.SelectedIndex); ResetCheckCodeIndicator(); } else { cbxFields.SelectedItem = cbxFields.Items[currentFieldItem]; return(false); } } } return(true); }
/// <summary> /// Saves the contents of the editor /// </summary> /// <param name="indexToSave">Index of the item to save.</param> public void Save(int indexToSave) { EditorComboBoxItem selectedItem = (EditorComboBoxItem)cbxFields.Items[indexToSave]; string checkCode = txtTextArea.Text.Replace("\n", "\r\n"); checkCode = checkCode.Trim(Environment.NewLine.ToCharArray()); IMetadataProvider metadata = GetMetadata(); if (cbxEvents.SelectedIndex == 0 && (selectedItem).IDVal is IFieldWithCheckCodeBefore) { Field beforeField = (selectedItem).IDVal as Field; ((IFieldWithCheckCodeBefore)beforeField).CheckCodeBefore = checkCode; metadata.CreateControlBeforeCheckCode(beforeField.Id, ((IFieldWithCheckCodeBefore)beforeField).CheckCodeBefore, this.view); } else if (cbxEvents.SelectedIndex == 1 && (selectedItem).IDVal is IFieldWithCheckCodeAfter) { Field afterField = (selectedItem).IDVal as Field; ((IFieldWithCheckCodeAfter)afterField).CheckCodeAfter = checkCode; metadata.CreateControlAfterCheckCode(afterField.Id, ((IFieldWithCheckCodeAfter)afterField).CheckCodeAfter, this.view); } else if (cbxEvents.SelectedIndex == 1 && (selectedItem).IDVal is IFieldWithCheckCodeClick) { Field afterField = (selectedItem).IDVal as Field; ((IFieldWithCheckCodeClick)afterField).CheckCodeClick = checkCode; metadata.CreateControlAfterCheckCode(afterField.Id, ((IFieldWithCheckCodeClick)afterField).CheckCodeClick, this.view); } #region Replaced this code with the code above using the interfaces //if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is InputTextBoxField) //{ // if (cbxEvents.SelectedIndex == 0) // { // ((InputTextBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeBefore = txtTextArea.Text; // metadata.CreateControlBeforeCheckCode(((InputTextBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); // } // else // { // ((InputTextBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeAfter = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((InputTextBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); // } //} //else if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is TableBasedDropDownField) //{ // if (cbxEvents.SelectedIndex == 0) // { // ((TableBasedDropDownField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeBefore = txtTextArea.Text; // metadata.CreateControlBeforeCheckCode(((TableBasedDropDownField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); // } // else // { // ((TableBasedDropDownField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeAfter = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((TableBasedDropDownField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); // } //} //else if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is CommandButtonField) //{ // ((CommandButtonField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeClick = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((CommandButtonField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); //} //else if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is CheckBoxField) //{ // ((CheckBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeAfter = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((CheckBoxField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); //} //else if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is OptionField) //{ // ((OptionField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeAfter = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((OptionField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); //} //else if (((EditorComboBoxItem)cbxFields.SelectedItem).IDVal is YesNoField) //{ // ((YesNoField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).CheckCodeAfter = txtTextArea.Text; // metadata.CreateControlAfterCheckCode(((YesNoField)((EditorComboBoxItem)cbxFields.SelectedItem).IDVal).Id, txtTextArea.Text, this.View); //} #endregion else if ((selectedItem).IDVal is Page) { if (cbxEvents.SelectedIndex == 0) { ((Page)(selectedItem).IDVal).CheckCodeBefore = checkCode; metadata.CreatePageBeforeCheckCode(((Page)(selectedItem).IDVal).Id, checkCode, this.View); } else { ((Page)(selectedItem).IDVal).CheckCodeAfter = checkCode; metadata.CreatePageAfterCheckCode(((Page)(selectedItem).IDVal).Id, checkCode, this.View); } } else if ((selectedItem).Type.Equals("View")) { if (cbxEvents.SelectedIndex == 0) { ((View)(selectedItem).IDVal).CheckCodeBefore = checkCode; metadata.CreateViewBeforeCheckCode(((View)(selectedItem).IDVal).Id, checkCode); } else { ((View)(selectedItem).IDVal).WebSurveyId = checkCode; metadata.CreateViewAfterCheckCode(((View)(selectedItem).IDVal).Id, checkCode); } } else if ((selectedItem).Type.Equals("Record")) { if (cbxEvents.SelectedIndex == 0) { ((View)(selectedItem).IDVal).RecordCheckCodeBefore = checkCode; metadata.CreateRecordBeforeCheckCode(((View)(selectedItem).IDVal).Id, checkCode); } else { ((View)(selectedItem).IDVal).RecordCheckCodeAfter = checkCode; metadata.CreateRecordAfterCheckCode(((View)(selectedItem).IDVal).Id, checkCode); } } else { ((View)(selectedItem).IDVal).CheckCodeVariableDefinitions = checkCode; metadata.CreateCheckCodeVariableDefinition(((View)(selectedItem).IDVal).Id, checkCode); //if (ShouldUndefineVariables()) //{ // UndefineVariables(); //} //LoadDeclaredVariables(); } }