Exemple #1
0
        private void BounceCount_OnValidate(Observable obs)
        {
            ObservableInt observable = obs as ObservableInt;

            // Optional, if you want to correct the values
            //observable.Value = Mathf.Clamp(observable.Value, 0, 10);
        }
Exemple #2
0
        private void MainModel_OnBounceCountChanged(Observable obs)
        {
            // 1 Controller: Responsible to observe the (somewhat "local") event

            ObservableInt observable     = obs as ObservableInt;
            int           bounceCountMax = _mainModel.MainConfigData.BounceCountMax;

            // 2 Controller: Responsible handle the consequence
            //		Reset the count here, this is a contrived example
            //		of a Controller mitigating changes to a Model
            if (observable.Value > bounceCountMax)
            {
                Debug.Log($"BounceCountMax of {bounceCountMax} reached. Reset count.");
                _mainModel.BounceCount.Value = 0;
                _mainModel.BouncyBallView.ResetBouncyBall(_mainModel.MainConfigData.InitialBouncyBallPosition, true, 1);
                return;
            }

            // 3 Controller: Responsible to play sounds
            Context.CommandManager.InvokeCommand(
                new PlayAudioClipCommand(MyBouncyBallExampleConstants.AudioIndexBounce));


            // 4 Controller: Responsible dispatch the (somewhat "global") command
            Context.CommandManager.InvokeCommand(
                new BounceCountChangedCommand(observable.PreviousValue, observable.Value));
        }
        public void TestInterfaceArray()
        {
            IObservableNumericValue[] array = new IObservableNumericValue[5];

            array[0] = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };
            array[1] = new ObservableFloat {
                Value = 1.0f, Min = -1.0f, Max = 2.0f
            };
            array[2] = new ObservableDouble {
                Value = 1.5d, Min = -1.5d, Max = 2.0d
            };
            array[3] = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };
            array[4] = new ObservableFloat {
                Value = 1.0f, Min = -1.0f, Max = 1.0f
            };

            foreach (IObservableNumericValue val in array)
            {
                Assert.IsFalse(val.Over());
                Assert.IsFalse(val.Under());
                Assert.IsTrue(val.Stable());
            }
        }
        public void TestCollection()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };

            collection.Add(oInt);

            Assert.AreEqual(1, collection.Count);
            Assert.AreEqual(1, collection.Get(0).Value);

            Console.WriteLine(collection.Get(0).Value);

            collection.Add(oInt);

            Assert.AreEqual(2, collection.Count);
            Assert.AreEqual(1, collection[1].Value);
            Console.WriteLine(collection[1].Value);
            Console.WriteLine(collection[1].Value.GetType());

            collection[0].Value = 0;

            foreach (IObservableNumericValue val in collection)
            {
                Console.WriteLine(val.Value);
            }
        }
        public void TestIndexOf()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Label = "int1", Value = 1, Min = -1, Max = 1
            };
            ObservableInt oInt2 = new ObservableInt {
                Value = 2, Min = -1, Max = 1
            };
            ObservableInt dontContain = new ObservableInt {
                Value = 3, Min = -1, Max = 1
            };

            collection.Add(oInt);
            collection.Add(oInt2);

            // This is a new observable int that is not added to the list, but has a label and value that exists
            ObservableInt checkExists = new ObservableInt {
                Label = "int1", Value = 1, Min = -1, Max = 1
            };

            Assert.AreEqual(0, collection.IndexOf(oInt));
            Assert.AreEqual(0, collection.IndexOf(checkExists));
            Assert.AreEqual(1, collection.IndexOf(oInt2));
            Assert.AreEqual(-1, collection.IndexOf(dontContain));
        }
        public void TestCollectionInsert()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };
            ObservableInt oInt2 = new ObservableInt {
                Value = 2, Min = -1, Max = 1
            };
            ObservableInt oInt3 = new ObservableInt {
                Value = 3, Min = -1, Max = 1
            };
            ObservableFloat oFloat = new ObservableFloat {
                Value = 4.0f, Min = -1.0f, Max = 1.0f
            };

            collection.Add(oInt);
            collection.Add(oInt2);
            collection.Add(oInt3);

            collection.Insert(1, oFloat);

            Assert.AreEqual(1, collection[0].Value);
            Assert.AreEqual(4.0f, collection[1].Value);
            Assert.AreEqual(2, collection[2].Value);
            Assert.AreEqual(3, collection[3].Value);
        }
        private void InitUiModels()
        {
            StylesVariationList           = new ObservableCollection <ImageItem>();
            StylesVariationListSelectedId = new ObservableInt {
                Number = -1
            };
            StylesVariationListSelectedItem = new ObservableImageItem();
            CurrentVariantCategory          = new ObservableString();
            CurrentVariantCategoryId        = new ObservableInt {
                Number = -1
            };
            VariantsCategory   = new ObservableCollection <string>();
            SelectedFontId     = new ObservableInt();
            SelectedFontFamily = new ObservableFont();

            StylesPreviewList           = new ObservableCollection <ImageItem>();
            StylesPreviewListSelectedId = new ObservableInt {
                Number = -1
            };
            StylesPreviewListSelectedItem = new ObservableImageItem();

            ImageSelectionList = new ObservableCollection <ImageItem>();
            ImageSelectionList.Add(CreateChoosePicturesItem());

            Settings = StoragePath.LoadSettings();

            if (StoragePath.IsFirstTimeUsage())
            {
                Logger.Log("First time use PSL");
                ImageSelectionList.Add(CreateSamplePic1Item());
                ImageSelectionList.Add(CreateSamplePic2Item());
            }
            else
            {
                var loadedImageSelectionList = StoragePath.LoadPictures();
                foreach (var item in loadedImageSelectionList)
                {
                    if (item.FullSizeImageFile == null && item.BackupFullSizeImageFile != null)
                    {
                        item.FullSizeImageFile = item.BackupFullSizeImageFile;
                    }
                    else if (item.FullSizeImageFile == null && item.BackupFullSizeImageFile == null)
                    {
                        Logger.Log("Corrupted picture found. To be removed");
                        continue;
                    }
                    ImageSelectionList.Add(item);
                }
            }

            ImageSelectionListSelectedId = new ObservableInt {
                Number = -1
            };
            ImageSelectionListSelectedItem = new ObservableImageItem();
            IsActiveDownloadProgressRing   = new ObservableBoolean {
                Flag = false
            };
        }
        public void TestConainsLabel()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Label = "int1", Value = 1, Min = -1, Max = 1
            };

            collection.Add(oInt);

            Assert.IsTrue(collection.ContainsLabel("int1"));
            Assert.IsFalse(collection.ContainsLabel("iDoNotExist"));
        }
Exemple #9
0
        static void Main(string[] args)
        {
            ObservableInt a = new ObservableInt(6);

            Console.WriteLine(a.Value);
            using (var scope = new TransactionScope())
            {
                a.Increment(7);
                //scope.Complete();
                Console.WriteLine(a.Value);
            }
            Console.WriteLine(a.Value);
        }
Exemple #10
0
        private void MainModel_OnBounceCountChanged(Observable obs)
        {
            ObservableInt observable = obs as ObservableInt;

            // Reset the count here, this is a contrived example
            // of a Controller mitigating changes to a Model
            if (observable.Value > _mainModel.MainConfigData.BounceCountMax)
            {
                _mainModel.BounceCount.Value = 0;
                return;
            }

            Context.CommandManager.InvokeCommand(
                new BounceCountChangedCommand(observable.PreviousValue, observable.Value));
        }
        public void TestStringIndexAccess()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Label = "int1", Value = 1, Min = -1, Max = 1
            };
            ObservableInt oInt2 = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };

            collection.Add(oInt);
            collection.Add(oInt2);

            Assert.AreEqual(oInt, collection["int1"]);
        }
        public void TestEventHandler()
        {
            ObservableInt oInt = new ObservableInt {
                Label = "int1", Value = 1, Min = -1, Max = 1
            };

            oInt.OnUpdate((v) =>
            {
                Console.WriteLine("Callback 1");
            });

            oInt.OnUpdate((v) =>
            {
                Console.WriteLine("Callback 2");
            });

            oInt.Value = 4;
        }
        public void TestGeneric()
        {
            ObservableInt a = new ObservableInt {
                Value = 2, Min = 0, Max = 3
            };
            ObservableFloat b = new ObservableFloat {
                Value = 2.0f, Min = 0.0f, Max = 3.0f
            };

            Console.WriteLine(a.Over());

            Assert.IsFalse(a.Over());
            Assert.IsFalse(a.Under());

            Assert.IsFalse(b.Over());
            Assert.IsFalse(b.Under());

            Assert.IsTrue(a.Stable());
            Assert.IsTrue(b.Stable());
        }
        public void TestContains()
        {
            ObservableNumericValueCollection collection = new ObservableNumericValueCollection();

            ObservableInt oInt = new ObservableInt {
                Value = 1, Min = -1, Max = 1
            };
            ObservableInt oInt2 = new ObservableInt {
                Value = 2, Min = -1, Max = 1
            };
            ObservableInt oInt3 = new ObservableInt {
                Value = 3, Min = -1, Max = 1
            };

            collection.Add(oInt);
            collection.Add(oInt2);
            collection.Add(oInt3);

            Assert.IsTrue(collection.Contains(oInt));
            Assert.IsTrue(collection.Contains(oInt2));
            Assert.IsTrue(collection.Contains(oInt3));
        }
Exemple #15
0
        private void InitUiModels()
        {
            StylesVariationList           = new ObservableCollection <ImageItem>();
            StylesVariationListSelectedId = new ObservableInt {
                Number = -1
            };
            StylesVariationListSelectedItem = new ObservableImageItem();
            CurrentVariantCategory          = new ObservableString();
            CurrentVariantCategoryId        = new ObservableInt {
                Number = -1
            };
            VariantsCategory   = new ObservableCollection <string>();
            SelectedFontId     = new ObservableInt();
            SelectedFontFamily = new ObservableFont();

            StylesPreviewList           = new ObservableCollection <ImageItem>();
            StylesPreviewListSelectedId = new ObservableInt {
                Number = -1
            };
            StylesPreviewListSelectedItem = new ObservableImageItem();

            ImageSelectionList = new ObservableCollection <ImageItem>();
            ImageSelectionList.Add(CreateChoosePicturesItem());

            var loadedImageSelectionList = StoragePath.Load();

            foreach (var item in loadedImageSelectionList)
            {
                ImageSelectionList.Add(item);
            }

            ImageSelectionListSelectedId = new ObservableInt {
                Number = -1
            };
            ImageSelectionListSelectedItem = new ObservableImageItem();
            IsActiveDownloadProgressRing   = new ObservableBoolean {
                Flag = false
            };
        }