aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy@twine-s.com>2020-12-30 15:11:34 +0000
committerRoy Ben Shabat <Roy@twine-s.com>2020-12-30 15:11:34 +0000
commitd33c19b3ac6803de4b5c8d475832efef131c1a45 (patch)
treeea725abc39def99a755b041c13cba1fe0d594ddc /Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs
parent1bdcaa9f51303bbff682507f31fb3b4414692ca4 (diff)
downloadTango-d33c19b3ac6803de4b5c8d475832efef131c1a45.tar.gz
Tango-d33c19b3ac6803de4b5c8d475832efef131c1a45.zip
Revert "Hope it is fine"
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs')
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs134
1 files changed, 134 insertions, 0 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs
new file mode 100644
index 000000000..0f5a49639
--- /dev/null
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Browser/ViewModels/BrowserViewVM.cs
@@ -0,0 +1,134 @@
+using CefSharp;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Core.Commands;
+using Tango.PPC.Browser.Navigation;
+using Tango.PPC.Browser.ViewContracts;
+using Tango.PPC.Common;
+using Tango.PPC.Common.Navigation;
+using Tango.Touch.Keyboard;
+
+namespace Tango.PPC.Browser.ViewModels
+{
+ /// <summary>
+ /// Represents the main view VM and entry point for <see cref="Synchronization.MyModule"/>.
+ /// </summary>
+ /// <seealso cref="Tango.PPC.Common.PPCViewModel" />
+ public class BrowserViewVM : PPCViewModel<IBrowserView>, INavigationObjectReceiver<BrowserNavigationRequest>
+ {
+ private bool _isFromObject;
+
+ private String _address;
+ public String Address
+ {
+ get { return _address; }
+ set { _address = value; RaisePropertyChangedAuto(); }
+ }
+
+ private bool _displayAddressBar;
+ public bool DisplayAddressBar
+ {
+ get { return _displayAddressBar; }
+ set { _displayAddressBar = value; RaisePropertyChangedAuto(); }
+ }
+
+ public RelayCommand GoCommand { get; set; }
+
+ public BrowserViewVM()
+ {
+ DisplayAddressBar = true;
+
+ GoCommand = new RelayCommand(Go);
+ }
+
+ public override void OnViewAttached()
+ {
+ base.OnViewAttached();
+ View.AddressChanged += View_AddressChanged;
+ }
+
+ private void View_AddressChanged(object sender, string address)
+ {
+ Address = address;
+ }
+
+ public override void OnNavigatedTo()
+ {
+ base.OnNavigatedTo();
+
+ KeyboardView.Default.OutputMode = KeyboardOutputMode.Windows;
+
+ if (!_isFromObject)
+ {
+ DisplayAddressBar = true;
+ }
+
+ _isFromObject = false;
+ }
+
+ public override void OnNavigatedFrom()
+ {
+ base.OnNavigatedFrom();
+ KeyboardView.Default.OutputMode = KeyboardOutputMode.Wpf;
+ }
+
+ public override Task<bool> OnNavigateBackRequest()
+ {
+ if (View != null && View.CanGoBack())
+ {
+ View.GoBack();
+ return Task.FromResult(false);
+ }
+ else
+ {
+ return Task.FromResult(true);
+ }
+ }
+
+ /// <summary>
+ /// Called when the application has been started
+ /// </summary>
+ public override void OnApplicationStarted()
+ {
+
+ }
+
+ public override void OnApplicationShuttingDown()
+ {
+ base.OnApplicationShuttingDown();
+
+ try
+ {
+ Cef.Shutdown();
+ }
+ catch (Exception ex)
+ {
+ LogManager.Log(ex, "Error shutting down cef.");
+ }
+ }
+
+ private void Go()
+ {
+ if (View != null)
+ {
+ View.NavigateTo(Address);
+ }
+ }
+
+ public void OnNavigatedToWithObject(BrowserNavigationRequest obj)
+ {
+ _isFromObject = true;
+
+ DisplayAddressBar = obj.DisplayAddressBar;
+
+ if (obj.Address != null)
+ {
+ Address = obj.Address;
+ Go();
+ }
+ }
+ }
+}