Esempio n. 1
0
        public void TransitionItemBaseAssign()
        {
            tlog.Debug(tag, $"TransitionItemBaseAssign START");

            using (View view = new View())
            {
                var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                try
                {
                    testingTarget.Assign(testingTarget);
                }
                catch (Exception e)
                {
                    tlog.Error(tag, "Caught Exception" + e.ToString());
                    LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                    Assert.Fail("Caught Exception" + e.ToString());
                }

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"TransitionItemBaseAssign END (OK)");
        }
Esempio n. 2
0
        public void TransitionItemBaseTimePeriod()
        {
            tlog.Debug(tag, $"TransitionItemBaseTimePeriod START");

            using (View view = new View())
            {
                using (TimePeriod timePeriod = new TimePeriod(300))
                {
                    using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                    {
                        var testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                        Assert.IsNotNull(testingTarget, "Should be not null!");
                        Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                        tlog.Debug(tag, "TimePeriod : " + testingTarget.TimePeriod);
                        tlog.Debug(tag, "AlphaFunction : " + testingTarget.AlphaFunction);

                        testingTarget.Dispose();
                        // disposed
                        testingTarget.Dispose();
                    }
                }
            }

            tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)");
        }
Esempio n. 3
0
        public void TransitionItemBaseTransitionWithChild()
        {
            tlog.Debug(tag, $"TransitionItemBaseTransitionWithChild START");

            using (View view = new View())
            {
                var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                try
                {
                    testingTarget.TransitionWithChild = false;
                }
                catch (Exception e)
                {
                    tlog.Debug(tag, e.Message.ToString());
                    Assert.Fail("Caught Exception : Failed!");
                }

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"TransitionItemBaseTransitionWithChild END (OK)");
        }
Esempio n. 4
0
        public void TransitionItemBaseDuration()
        {
            tlog.Debug(tag, $"TransitionItemBaseDuration START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase testingTarget = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            testingTarget.Duration = 300;
            Assert.IsTrue(300 == testingTarget.Duration);

            view.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionItemBaseDuration END (OK)");
        }
Esempio n. 5
0
        public void TransitionItemBaseAssign()
        {
            tlog.Debug(tag, $"TransitionItemBaseAssign START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase testingTarget = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            using (TransitionItemBase rhs = new TransitionItemBase(testingTarget))
            {
                var result = testingTarget.Assign(rhs);
                Assert.IsNotNull(result, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(result, "Should be an Instance of TransitionItemBase!");
            }

            view.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionItemBaseAssign END (OK)");
        }
Esempio n. 6
0
        public void TransitionItemBaseConstructor()
        {
            tlog.Debug(tag, $"TransitionItemBaseConstructor START");

            using (View view = new View())
            {
                var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"TransitionItemBaseConstructor END (OK)");
        }
Esempio n. 7
0
        public void TransitionSetAddTransition()
        {
            tlog.Debug(tag, $"TransitionSetAddTransition START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase transitionItemBase = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            var testingTarget = new TransitionSet();

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!");

            testingTarget.Finished += OnFinished;

            try
            {
                testingTarget.AddTransition(transitionItemBase);
            }
            catch (Exception e)
            {
                tlog.Error(tag, "Caught Exception" + e.ToString());
                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                Assert.Fail("Caught Exception" + e.ToString());
            }

            view.Dispose();
            transitionItemBase.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionSetAddTransition END (OK)");
        }
Esempio n. 8
0
        public void TransitionItemBaseTimePeriod()
        {
            tlog.Debug(tag, $"TransitionItemBaseTimePeriod START");

            using (View view = new View())
            {
                var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                testingTarget.TimePeriod = new TimePeriod(300);
                tlog.Debug(tag, "TiemPeriod : " + testingTarget.TimePeriod);

                testingTarget.Dispose();
            }

            tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)");
        }
Esempio n. 9
0
        public void TransitionSetSignalDisconnect()
        {
            tlog.Debug(tag, $"TransitionSetSignalDisconnect START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase transitionItemBase = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            var testingTarget = new TransitionSet();

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!");

            testingTarget.AddTransition(transitionItemBase);

            var transitionSetSignal = testingTarget.FinishedSignal();

            Assert.IsNotNull(transitionSetSignal, "Should be not null!");
            Assert.IsInstanceOf <TransitionSetFinishedSignal>(transitionSetSignal, "Should be an Instance of TransitionSet!");

            dummyCallback callback = OnDummyCallback;

            transitionSetSignal.Connect(callback);
            transitionSetSignal.Disconnect(callback);

            view.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionSetSignalDisconnect END (OK)");
        }
Esempio n. 10
0
        public void TransitionItemBaseTimePeriod()
        {
            tlog.Debug(tag, $"TransitionItemBaseTimePeriod START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase testingTarget = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    testingTarget = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            try
            {
                using (TimePeriod setValue = new TimePeriod(300))
                {
                    testingTarget.TimePeriod = setValue;
                }
            }
            catch (Exception e)
            {
                tlog.Error(tag, "Caught Exception" + e.ToString());
                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Caught Exception" + e.ToString());
                Assert.Fail("Caught Exception" + e.ToString());
            }

            view.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionItemBaseTimePeriod END (OK)");
        }
Esempio n. 11
0
        public void TransitionSetGetTransitionCount()
        {
            tlog.Debug(tag, $"TransitionSetGetTransitionCount START");

            View view = new View()
            {
                Name = "view",
                TransitionOptions = new TransitionOptions(Window.Instance)
            };

            view.TransitionOptions.TransitionTag    = "Transition";
            view.TransitionOptions.EnableTransition = true;

            TransitionItemBase transitionItemBase = null;

            using (TimePeriod timePeriod = new TimePeriod(500))
            {
                using (AlphaFunction alphaFunction = new AlphaFunction(AlphaFunction.BuiltinFunctions.Default))
                {
                    transitionItemBase = new TransitionItemBase(view, true, timePeriod, alphaFunction);
                }
            }

            var testingTarget = new TransitionSet();

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <TransitionSet>(testingTarget, "Should be an Instance of TransitionSet!");

            testingTarget.AddTransition(transitionItemBase);

            var result = testingTarget.GetTransitionCount();

            Assert.IsTrue(1 == result);

            view.Dispose();
            transitionItemBase.Dispose();
            testingTarget.Dispose();
            tlog.Debug(tag, $"TransitionSetGetTransitionCount END (OK)");
        }
Esempio n. 12
0
        public void TransitionItemBaseDownCastWithNullHandle()
        {
            tlog.Debug(tag, $"TransitionItemBaseDownCastWithNullHandle START");

            using (View view = new View())
            {
                var testingTarget = new TransitionItemBase(view.SwigCPtr.Handle, false);
                Assert.IsNotNull(testingTarget, "Should be not null!");
                Assert.IsInstanceOf <TransitionItemBase>(testingTarget, "Should be an Instance of TransitionItemBase!");

                try
                {
                    TransitionItemBase.DownCast(null);
                }
                catch (ArgumentNullException e)
                {
                    tlog.Debug(tag, e.Message.ToString());
                    tlog.Debug(tag, $"TransitionItemBaseDownCastWithNullHandle END (OK)");
                    Assert.Pass("Caught ArgumentNullException : Passed!");
                }

                testingTarget.Dispose();
            }
        }
Esempio n. 13
0
        /// <summary>
        /// Create Transitions between currentTopPage and newTopPage
        /// </summary>
        /// <param name="currentTopPage">The top page of Navigator.</param>
        /// <param name="newTopPage">The new top page after transition.</param>
        /// <param name="pushTransition">True if this transition is for push new page</param>
        private TransitionSet CreateTransitions(Page currentTopPage, Page newTopPage, bool pushTransition)
        {
            currentTopPage.SetVisible(true);
            // Set Content visible because it was hidden by HideContentOfPage.
            (currentTopPage as ContentPage)?.Content?.SetVisible(true);

            newTopPage.SetVisible(true);
            // Set Content visible because it was hidden by HideContentOfPage.
            (newTopPage as ContentPage)?.Content?.SetVisible(true);

            List <View> taggedViewsInNewTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage, true);
            List <View> taggedViewsInCurrentTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage, true);

            List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >();

            foreach (View currentTopPageView in taggedViewsInCurrentTopPage)
            {
                bool findPair = false;
                foreach (View newTopPageView in taggedViewsInNewTopPage)
                {
                    if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) &&
                        currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag)
                    {
                        sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView));
                        findPair = true;
                        break;
                    }
                }
                if (findPair)
                {
                    taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value);
                }
            }
            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                taggedViewsInCurrentTopPage.Remove(pair.Key);
            }

            TransitionSet newTransitionSet = new TransitionSet();

            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value, pushTransition);
                if (pair.Value.TransitionOptions?.TransitionWithChild ?? false)
                {
                    pairTransition.TransitionWithChild = true;
                }
                newTransitionSet.AddTransition(pairTransition);
            }

            newTransitionSet.Finished += (object sender, EventArgs e) =>
            {
                if (newTopPage.Layout != null)
                {
                    newTopPage.Layout.RequestLayout();
                }
                if (currentTopPage.Layout != null)
                {
                    currentTopPage.Layout.RequestLayout();
                }
                transitionFinished = true;
                InvokeTransitionFinished();
                transitionSet.Dispose();
            };

            if (!pushTransition || newTopPage is DialogPage == false)
            {
                View transitionView = (currentTopPage is ContentPage) ? (currentTopPage as ContentPage).Content : (currentTopPage as DialogPage).Content;
                if (currentTopPage.DisappearingTransition != null && transitionView != null)
                {
                    TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(transitionView, false);
                    disappearingTransition.TransitionWithChild = true;
                    newTransitionSet.AddTransition(disappearingTransition);
                }
                else
                {
                    currentTopPage.SetVisible(false);
                }
            }
            if (pushTransition || currentTopPage is DialogPage == false)
            {
                View transitionView = (newTopPage is ContentPage) ? (newTopPage as ContentPage).Content : (newTopPage as DialogPage).Content;
                if (newTopPage.AppearingTransition != null && transitionView != null)
                {
                    TransitionItemBase appearingTransition = newTopPage.AppearingTransition.CreateTransition(transitionView, true);
                    appearingTransition.TransitionWithChild = true;
                    newTransitionSet.AddTransition(appearingTransition);
                }
            }

            newTransitionSet.Play();

            return(newTransitionSet);
        }
Esempio n. 14
0
        /// <summary>
        /// Create Transition between currentTopPage and newTopPage
        /// </summary>
        /// <param name="currentTopPage">The top page of Navigator.</param>
        /// <param name="newTopPage">The new top page after transition.</param>
        /// <param name="pushTransition">True if this transition is for push new page</param>
        private TransitionSet CreateTransition(Page currentTopPage, Page newTopPage, bool pushTransition)
        {
            currentTopPage.SetVisible(true);
            newTopPage.SetVisible(true);

            List <View> taggedViewsInNewTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage);
            List <View> taggedViewsInCurrentTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage);

            List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >();

            foreach (View currentTopPageView in taggedViewsInCurrentTopPage)
            {
                bool findPair = false;
                foreach (View newTopPageView in taggedViewsInNewTopPage)
                {
                    if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) &&
                        currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag)
                    {
                        sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView));
                        findPair = true;
                        break;
                    }
                }
                if (findPair)
                {
                    taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value);
                }
            }
            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                taggedViewsInCurrentTopPage.Remove(pair.Key);
            }

            TransitionSet newTransitionSet = new TransitionSet();

            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value);
                if (pair.Value.TransitionOptions?.TransitionWithChild ?? false)
                {
                    pairTransition.TransitionWithChild = true;
                }
                newTransitionSet.AddTransition(pairTransition);
            }

            newTransitionSet.Finished += (object sender, EventArgs e) =>
            {
                transitionFinished = true;
                InvokeTransitionFinished();
                transitionSet.Dispose();
                currentTopPage.Opacity = 1.0f;
            };

            // default appearing/disappearing transition - fast fade (half duration compaired with that of view pair transition)
            int   duration        = (transition.TimePeriod.DurationMilliseconds + transition.TimePeriod.DelayMilliseconds);
            float durationSeconds = (float)duration / 1000.0f;

            TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(currentTopPage, false);
            TransitionItemBase appearingTransition    = newTopPage.AppearingTransition.CreateTransition(newTopPage, true);

            disappearingTransition.TransitionWithChild = true;
            appearingTransition.TransitionWithChild    = true;
            newTransitionSet.AddTransition(disappearingTransition);
            newTransitionSet.AddTransition(appearingTransition);

            newTransitionSet.Play();

            return(newTransitionSet);
        }
Esempio n. 15
0
        /// <summary>
        /// Create Transitions between currentTopPage and newTopPage
        /// </summary>
        /// <param name="currentTopPage">The top page of Navigator.</param>
        /// <param name="newTopPage">The new top page after transition.</param>
        /// <param name="pushTransition">True if this transition is for push new page</param>
        private TransitionSet CreateTransitions(Page currentTopPage, Page newTopPage, bool pushTransition)
        {
            currentTopPage.SetVisible(true);
            newTopPage.SetVisible(true);

            List <View> taggedViewsInNewTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInNewTopPage, newTopPage, true);
            List <View> taggedViewsInCurrentTopPage = new List <View>();

            RetrieveTaggedViews(taggedViewsInCurrentTopPage, currentTopPage, true);

            List <KeyValuePair <View, View> > sameTaggedViewPair = new List <KeyValuePair <View, View> >();

            foreach (View currentTopPageView in taggedViewsInCurrentTopPage)
            {
                bool findPair = false;
                foreach (View newTopPageView in taggedViewsInNewTopPage)
                {
                    if ((currentTopPageView.TransitionOptions != null) && (newTopPageView.TransitionOptions != null) &&
                        currentTopPageView.TransitionOptions?.TransitionTag == newTopPageView.TransitionOptions?.TransitionTag)
                    {
                        sameTaggedViewPair.Add(new KeyValuePair <View, View>(currentTopPageView, newTopPageView));
                        findPair = true;
                        break;
                    }
                }
                if (findPair)
                {
                    taggedViewsInNewTopPage.Remove(sameTaggedViewPair[sameTaggedViewPair.Count - 1].Value);
                }
            }
            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                taggedViewsInCurrentTopPage.Remove(pair.Key);
            }

            TransitionSet newTransitionSet = new TransitionSet();

            foreach (KeyValuePair <View, View> pair in sameTaggedViewPair)
            {
                TransitionItem pairTransition = transition.CreateTransition(pair.Key, pair.Value);
                if (pair.Value.TransitionOptions?.TransitionWithChild ?? false)
                {
                    pairTransition.TransitionWithChild = true;
                }
                newTransitionSet.AddTransition(pairTransition);
            }

            newTransitionSet.Finished += (object sender, EventArgs e) =>
            {
                transitionFinished = true;
                InvokeTransitionFinished();
                transitionSet.Dispose();
                currentTopPage.Opacity = 1.0f;
            };

            if (!pushTransition || newTopPage is DialogPage == false)
            {
                if (currentTopPage.DisappearingTransition != null)
                {
                    TransitionItemBase disappearingTransition = currentTopPage.DisappearingTransition.CreateTransition(currentTopPage, false);
                    disappearingTransition.TransitionWithChild = true;
                    newTransitionSet.AddTransition(disappearingTransition);
                }
                else
                {
                    currentTopPage.SetVisible(false);
                }
            }
            if (pushTransition || currentTopPage is DialogPage == false)
            {
                if (newTopPage.AppearingTransition != null)
                {
                    TransitionItemBase appearingTransition = newTopPage.AppearingTransition.CreateTransition(newTopPage, true);
                    appearingTransition.TransitionWithChild = true;
                    newTransitionSet.AddTransition(appearingTransition);
                }
            }

            newTransitionSet.Play();

            return(newTransitionSet);
        }