Esempio n. 1
0
        private void InitScatterViewEvents() {
            _fe = (FloatingElement) DataContext;
            //if (_fe.Style == null) _fe.Style = this.FindResource("DefaultContainerStyle") as Style;
            _svi = (ScatterViewItem) Helpers.FindElementOfTypeUp(this, typeof (ScatterViewItem));

            if (_fe == null || _svi == null) return;
            _fe.PropertyChanged += FePropertyChanged;

            _floatingViewModel = IoC.Get<IFloating>();

            //TODO: get scatterview instead of window
            _sv = Application.Current.MainWindow;
            // (ScatterView)BaseWPFHelpers.Helpers.FindElementOfTypeUp(_svi, typeof(ScatterView));

            _fe.FlipEvent += FeFlipEvent;
            _fe.UnFlipEvent += FeUnFlipEvent;


            _svi.IsManipulationEnabled = !_fe.PromoteToMouse;

            _svi.ContainerManipulationCompleted += SviScatterManipulationCompleted;
            _svi.ContainerManipulationStarted += SviScatterManipulationStarted;
            _svi.ContainerManipulationDelta += SviScatterManipulationDelta;
            _svi.TouchDown += SviContactDown;
            //_svi.CanMove = false;

            _fe.DockingStyleChanged += _fe_DockingStyleChanged;

            SizeChanged += UcFloatingElementContainerSizeChanged;

            _svi.SetBinding(ScatterContentControlBase.CanMoveProperty,
                new Binding {Source = _fe, Path = new PropertyPath("CanMove")});
            _svi.SetBinding(ScatterContentControlBase.CanRotateProperty,
                new Binding {Source = _fe, Path = new PropertyPath("CanRotate")});
            _svi.SetBinding(ScatterContentControlBase.CanScaleProperty,
                new Binding {Source = _fe, Path = new PropertyPath("CanScale")});
            _svi.SetBinding(ScatterContentControlBase.ShowsActivationEffectsProperty,
                new Binding {Source = _fe, Path = new PropertyPath("ShowsActivationEffects")});

            if (_fe.DockingStyle != DockingStyles.None)
                _svi.SetBinding(VisibilityProperty,
                    new Binding {
                        Source = AppStateSettings.Instance,
                        Path = new PropertyPath("DockedFloatingElementsVisible"),
                        Converter = new BooleanToVisibilityConverter()
                    });


            //_svi.CanMove = false;
            //_svi.CanScale = false;
            //_svi.CanRotate = false;

            Loaded += FloatingContainerLoaded;

            Close += FloatingContainerClose;

            PreviewMouseDoubleClick += FloatingContainerPreviewMouseDoubleClick;
        }
Esempio n. 2
0
        public ShellViewModel(CompositionContainer container)
        {
            // load visuals
            this.container = container;
            plugins = container.GetExportedValue<IPlugins>();
            popups = container.GetExportedValue<IPopups>();
            floating = container.GetExportedValueOrDefault<IFloating>();
            AppState.Container = this.container;
            AppState.FullScreenFloatingElementChanged += (e, s) => NotifyOfPropertyChange(() => FullScreen);
            
            // load module
            AppState.State = AppStates.Starting;

            //Load configuration
            AppState.Config.LoadOfflineConfig();
            AppState.Config.LoadLocalConfig();
            AppState.Config.UpdateValues();
            BackgroundWorker barInvoker = new BackgroundWorker();
            barInvoker.DoWork += delegate
            {
                Thread.Sleep(TimeSpan.FromSeconds(10));
                AppState.ViewDef.CheckOnlineBaseLayerProviders();
            };
            barInvoker.RunWorkerAsync();
            
            
            
            var b = container.GetExportedValues<IModule>();
            module = b.FirstOrDefault();
            if (module == null) return;

            AppState.Config.ApplicationName = module.Name;

            AppState.State = AppStates.AppInitializing;
            AppState.ViewDef.RememberLastPosition = AppState.Config.GetBool("Map.RememberLastPosition", true);

            AppState.MapStarted += (e, f) =>
            {
                AppState.StartFramework(true, true, true, true);

                AppState.ShareContracts.Add(new EmailShareContract());
                AppState.ShareContracts.Add(new QrShareContract());

                var g = AppState.AddDownload("Init", "StartPoint");

                // start framework
                AppState.State = AppStates.FrameworkStarting;
                AddMainMenuItems();

                // set map
                if (AppState.ViewDef.RememberLastPosition)
                {
                    var extent = (AppState.Config.Get("Map.Extent", "-186.09257071294,-101.374056570352,196.09257071294,204.374056570352"));
                    if (!string.IsNullOrEmpty(extent))
                        AppState.ViewDef.MapControl.Extent = (Envelope)new EnvelopeConverter().ConvertFromString(extent);
                }

                // start app
                AppState.State = AppStates.AppStarting;

                // init plugins


                module.StartApp();

                // app ready
                AppState.State = AppStates.AppStarted;
                AppState.Imb.UpdateStatus();
                AppState.FinishDownload(g);

                // Show timeline player (EV: I've tried to turn it on earlier during the startup process, but that didn't work 
                // (most likely, because something wasn't loaded or initialized correctly).
                AppState.TimelineManager.PlayerVisible = AppState.Config.GetBool("Timeline.PlayerVisible", false);
            };
            
            module.InitializeApp();

        }