예제 #1
0
        /// <summary>
        /// Creates new filter VM using saved data object
        /// </summary>
        /// <param name="data"></param>
        public FilterVM(FilterVMData data)
        {
            underlayingFilter = data.UnderlayingFilter;
            CanReorder        = data.CanReorder;
            CanDelete         = data.CanDelete;
            Name = data.Name;

            if (data.FilterDataProvider != null)
            {
                DataVM = (FilterDataProviderVM)Activator.CreateInstance(data.FilterDataProvider.GetType(), this); //Create concrete type, but cast it to base type
                DataVM.CopySettings(data.FilterDataProvider);
            }
        }
        public override void CopySettings(FilterDataProviderVM provider)
        {
            if (!(provider is GaussianFilterDataProviderVM donor))
            {
                throw new ArgumentException("Donor provider must be of a type GaussianFilterDataProviderVM, was of type:" + provider.GetType().ToString());
            }

            width  = donor.Width;
            height = donor.Height;
            sigma  = donor.Sigma;


            SetData();
        }
        public override void CopySettings(FilterDataProviderVM provider)
        {
            if (!(provider is BasicMatrixFilterDataProviderVM donor))
            {
                throw new ArgumentException("Donor provider must be of a type BasicMatrixFilterDataProviderVM, was of type:" + provider.GetType().ToString());
            }

            Height = donor.Height;
            Width  = donor.Width;
            Matrix = donor.Matrix;

            //subscribe to all events
            foreach (ObservableCollection <PrimitiveWrapper <double> > oc in Matrix)
            {
                oc.CollectionChanged += MidChanged;
                foreach (PrimitiveWrapper <double> pw in oc)
                {
                    pw.PropertyChanged += BotChanged;
                }
            }

            SetData();
        }
예제 #4
0
 public abstract void CopySettings(FilterDataProviderVM provider);