示例#1
0
 public void ControlTapped(object sender, GestureEventArgs e)
 {
     if (TapCommand != null)
     {
         TapCommand.Execute(TapCommandParameter);
     }
 }
        void InitializeProperties()
        {
            var list = new List <PhotoItem>();

            for (var i = 0; i < 20; i++)
            {
                list.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "AAA",
                });
            }


            ItemsSource = new PhotoGroup(list);


            TapCommand.Subscribe(async item => {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"Tap {photo.Title}", "OK");
            });

            LongTapCommand.Subscribe(async item => {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"LongTap {photo.Title}", "OK");
            });

            RefreshCommand.Subscribe(async _ => {
                await Task.Delay(3000);
                IsRefreshing.Value = false;
            });
        }
 private void TapCalled(object sender, GestureEventArgs e)
 {
     if (TapCommand != null && TapCommand.CanExecute(sender))
     {
         TapCommand.Execute(sender);
     }
 }
        public TabHostView()
        {
            TabItemTappedCommand = new TapCommand(OnTabItemTapped);

            Tabs.CollectionChanged += OnTabsCollectionChanged;

            base.BackgroundColor = Color.Transparent;

            _grid = new Grid
            {
                RowSpacing        = 0,
                ColumnSpacing     = 0,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Fill,
                BackgroundColor   = this.BackgroundColor,
            };

            _frame = new Frame
            {
                Padding           = 0,
                HasShadow         = false,
                IsClippedToBounds = true,
                CornerRadius      = this.CornerRadius,
                BackgroundColor   = Color.Transparent,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Fill,
                BorderColor       = SegmentedOutlineColor,
            };

            UpdateTabType();

            Shades = new List <Shade>();
        }
        public TabHostView()
        {
            RowSpacing    = 0;
            ColumnSpacing = 0;

            TabItemTappedCommand = new TapCommand(OnTabItemTapped);

            ChildAdded   += OnChildAdded;
            ChildRemoved += OnChildRemoved;
        }
示例#6
0
 public void OnTapped(float x = 0, float y = 0)
 {
     if (TapCommand != null)
     {
         TapCommand.Execute(TapCommandParameter);
     }
     else
     {
         RaiseTapEvent(x, y);
     }
 }
        public TriggerTestViewModel(IPageDialogService pageDialog)
        {
            TapCommand.Subscribe(async _ =>
            {
                await pageDialog.DisplayAlertAsync("", "Tap", "OK");
            });

            LongTapCommand.Subscribe(async _ =>
            {
                await pageDialog.DisplayAlertAsync("", "LongTap", "OK");
            });
        }
示例#8
0
        public TabHostView()
        {
            TabItemTappedCommand = new TapCommand(OnTabItemTapped);

            Tabs.CollectionChanged += OnTabsCollectionChanged;

            _grid = new Grid
            {
                RowSpacing        = 0,
                ColumnSpacing     = 0,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Fill,
            };

            UpdateTabType();
        }
        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="dialogPageService"></param>
        public MainPageViewModel(IPageDialogService dialogPageService
                                 , INavigationService navigationService)
        {
            _dialogPageService = dialogPageService;
            _navigationService = navigationService;

            // スケジュール一覧に表示するスケジュールを取得し、項目のViewModelを作成する。
            _manager = new ScheduleManager();

            // スケジュール一覧の項目タップ処理を実装。
            TapCommand.Subscribe(x => OnTapCommandAsync(x));

            // リマインダ行タップコマンドの実装。
            TapReminderCommand = new Command <ScheduleReminderViewModel>(async x =>
            {
                Debug.WriteLine("TapReminderCommand");
                await _navigationService.NavigateAsync("NavigationPage/ReminderEditPage", useModalNavigation: true);
            });
        }
 private void OnTapped(object sender, EventArgs e)
 {
     Device.BeginInvokeOnMainThread(async() => await this.ClickAnimation());
     TapCommand?.Execute(TapCommandParameter);
 }
        /// <summary>
        ///
        /// </summary>
        public AtomCalendar()
        {
            RowSpacing    = 5;
            ColumnSpacing = 5;
            Padding       = new Thickness(5);

            this.RowDefinitions.Add(new RowDefinition {
                Height = GridLength.Auto
            });
            this.RowDefinitions.Add(new RowDefinition {
            });

            this.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(2, GridUnitType.Star)
            });
            this.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(8, GridUnitType.Star)
            });
            this.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(5, GridUnitType.Star)
            });
            this.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(2, GridUnitType.Star)
            });


            listView = new AtomGridView();

            /*listView.SetBinding(AtomListView.TapCommandProperty, new Binding() {
             *  Source = this,
             *  Path = nameof(TapCommand)
             * });*/

            listView.TapCommand = new AtomCommand(o => {
                try
                {
                    isDateChanging    = true;
                    this.SelectedDate = ((AtomDateModel)o).Value;
                }
                finally {
                    isDateChanging = false;
                }
                TapCommand?.Execute(o);
                return(Task.CompletedTask);
            });

            monthPicker = new AtomChooser()
            {
                ValuePath = "Value"
            };

            DateTime start = new DateTime(2012, 1, 1);

            for (int i = 0; i < 12; i++)
            {
                monthList.Add(new AtomData <int>(start.ToString("MMMMMM"), i + 1));
                start = start.AddMonths(1);
            }

            //monthPicker.SelectedIndexChanged += (s, e) => {
            //    CurrentMonth = monthPicker.SelectedIndex + 1;
            //};

            //monthPicker.SelectedIndex = CurrentMonth - 1;



            yearPicker = new AtomChooser()
            {
                ValuePath = "Value"
            };

            yearPicker.LabelPath = monthPicker.LabelPath = "Label";

            yearPicker.ItemTemplate = monthPicker.ItemTemplate = new DataTemplate(() => {
                Label label = new Label();
                label.SetBinding(Label.TextProperty, new Binding()
                {
                    Path = "Label"
                });
                return(label);
            });



            //yearPicker.SelectedIndexChanged += (s, e) => {
            //    CurrentYear = int.Parse(yearPicker.Items[yearPicker.SelectedIndex]);
            //};

            UpdateYears();



            monthPicker.SetBinding(AtomChooser.ValueProperty, new Binding()
            {
                Source = this,
                Path   = "CurrentMonth",
                Mode   = BindingMode.TwoWay
            });

            monthPicker.ShowSearch        = false;
            monthPicker.ShowAsPopupButton = true;

            yearPicker.ShowSearch        = false;
            yearPicker.ShowAsPopupButton = true;

            yearPicker.SetBinding(AtomChooser.ValueProperty, new Binding()
            {
                Source = this,
                Path   = "CurrentYear",
                Mode   = BindingMode.TwoWay
            });

            yearPicker.ItemsSource  = yearList;
            monthPicker.ItemsSource = monthList;


            // first row..
            SetColumn(monthPicker, 1);
            SetColumn(yearPicker, 2);
            SetColumn(rightButton, 3);


            // second row
            SetColumnSpan(listView, 4);
            SetRow(listView, 1);


            this.Children.Add(leftButton);
            this.Children.Add(monthPicker);
            this.Children.Add(yearPicker);
            this.Children.Add(listView);
            this.Children.Add(rightButton);



            UpdateList();

            leftButton.Command = new AtomCommand(() => {
                if (CurrentMonth == 1)
                {
                    CurrentMonth = 12;
                    CurrentYear  = CurrentYear - 1;
                }
                else
                {
                    CurrentMonth = CurrentMonth - 1;
                }
                return(Task.CompletedTask);
            });


            rightButton.Command = new AtomCommand(() => {
                if (CurrentMonth == 12)
                {
                    CurrentMonth = 1;
                    CurrentYear  = CurrentYear + 1;
                }
                else
                {
                    CurrentMonth = CurrentMonth + 1;
                }
                return(Task.CompletedTask);
            });
        }
示例#12
0
 private void OnTapped(object sender, EventArgs e)
 {
     this.ClickAnimation();
     TapCommand?.Execute(TapCommandParameter);
 }
示例#13
0
        void InitializeProperties()
        {
            var list1 = new List <PhotoItem>();

            for (var i = 0; i < 20; i++)
            {
                list1.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "AAA",
                });
            }
            var list2 = new List <PhotoItem>();

            for (var i = 10; i < 15; i++)
            {
                list2.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "BBB",
                });
            }
            var list3 = new List <PhotoItem>();

            for (var i = 5; i < 20; i++)
            {
                list3.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "CCC",
                });
            }
            var list4 = new List <PhotoItem>();

            for (var i = 1; i < 10; i++)
            {
                list4.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "DDD",
                });
            }

            var noGroupList = new List <PhotoItem>();

            for (var i = 0; i < 20; i++)
            {
                noGroupList.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "AAA",
                });
            }
            ItemsSource2 = new PhotoGroup(noGroupList);

            var group1 = new PhotoGroup(list1)
            {
                Head = "SecA"
            };
            var group2 = new PhotoGroup(list2)
            {
                Head = "SecB"
            };
            var group3 = new PhotoGroup(list3)
            {
                Head = "SecC"
            };

            ItemsSource.Add(group1);
            ItemsSource.Add(group2);
            ItemsSource.Add(group3);
            _additionalGroup = new PhotoGroup(list4)
            {
                Head = "SEC4"
            };

            TapCommand.Subscribe(async item =>
            {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"Tap {photo.Title}", "OK");
            });

            LongTapCommand.Subscribe(async item =>
            {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"LongTap {photo.Title}", "OK");
            });

            var addItem = new PhotoItem
            {
                PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/1.jpg",
                Title    = $"AddItem",
                Category = "AAA"
            };

            var addPtn = 0;

            AddCommand.Subscribe(_ =>
            {
                switch (addPtn)
                {
                case 0:
                    group1.Add(addItem);
                    break;

                case 1:
                    group1.Insert(0, addItem);
                    break;

                case 2:
                    group1.Insert(group1.Count / 2, addItem);
                    break;
                }

                addPtn++;
                if (addPtn > 2)
                {
                    addPtn = 0;
                }
            });

            var delPtn = 0;

            DelCommand.Subscribe(_ =>
            {
                switch (delPtn)
                {
                case 0:
                    group1.RemoveAt(0);
                    break;

                case 1:
                    group1.RemoveAt(group1.Count / 2);
                    break;

                case 2:
                    group1.RemoveAt(group1.Count - 1);
                    break;
                }
                delPtn++;
                if (delPtn > 2)
                {
                    delPtn = 0;
                }
            });

            RepCommand.Subscribe(_ =>
            {
                group1[0] = addItem;
            });

            MoveCommand.Subscribe(_ =>
            {
                group1.Move(0, 3);
            });


            AddSecCommand.Subscribe(_ =>
            {
                ItemsSource.Add(_additionalGroup);
            });

            DelSecCommand.Subscribe(_ =>
            {
                ItemsSource.RemoveAt(ItemsSource.Count - 1);
            });
        }
示例#14
0
        public DemoPageViewModel(IPageDialogService pageDialog, IToast toast)
        {
            _toast   = toast;
            _pageDlg = pageDialog;

            var list1 = new List <PhotoItem>();

            for (var i = 0; i < 20; i++)
            {
                list1.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "AAA",
                });
            }
            var list2 = new List <PhotoItem>();

            for (var i = 10; i < 15; i++)
            {
                list2.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "BBB",
                });
            }
            var list3 = new List <PhotoItem>();

            for (var i = 5; i < 20; i++)
            {
                list3.Add(new PhotoItem
                {
                    PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                    Title    = $"Title {i + 1}",
                    Category = "CCC",
                });
            }

            var group1 = new PhotoGroup(list1)
            {
                Head = "SectionA"
            };
            var group2 = new PhotoGroup(list2)
            {
                Head = "SectionB"
            };
            var group3 = new PhotoGroup(list3)
            {
                Head = "SectionC"
            };

            ItemsSource.Add(group1);
            ItemsSource.Add(group2);
            ItemsSource.Add(group3);
            ItemsSourceH.Add(group1);
            ItemsSourceH.Add(group2);

            TapCommand.Subscribe(async item => {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"Tap {photo.Title}", "OK");
            });

            LongTapCommand.Subscribe(async item => {
                var photo = item as PhotoItem;
                await _pageDlg.DisplayAlertAsync("", $"LongTap {photo.Title}", "OK");
            });

            RefreshCommand.Subscribe(async _ => {
                await Task.Delay(3000);
                IsRefreshing.Value = false;
            });

            NextCommand.Subscribe(NextAction);

            var loadCount = 1;

            LoadMoreCommand.Subscribe(_ =>
            {
                if (loadCount == 10)
                {
                    SetEndLoadMore(true);
                    return;
                }
                var list = new List <PhotoItem>();
                for (var i = 5; i < 20; i++)
                {
                    list.Add(new PhotoItem
                    {
                        PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                        Title    = $"Title {i + 1}",
                        Category = "XXX",
                    });
                }

                var group = new PhotoGroup(list)
                {
                    Head = $"SectionX{loadCount}"
                };
                ItemsSource.Add(group);
                SetEndLoadMore(false);
                loadCount++;
            });

            var loadHCount = 1;

            LoadMoreHCommand.Subscribe(_ =>
            {
                if (loadHCount == 10)
                {
                    SetEndLoadMoreH(true);
                    return;
                }
                var list = new List <PhotoItem>();
                for (var i = 5; i < 20; i++)
                {
                    list.Add(new PhotoItem
                    {
                        PhotoUrl = $"https://kamusoft.jp/openimage/nativecell/{i + 1}.jpg",
                        Title    = $"Title {i + 1}",
                        Category = "XXX",
                    });
                }

                var group = new PhotoGroup(list)
                {
                    Head = $"SectionX{loadHCount}"
                };
                ItemsSourceH.Add(group);
                SetEndLoadMoreH(false);
                loadHCount++;
            });

            SetDemoItems();
        }
示例#15
0
    public void ClientSocketHandlerDidReadMessage(AltClientSocketHandler handler, string message)
    {
        string[]          separator = new string[] { requestSeparatorString };
        string[]          pieces    = message.Split(separator, System.StringSplitOptions.None);
        AltUnityComponent altComponent;
        AltUnityObject    altUnityObject;
        string            methodParameters;

        UnityEngine.Vector2 size;
        PLayerPrefKeyType   option;
        Command             command = null;

        try
        {
            switch (pieces[0])
            {
            case "findAllObjects":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2];
                command          = new FindAllObjectsCommand(methodParameters);
                break;

            case "findObjectByName":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectByNameCommand(methodParameters);
                break;

            case "findObjectWhereNameContains":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectWhereNameContainsCommand(methodParameters);
                break;

            case "tapObject":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new TapCommand(altUnityObject);
                break;

            case "findObjectsByName":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectsByNameCommand(methodParameters);
                break;

            case "findObjectsWhereNameContains":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectsWhereNameContainsCommand(methodParameters);
                break;

            case "getCurrentScene":
                command = new GetCurrentSceneCommand();
                break;

            case "findObjectByComponent":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3] + requestSeparatorString + pieces[4];
                command          = new FindObjectByComponentCommand(methodParameters);
                break;

            case "findObjectsByComponent":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3] + requestSeparatorString + pieces[4];
                command          = new FindObjectsByComponentCommand(methodParameters);
                break;

            case "getObjectComponentProperty":
                command = new GetComponentPropertyCommand(pieces[1], pieces[2]);
                break;

            case "setObjectComponentProperty":
                command = new SetObjectComponentPropertyCommand(pieces[1], pieces[2], pieces[3]);
                break;

            case "callComponentMethodForObject":
                command = new CallComponentMethodForObjectCommand(pieces[1], pieces[2]);
                break;

            case "closeConnection":
                UnityEngine.Debug.Log("Socket connection closed!");
                _socketServer.StartListeningForConnections();
                break;

            case "clickEvent":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new ClickEventCommand(altUnityObject);
                break;

            case "tapScreen":
                command = new ClickOnScreenAtXyCommand(pieces[1], pieces[2]);
                break;

            case "dragObject":
                UnityEngine.Vector2 positionVector2 = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[2]);
                command        = new DragObjectCommand(positionVector2, altUnityObject);
                break;

            case "dropObject":
                UnityEngine.Vector2 positionDropVector2 = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[2]);
                command        = new DropObjectCommand(positionDropVector2, altUnityObject);
                break;

            case "pointerUpFromObject":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new PointerUpFromObjectCommand(altUnityObject);
                break;

            case "pointerDownFromObject":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new PointerDownFromObjectCommand(altUnityObject);
                break;

            case "pointerEnterObject":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new PointerEnterObjectCommand(altUnityObject);
                break;

            case "pointerExitObject":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new PointerExitObjectCommand(altUnityObject);
                break;

            case "tilt":
                UnityEngine.Vector3 vector3 = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector3>(pieces[1]);
                command = new TiltCommand(vector3);
                break;

            case "movingTouch":
                UnityEngine.Vector2 start2 = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                UnityEngine.Vector2 end2   = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[2]);
                command = new SetMovingTouchCommand(start2, end2, pieces[3]);
                break;

            case "loadScene":
                command = new Assets.AltUnityTester.AltUnityServer.Commands.LoadSceneCommand(pieces[1]);
                break;

            case "setTimeScale":
                float timeScale = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[1]);
                command = new SetTimeScaleCommand(timeScale);
                break;

            case "getTimeScale":
                command = new GetTimeScaleCommand();
                break;

            case "deletePlayerPref":
                command = new DeletePlayerPrefCommand();
                break;

            case "deleteKeyPlayerPref":
                command = new DeleteKeyPlayerPrefCommand(pieces[1]);
                break;

            case "setKeyPlayerPref":
                option  = (PLayerPrefKeyType)System.Enum.Parse(typeof(PLayerPrefKeyType), pieces[3]);
                command = new SetKeyPlayerPrefCommand(option, pieces[1], pieces[2]);
                break;

            case "getKeyPlayerPref":
                option  = (PLayerPrefKeyType)System.Enum.Parse(typeof(PLayerPrefKeyType), pieces[2]);
                command = new GetKeyPlayerPrefCommand(option, pieces[1]);
                break;

            case "actionFinished":
                command = new ActionFinishedCommand();
                break;

            case "getAllComponents":
                command = new GetAllComponentsCommand(pieces[1]);
                break;

            case "getAllFields":
                altComponent = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityComponent>(pieces[2]);
                command      = new GetAllFieldsCommand(pieces[1], altComponent);
                break;

            case "getAllMethods":
                altComponent = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityComponent>(pieces[1]);
                command      = new GetAllMethodsCommand(altComponent);
                break;

            case "getAllScenes":
                command = new GetAllScenesCommand();
                break;

            case "getAllCameras":
                command = new GetAllCamerasCommand();
                break;

            case "getScreenshot":
                size    = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                command = new GetScreenshotCommand(size, handler);
                break;

            case "hightlightObjectScreenshot":
                var id = System.Convert.ToInt32(pieces[1]);
                size    = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[3]);
                command = new HighlightSelectedObjectCommand(id, pieces[2], size, handler);
                break;

            case "hightlightObjectFromCoordinatesScreenshot":
                var coordinates = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                size    = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[3]);
                command = new HightlightObjectFromCoordinatesCommand(coordinates, pieces[2], size, handler);
                break;

            case "pressKeyboardKey":
                var piece = pieces[1];
                UnityEngine.KeyCode keycode = (UnityEngine.KeyCode)System.Enum.Parse(typeof(UnityEngine.KeyCode), piece);
                float power    = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[2]);
                float duration = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[3]);
                command = new HoldButtonCommand(keycode, power, duration);
                break;

            case "moveMouse":
                UnityEngine.Vector2 location = Newtonsoft.Json.JsonConvert.DeserializeObject <UnityEngine.Vector2>(pieces[1]);
                duration = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[2]);
                command  = new MoveMouseCommand(location, duration);
                break;

            case "scrollMouse":
                var scrollValue = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[1]);
                duration = Newtonsoft.Json.JsonConvert.DeserializeObject <float>(pieces[2]);
                command  = new ScrollMouseCommand(scrollValue, duration);
                break;

            case "findObject":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectCommand(methodParameters);
                break;

            case "findObjects":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindObjectsCommand(methodParameters);
                break;

            case "findActiveObjectByName":
                methodParameters = pieces[1] + requestSeparatorString + pieces[2] + requestSeparatorString + pieces[3];
                command          = new FindActiveObjectsByNameCommand(methodParameters);
                break;

            case "enableLogging":
                var enableLogging = bool.Parse(pieces[1]);
                command = new EnableLoggingCommand(enableLogging);
                break;

            case "getText":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new GetTextCommand(altUnityObject);
                break;

            case "setText":
                altUnityObject = Newtonsoft.Json.JsonConvert.DeserializeObject <AltUnityObject>(pieces[1]);
                command        = new SetTextCommand(altUnityObject, pieces[2]);
                break;

            case "getPNGScreenshot":
                command = new GetScreenshotPNGCommand(handler);
                break;


            default:
                command = new UnknowStringCommand();
                break;
            }
        }
        catch (Newtonsoft.Json.JsonException exception)
        {
            UnityEngine.Debug.Log(exception);
            handler.SendResponse(errorCouldNotParseJsonString);
        }
        if (command != null)
        {
            command.SendResponse(handler);
        }
    }