public override void Undo(object oldState) { ((GnosisComboField)ControlImplementation).SetSelectedOption((GnosisComboOption)oldState); InstanceController.PushRedo(this, currentComboOptionImplementation); currentComboOptionImplementation = (GnosisComboOption)oldState; }
internal static GnosisComboOption CreateGnosisComboOption(int order) { GnosisComboOption comboOption = new GnosisComboOption(); comboOption.ID = GlobalData.Singleton.GetNewControlID(); comboOption.GnosisName = "Option" + comboOption.ID.ToString(); comboOption.Order = order; return(comboOption); }
public override void OnLostFocus() { base.OnLostFocus(); GnosisComboOption selectedOption = ((GnosisComboField)ControlImplementation).GetSelectedOption(); if (selectedOption != currentComboOptionImplementation) { InstanceController.PushUndo(this, currentComboOptionImplementation); currentComboOptionImplementation = selectedOption; } }
internal override void Save(int rowNo) { string datasetName = ((GnosisComboField)ControlImplementation).Dataset; string datasetItemName = ((GnosisComboField)ControlImplementation).DatasetItem; GnosisComboOption selectedOption = ((GnosisComboField)ControlImplementation).GetSelectedOption(); string value = selectedOption.GetText(); InstanceController.PutDataString(datasetName, datasetItemName, rowNo, value); List <GnosisKey> keys = comboOptionImplementations[selectedOption]; foreach (GnosisKey key in keys) { InstanceController.PutDataString(key.Dataset, key.DatasetItem, rowNo, key.KeyValue); } }
public override void LoadData(int rowNo) { if (InstanceController != null) { string datasetName = ((GnosisComboField)ControlImplementation).Dataset; string datasetItemName = ((GnosisComboField)ControlImplementation).DatasetItem; XElement optionsXML = InstanceController.GetOptionsXML(datasetName, datasetItemName); string valueAttribute = InstanceController.GetSourceAttributeName(datasetName, datasetItemName); string selected = InstanceController.GetDataString(datasetName, datasetItemName, rowNo); comboOptionImplementations = new Dictionary <GnosisComboOption, List <GnosisKey> >(); //IGnosisComboOptionImplementation selectedOption = null; int i = 1; foreach (var row in optionsXML.Descendants()) { GnosisComboOption comboOptionImp = GnosisControlCreator.CreateGnosisComboOption(i);//GlobalData.Singleton.ImplementationCreator.GetGnosisComboOptionImplementation(); string display = row.Attribute(valueAttribute).Value; comboOptionImp.SetText(display); if (display.Equals(selected)) { currentComboOptionImplementation = comboOptionImp; } List <GnosisKey> keys = new List <GnosisKey>(); if (((GnosisComboField)ControlImplementation).ComboAttributes != null) { foreach (GnosisComboAttribute comboAttribute in ((GnosisComboField)ControlImplementation).ComboAttributes.Where(a => a._ComboRole == GnosisComboAttribute.ComboRoleType.KEY)) { string targetAttribute = InstanceController.GetTargetAttributeName(comboAttribute.Dataset, comboAttribute.DatasetItem); string sourceAttribute = InstanceController.GetKeyOptionSourceAttributeName(comboAttribute.Dataset, comboAttribute.DatasetItem); string keyString = row.Attribute(sourceAttribute).Value; GnosisKey key = new GnosisKey(comboAttribute.Dataset, comboAttribute.DatasetItem, sourceAttribute, targetAttribute, keyString); keys.Add(key); } } comboOptionImplementations.Add(comboOptionImp, keys); i++; } //List<string> values = InstanceController.GetOptionsList(datasetName, datasetItemName); //string selected = InstanceController.GetDataString(datasetName, datasetItemName, rowNo); //comboOptionImplementations = new List<IGnosisComboOptionImplementation>(); //IGnosisComboOptionImplementation selectedOption = null; //foreach (string option in values) //{ // IGnosisComboOptionImplementation comboOptionImp = GlobalData.Singleton.ImplementationCreator.GetGnosisComboOptionImplementation(); // comboOptionImplementations.Add(comboOptionImp); // //comboOptionImp.LoadItem(option); // comboOptionImp.SetText(option); // if (option.Equals(selected)) // { // selectedOption = comboOptionImp; // } //} List <GnosisComboOption> comboOptions = new List <GnosisComboOption>(); foreach (GnosisComboOption option in comboOptionImplementations.Keys) { comboOptions.Add(option); } ((GnosisComboField)ControlImplementation).LoadComboOptionImplementations(comboOptions); if (currentComboOptionImplementation != null) { ((GnosisComboField)ControlImplementation).SetSelectedOption(currentComboOptionImplementation); } } }