Exemple #1
0
        public bool OpenScreen(string screenName, String controllerName
                               , Dictionary <string, object> parameters = null
                               , bool isBackCommand = false
                               , bool isRefresh     = false)
        {
            try
            {
                ActionHandler.Busy   = true;
                ActionHandlerEx.Busy = true;

                _baseActivity.ClearNavigationEvents();

                DateTime startLoading = DateTime.Now;

                ValueStack = new ValueStack.ValueStack(BitBrowserApp.Current.ExceptionHandler);
                ValueStack.Push("common", _commonData);
                ValueStack.Push("context", this);
                ValueStack.Push("dao", DAL.DAO);
                ValueStack.Push("activity", _baseActivity);

                foreach (var variable in GlobalVariables)
                {
                    ValueStack.Push(variable.Key, variable.Value);
                }

                if (parameters != null)
                {
                    foreach (KeyValuePair <String, object> item in parameters)
                    {
                        ValueStack.Push(item.Key, item.Value);
                    }
                }

                var controller = ControllerFactory.CreateInstance().CreateController <Controllers.ScreenController>(controllerName);
                ValueStack.Push("controller", controller);
                screenName = controller.GetView(screenName);

                var scr           = (Screen)ScreenFactory.CreateInstance().CreateScreen <AndroidStyleSheet>(screenName, ValueStack, controller);
                var currentScreen = new ScreenData(screenName, controllerName, scr);

                FlipScreen(scr.View, isBackCommand, isRefresh);

                if (Settings.DevelopModeEnabled)
                {
                    string message = string.Format("{0}\n{1}"
                                                   , screenName
                                                   , (DateTime.Now - startLoading).ToString("ss\\.ff"));
                    Toast.MakeText(_baseActivity, message, ToastLength.Short).Show();
                }

                ThreadPool.QueueUserWorkItem(Finish, CurrentScreen);

                CurrentScreen = currentScreen;

                return(true);
            }
            catch (Exception e)
            {
                HandleException(e);

                return(false);
            }
        }
Exemple #2
0
 public IScreenController CreateScreenController(string controllerName)
 {
     return(ControllerFactory.CreateInstance().CreateController <ScreenController>(controllerName));
 }
Exemple #3
0
        static void Main(string[] args)
        {
            Console.WriteLine(" Main function invokded by Primary thread {0}.", Thread.CurrentThread.ManagedThreadId);

            ArithmaticOperqtion opn1 = new ArithmaticOperqtion(Addition);

            TaxController controller = ControllerFactory.CreateInstance();

            // Controller action method registration

            TaxOperation tax1 = new TaxOperation(controller.PayIncomeTax);
            TaxOperation tax2 = new TaxOperation(controller.PaySalesTax);
            TaxOperation tax3 = new TaxOperation(controller.PayServiceTax);


            //perform asynchronous action methods

            IAsyncResult iarTax1 = tax1.BeginInvoke(null, null);
            IAsyncResult iarTax2 = tax2.BeginInvoke(null, null);
            IAsyncResult iarTax3 = tax3.BeginInvoke(null, null);


            //Perform other tasks independent of
            //taxation using primary Thread
            //Listen for incomming requests from client



            while (!iarTax1.AsyncWaitHandle.WaitOne(1000, true))
            {
                Console.WriteLine(".....Get other customer details!");
                Console.WriteLine("Primary thread {0}.", Thread.CurrentThread.ManagedThreadId);
            }

            while (!iarTax2.AsyncWaitHandle.WaitOne(1000, true))
            {
                Console.WriteLine(".....Get other customer details!");
                Console.WriteLine("Primary thread {0}.", Thread.CurrentThread.ManagedThreadId);
            }

            while (!iarTax3.AsyncWaitHandle.WaitOne(1000, true))
            {
                Console.WriteLine(".....Get other customer details!");
                Console.WriteLine("Primary thread {0}.", Thread.CurrentThread.ManagedThreadId);
            }

            tax1.EndInvoke(iarTax1);
            tax2.EndInvoke(iarTax2);
            tax3.EndInvoke(iarTax3);


            Console.WriteLine(" primary thread recieved notification");
            Console.WriteLine(" primary thread now started other work after taxation");

            /*
             *          int op1 = 45;
             *          int op2 = 3;
             *
             *          // int result = opn1(op1, op2);
             *         IAsyncResult iftAR= opn1.BeginInvoke(op1, op2, null, null);
             *
             *          // This message will keep printing until the Add() method is finished.
             *          while (!iftAR.AsyncWaitHandle.WaitOne(1000, true))
             *          {
             *              Console.WriteLine("Doing more work in Main()!");
             *              Console.WriteLine("Primary thread {0}.", Thread.CurrentThread.ManagedThreadId);
             *          }
             *
             *          int result = opn1.EndInvoke(iftAR);
             *          Console.WriteLine(" Result = {0}", result);
             *          Console.WriteLine(result);
             */
            Console.ReadLine();
        }
Exemple #4
0
        public bool OpenScreen(String screenName
                               , string controllerName, Dictionary <String
                                                                    , object> parameters = null
                               , bool isBackCommand = false
                               , bool isRefresh     = false)
        {
            try {
                Busy = true;

                _back    = null;
                _forward = null;

                ValueStack = new ValueStack.ValueStack(_exceptionHandler);
                ValueStack.Push("common", _commonData);
                ValueStack.Push("context", this);
                ValueStack.Push("dao", DAL.DAO);

                foreach (var variable in GlobalVariables)
                {
                    ValueStack.Push(variable.Key, variable.Value);
                }

                if (parameters != null)
                {
                    foreach (KeyValuePair <String, object> item in parameters)
                    {
                        ValueStack.Push(item.Key, item.Value);
                    }
                }

                Controllers.ScreenController newController =
                    ControllerFactory.CreateInstance().CreateController <Controllers.ScreenController> (controllerName);
                ValueStack.Push("controller", newController);
                screenName = newController.GetView(screenName);

                TabOrderManager.Create(this);

                Screen scr = (Screen)Factory.ScreenFactory.CreateInstance().CreateScreen <IOSStyleSheet> (screenName, ValueStack, newController);

                if (CurrentScreen != null)
                {
                    ((IDisposable)CurrentScreen.Screen).Dispose();
                }
                CurrentScreen = new ScreenData(screenName, controllerName, scr);

                ScreenController viewController = new ScreenController(scr.View);

                if (!isRefresh)
                {
                    _controller.SetViewControllers(new UIViewController[] {
                        _controller.TopViewController
                    }, false);

                    if (!isBackCommand)
                    {
                        _controller.PushViewController(viewController, true);
                    }
                    else
                    {
                        _controller.SetViewControllers(new UIViewController[] {
                            viewController,
                            _controller.TopViewController
                        }, false);
                        _controller.PopViewControllerAnimated(true);
                    }
                }
                else
                {
                    _controller.PopViewControllerAnimated(false);
                    _controller.PushViewController(viewController, false);
                }
            } catch (Exception ex) {
                HandleException(ex);
            } finally {
                ActionHandler.Busy   = false;
                ActionHandlerEx.Busy = false;
                Busy = false;
            }
            return(true);
        }
Exemple #5
0
 public void ClearControllersCache()
 {
     ControllerFactory.CreateInstance().ClearCache();
 }