public override void InitDefaultValue() { this.FactorPrioritySetMethod.Value = this.FactorPrioritySetMethodDict[typeof(EqualFactorPrioritySetMethod).FullName]; this.PlatformPrioritySetMethod.Value = this.PlatformPrioritySetMethodDict[typeof(ExactPlatformPrioritySetMethod).FullName]; this.PriorityMeasureMethod.Value = this.priorityMeasureMethodDict[typeof(FirstPriorityMeasureMethod).FullName]; //initialize primary Variable Weight dictionary Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); List <string> primaryVarialbeStrList = variableRelationSetting.PrimaryVariableList; if (controller.project != null) { foreach (string primaryVariableStr in primaryVarialbeStrList) { Variable primaryVariable = controller.project.Variables[primaryVariableStr]; List <string> primaryItemStrList = primaryVariable.PlatformList; SerializableDictionary <string, double> weightDict = new SerializableDictionary <string, double>(); for (int i = 0; i < primaryItemStrList.Count; i++) { weightDict.Add(primaryItemStrList[i], 0); } this.PrimaryVariableWeightDict.Add(primaryVariableStr, weightDict); } } // we only init the auto secondary item weight set method this.SecondaryItemWeightSetMethod.Value = this.SecondaryItemWeightSetMethodDict[typeof(AutoSecondaryItemWeightSetMethod).FullName]; }
public override void InitDefaultValue() { //initialize primary Variable Weight dictionary Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); List <string> primaryVarialbeStrList = variableRelationSetting.PrimaryVariableList; if (controller.project != null) { foreach (string primaryVariableStr in primaryVarialbeStrList) { Variable primaryVariable = controller.project.Variables[primaryVariableStr]; List <string> primaryItemStrList = primaryVariable.PlatformList; SerializableDictionary <string, double> weightDict = new SerializableDictionary <string, double>(); double[] weightArray = ManualAssignmentPlatformWeightSetMethod.getAverageWeight(primaryItemStrList.Count); for (int i = 0; i < primaryItemStrList.Count; i++) { weightDict.Add(primaryItemStrList[i], weightArray[i]); } this.PrimaryVariableWeightDict.Add(primaryVariableStr, weightDict); } } //initialize secondaryItemWeightSetMethod this.SecondaryItemWeightSetMethod.Value = this.SecondaryItemWeightSetMethodDict[typeof(EqualSecondaryItemWeightSetMethod).FullName]; }
public VariableRelation XMLDeserializeVariableRelation() { VariableRelation variableRelation = null; if (File.Exists(workFolder + variableFileName)) { try { Stream stream = new FileStream(workFolder + variableFileName, FileMode.Open, FileAccess.Read, FileShare.Read); variableRelation = variableRelationSerializer.Deserialize(stream) as VariableRelation; stream.Close(); } catch (Exception e) { MessageBox.Show(e.StackTrace); } } else { // configure file do not exsit ,just create and use the default relation this.project.setDefaultVariableRelation(); this.XMLSerializeVariableRelation(this.project.VariableRelationSetting); variableRelation = this.project.VariableRelationSetting; } return(variableRelation); }
// init set equal weight public virtual void InitDefaultValue() { Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); this.DependenceRecordDict = variableRelationSetting.DependenceRecordDict; foreach (KeyValuePair <VariableDependenceRecordKey, VariableDependenceRecord> kv in this.DependenceRecordDict) { VariableDependenceRecord record = kv.Value; SerializableDictionary <string, SerializableDictionary <string, SecondaryItem> > itemDependecDict = record.ItemDependencDict; foreach (KeyValuePair <string, SerializableDictionary <string, SecondaryItem> > kv2 in itemDependecDict) { SerializableDictionary <string, SecondaryItem> secondaryItemDict = kv2.Value; int number = secondaryItemDict.Count; double[] itemArray = ManualAssignmentPlatformWeightSetMethod.getAverageWeight(number); foreach (KeyValuePair <string, SecondaryItem> kv3 in secondaryItemDict) { kv3.Value.Weight = itemArray[0]; } string lastItemStr = new List <string>(secondaryItemDict.Keys)[secondaryItemDict.Count - 1]; secondaryItemDict[lastItemStr].Weight = itemArray[number - 1]; } } }
// set the compoment data stored in varaibleRelation object private void InitComponentData(VariableRelation variableRelation) { this.generalPrimaryVariableListBoxControl.DataSource = variableRelation.PrimaryVariableList; this.generalSecondaryVaraibleListBoxControl.DataSource = variableRelation.SecondaryVariableList; this.settingPrimaryVaraibleListBoxControl.DataSource = variableRelation.PrimaryVariableList; this.settingSecondaryVaraibleListBoxControl.DataSource = variableRelation.SecondaryVariableList; this.rightShiftButton.Enabled = false; this.leftShiftButton.Enabled = false; }
public VariableDependenceOptionForm(VariableRelation variableRelation) { InitializeComponent(); InitOptionTabPanel(); this.variableRelation = variableRelation; this.variables = this.controller.project.Variables; InitComponentData(variableRelation); InitController(); }
public void XMLSerializeVariableRelation(VariableRelation variableRelation) { try { Stream stream = new FileStream(workFolder + variableFileName, FileMode.Create, FileAccess.Write, FileShare.Read); variableRelationSerializer.Serialize(stream, variableRelation); stream.Close(); } catch (Exception e) { MessageBox.Show(e.StackTrace); } }
public virtual void updateDataFromVariableRelation(AnalysisStrategy strategy) { Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); strategy.project.VariableRelationSetting = variableRelationSetting; List <string> primaryVarialbeStrList = variableRelationSetting.PrimaryVariableList; // update the primary variable //compare the read data with the older one // add new primary variable foreach (string primaryVariableStr in primaryVarialbeStrList) { if (!this.PrimaryVariableWeightDict.ContainsKey(primaryVariableStr)) { Variable primaryVariable = controller.project.Variables[primaryVariableStr]; List <string> primaryItemStrList = primaryVariable.PlatformList; SerializableDictionary <string, double> weightDict = new SerializableDictionary <string, double>(); double[] weightArray = ManualAssignmentPlatformWeightSetMethod.getAverageWeight(primaryItemStrList.Count); for (int i = 0; i < primaryItemStrList.Count; i++) { weightDict.Add(primaryItemStrList[i], weightArray[i]); } this.PrimaryVariableWeightDict.Add(primaryVariableStr, weightDict); } } // delete the redundant primary variable List <string> keyList = new List <string>(this.PrimaryVariableWeightDict.Keys); for (int i = 0; i < keyList.Count; i++) { if (!primaryVarialbeStrList.Contains(keyList[i])) { this.PrimaryVariableWeightDict.Remove(keyList[i]); } } // update the secondary dependence data foreach (KeyValuePair <string, ISecondaryItemWeightSetMethod> kv in this.SecondaryItemWeightSetMethodDict) { kv.Value.updateSecondaryItemData(); } }
// set the project default Analysis Strategy when load public void setProjectDefaultAnalysisStrategy() { List <AnalysisStrategy> exsistStrategyList = XMLDeserializeAnalysisStrategy(); VariableRelation exsistRelation = XMLDeserializeVariableRelation(); if (exsistStrategyList == null) { this.project.setDefaultStrategyList(); this.XMLSerializeAnalysisStrategyList(this.project.StrategyList); } else { // decide whether the load excel variable names are same as the variable names read from xml file; List <string> keyList = (this.project.Variables.Keys.ToList()); bool isEqual = true; List <string> exsistList = new List <string>(exsistRelation.PrimaryVariableList); exsistList.AddRange(exsistRelation.SecondaryVariableList); if (keyList.Count == exsistList.Count) { foreach (string tempStr in keyList) { if (!exsistList.Contains(tempStr)) { isEqual = false; break; } } } else { isEqual = false; } if (isEqual) { this.project.VariableRelationSetting = exsistRelation; this.project.StrategyList = exsistStrategyList; } else { this.project.setDefaultVariableRelation(); this.project.setDefaultStrategyList(); this.XMLSerializeVariableRelation(this.project.VariableRelationSetting); this.XMLSerializeAnalysisStrategyList(this.project.StrategyList); } } }
public virtual void updateSecondaryItemData() { Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); SerializableDictionary <VariableDependenceRecordKey, VariableDependenceRecord> newDependenceRecordDict = variableRelationSetting.DependenceRecordDict; // compare with the latest data from xml add the lack records and remove the redundant records. // add lack records foreach (KeyValuePair <VariableDependenceRecordKey, VariableDependenceRecord> kv in newDependenceRecordDict) { if (!this.DependenceRecordDict.ContainsKey(kv.Key)) { VariableDependenceRecord record = kv.Value; SerializableDictionary <string, SerializableDictionary <string, SecondaryItem> > itemDependecDict = record.ItemDependencDict; foreach (KeyValuePair <string, SerializableDictionary <string, SecondaryItem> > kv2 in itemDependecDict) { SerializableDictionary <string, SecondaryItem> secondaryItemDict = kv2.Value; int number = secondaryItemDict.Count; double[] itemArray = ManualAssignmentPlatformWeightSetMethod.getAverageWeight(number); foreach (KeyValuePair <string, SecondaryItem> kv3 in secondaryItemDict) { kv3.Value.Weight = itemArray[0]; } string lastItemStr = new List <string>(secondaryItemDict.Keys)[secondaryItemDict.Count - 1]; secondaryItemDict[lastItemStr].Weight = itemArray[number - 1]; } // add the new record this.DependenceRecordDict.Add(kv.Key, kv.Value); } } // remove the redundant records List <VariableDependenceRecordKey> keyList = new List <VariableDependenceRecordKey>(this.DependenceRecordDict.Keys); for (int i = 0; i < keyList.Count; i++) { if (!newDependenceRecordDict.ContainsKey(keyList[i])) { this.DependenceRecordDict.Remove(keyList[i]); } } }
public override void InitDefaultValue() { Controller controller = Controller.getInstance(); VariableRelation variableRelationSetting = Controller.getInstance().XMLDeserializeVariableRelation(); this.DependenceRecordDict = variableRelationSetting.DependenceRecordDict; foreach (KeyValuePair <VariableDependenceRecordKey, VariableDependenceRecord> kv in this.DependenceRecordDict) { VariableDependenceRecord record = kv.Value; SerializableDictionary <string, SerializableDictionary <string, SecondaryItem> > itemDependecDict = record.ItemDependencDict; foreach (KeyValuePair <string, SerializableDictionary <string, SecondaryItem> > kv2 in itemDependecDict) { SerializableDictionary <string, SecondaryItem> secondaryItemDict = kv2.Value; foreach (KeyValuePair <string, SecondaryItem> kv3 in secondaryItemDict) { kv3.Value.Weight = 0; } } } }
private void optionButtonItem_ItemClick(object sender, ItemClickEventArgs e) { VariableRelation variableRelation = this.controller.XMLDeserializeVariableRelation(); InitVariableOptionDialog(variableRelation); }
void InitVariableOptionDialog(VariableRelation variableRelation) { variableOptionForm = new VariableDependenceOptionForm(variableRelation); variableOptionForm.ShowDialog(this); }