Exemple #1
0
        private void BuildGroentijdenMatrix()
        {
            if (GroentijdenSets == null || GroentijdenSets.Count == 0)
            {
                SetNames.Clear();
                FasenNames.Clear();
                GroentijdenMatrix = new GroentijdViewModel[0, 0];
                RaisePropertyChanged(nameof(SetNames));
                RaisePropertyChanged(nameof(FasenNames));
                RaisePropertyChanged(nameof(GroentijdenMatrix));
            }

            foreach (var mgsvm in GroentijdenSets)
            {
                mgsvm.Groentijden.BubbleSort();
                mgsvm.GroentijdenSet.Groentijden.BubbleSort();
            }

            SetNames.Clear();
            FasenNames.Clear();

            var fccount = _Controller.Fasen.Count;

            if (fccount == 0 || GroentijdenSets == null || GroentijdenSets.Count == 0)
            {
                return;
            }

            GroentijdenMatrix = new GroentijdViewModel[GroentijdenSets.Count, fccount];
            int i = 0, j = 0;

            foreach (var mgsvm in GroentijdenSets)
            {
                SetNames.Add(mgsvm.GroentijdenSet.Naam);
                j = 0;
                foreach (var mgvm in mgsvm.Groentijden)
                {
                    // Build fasen list for row headers from first set
                    if (i == 0)
                    {
                        FasenNames.Add(mgvm.FaseCyclus);
                    }

                    // set data in bound matrix
                    if (j < fccount)
                    {
                        GroentijdenMatrix[i, j] = mgvm;
                    }
                    else
                    {
                        throw new IndexOutOfRangeException();
                    }
                    j++;
                }
                i++;
            }
            RaisePropertyChanged(nameof(SetNames));
            RaisePropertyChanged(nameof(FasenNames));
            RaisePropertyChanged(nameof(GroentijdenMatrix));
        }
        public void BuildGroentijdenMatrix()
        {
            if (GroentijdenSets == null || GroentijdenSets.Count == 0)
            {
                return;
            }

            foreach (GroentijdenSetViewModel mgsvm in GroentijdenSets)
            {
#warning CHECK > why is this needed? It's double, only the first one should be necessary.
                mgsvm.GroentijdenSetList.BubbleSort();
                if (!mgsvm.GroentijdenSet.Groentijden.IsSorted())
                {
                    mgsvm.GroentijdenSet.Groentijden.BubbleSort();
                }
            }

            SetNames.Clear();
            FasenNames.Clear();

            int fccount = _Controller.Fasen.Count;

            if (fccount == 0 || GroentijdenSets == null || GroentijdenSets.Count == 0)
            {
                return;
            }

            GroentijdenMatrix = new GroentijdViewModel[GroentijdenSets.Count, fccount];
            int i = 0, j = 0;
            foreach (GroentijdenSetViewModel mgsvm in GroentijdenSets)
            {
                SetNames.Add(mgsvm.GroentijdenSet.Naam);
                j = 0;
                foreach (GroentijdViewModel mgvm in mgsvm.GroentijdenSetList)
                {
                    // Build fasen list for row headers from first set
                    if (i == 0)
                    {
                        FasenNames.Add(mgvm.FaseCyclus.Replace(SettingsProvider.Instance.GetFaseCyclusDefinePrefix(), ""));
                    }

                    // set data in bound matrix
                    if (j < fccount)
                    {
                        GroentijdenMatrix[i, j] = mgvm;
                    }
                    else
                    {
                        throw new NotImplementedException();
                    }
                    j++;
                }
                i++;
            }
            OnPropertyChanged("SetNames");
            OnPropertyChanged("FasenNames");
            OnPropertyChanged("GroentijdenMatrix");
        }
        public GroentijdenSetViewModel(GroentijdenSetModel mgsm)
        {
            _GroentijdenSet = mgsm;

            foreach (GroentijdModel mgm in mgsm.Groentijden)
            {
                GroentijdViewModel mgvm = new GroentijdViewModel(mgm);
                GroentijdenSetList.Add(mgvm);
            }

            GroentijdenSetList.CollectionChanged += GroentijdenSetList_CollectionChanged;
        }
        public void RemoveFase(string fasedefine)
        {
            GroentijdViewModel _mgvm = null;

            foreach (GroentijdViewModel mgvm in GroentijdenSetList)
            {
                if (mgvm.FaseCyclus == fasedefine)
                {
                    _mgvm = mgvm;
                }
            }
            if (_mgvm != null)
            {
                GroentijdenSetList.Remove(_mgvm);
            }
        }
        public int CompareTo(object obj)
        {
            GroentijdViewModel mgvm = obj as GroentijdViewModel;

            if (mgvm == null)
            {
                throw new NotImplementedException();
            }
            else
            {
                string myFase  = FaseCyclus.Replace(SettingsProvider.Instance.GetFaseCyclusDefinePrefix(), "");
                string hisFase = mgvm.FaseCyclus.Replace(SettingsProvider.Instance.GetFaseCyclusDefinePrefix(), "");
                if (myFase.Length < hisFase.Length)
                {
                    myFase = myFase.PadLeft(hisFase.Length, '0');
                }
                else if (hisFase.Length < myFase.Length)
                {
                    hisFase = hisFase.PadLeft(myFase.Length, '0');
                }
                int i = myFase.CompareTo(hisFase);
                return(i);
            }
        }