コード例 #1
0
        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];
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        // 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];
                }
            }
        }
コード例 #5
0
 // 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;
 }
コード例 #6
0
 public VariableDependenceOptionForm(VariableRelation variableRelation)
 {
     InitializeComponent();
     InitOptionTabPanel();
     this.variableRelation = variableRelation;
     this.variables        = this.controller.project.Variables;
     InitComponentData(variableRelation);
     InitController();
 }
コード例 #7
0
 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);
     }
 }
コード例 #8
0
        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();
            }
        }
コード例 #9
0
        // 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);
                }
            }
        }
コード例 #10
0
        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]);
                }
            }
        }
コード例 #11
0
        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;
                    }
                }
            }
        }
コード例 #12
0
        private void optionButtonItem_ItemClick(object sender, ItemClickEventArgs e)
        {
            VariableRelation variableRelation = this.controller.XMLDeserializeVariableRelation();

            InitVariableOptionDialog(variableRelation);
        }
コード例 #13
0
 void InitVariableOptionDialog(VariableRelation variableRelation)
 {
     variableOptionForm = new VariableDependenceOptionForm(variableRelation);
     variableOptionForm.ShowDialog(this);
 }