Esempio n. 1
0
 /// <summary>
 /// Called before the <see cref="E:System.Windows.UIElement.MouseLeftButtonDown" /> event occurs.
 /// </summary>
 /// <param name="e">The data for the event.</param>
 protected override void OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs e)
 {
     _isDragging = true;
     CaptureMouse();
     if (e != null)
         _mouseOffset = e.GetPosition(null);
     _item = DataContext as IGadgetViewModel;
 }
Esempio n. 2
0
        private void PrepareGadget(IGadgetViewModel vm)
        {
            vm.Close += (s, e) =>
                {
                    var gvm = (IGadgetViewModel)s;

                    var gadgetEdit = _gadgets.FirstOrDefault(g => g.Guid == gvm.Guid);
                    if (gadgetEdit != null)
                    {
                        _gadgets.Remove(gadgetEdit);

                        if (!Utils.CurrentUserIsAdmin)
                        {
                            gadgetEdit.Delete();
                            gadgetEdit.BeginSave();
                        }
                    }

                    Gadgets.Remove(vm);
                };

            Observable
                .FromEventPattern(
                    h => vm.RequestSave += h,
                    h => vm.RequestSave -= h)
                .Throttle(TimeSpan.FromMilliseconds(150))
                .Subscribe(
                    args =>
                    {
                        var gvm = (IGadgetViewModel)args.Sender;

                        // update all gadgets settings
                        var gadgetEdit = _gadgets.FirstOrDefault(g => g.Guid == gvm.Guid);
                        if (gadgetEdit == null)
                            return;

                        gadgetEdit.Name = gvm.Name;
                        gadgetEdit.Settings = GetXmlFromSettings(gvm.GetSettings());
                        gadgetEdit.DashboardPageId = Model.Id;

                        if (Utils.CurrentUserIsAdmin)
                        {
                            ((IGadgetViewModel)args.Sender).IsBusy = false;
                            return;
                        }

                        gadgetEdit.BeginSave(
                            (gs, ge) =>
                            {
                                ((IGadgetViewModel)args.Sender).IsBusy = false;

                                if (ge.Error != null)
                                    Logger.Log(LogSeverity.Error, GetType().FullName, ge.Error);
                            });
                    });
        }
Esempio n. 3
0
        private void RecreateGadgetsInternal(IGadgetViewModel[] oldGadgetsList = null)
        {
            var oldGadgets = oldGadgetsList ?? Gadgets.ToArray();

            CleanUp();
            if (_gadgets == null)
            {
                _updatingGadgets = false;
                return;
            }

            foreach (var gadget in _gadgets)
            {
                var gadgetDef = AvailableGadgets.FirstOrDefault(g => g.GetType().FullName.Equals(gadget.GadgetType));
                if (gadgetDef == null)
                    continue;

                // find generic view model
                var myVM = GadgetViewModelFactory.FirstOrDefault(x => x.Metadata.GadgetType == gadgetDef.GetType())
                           ?? GadgetViewModelFactory.FirstOrDefault(x => x.Metadata.GadgetType == typeof(IGadget));

                if (myVM == null)
                    continue;
                
                var result = myVM.CreateExport();
                var vm = result.Value;
                vm.Init(gadgetDef, gadget.Guid, gadget.Name, GetSettingsFromXml(gadget.Settings), oldGadgets.FirstOrDefault(g => g.Guid == gadget.Guid), gadget.IsLocked);
                PrepareGadget(vm);
                Gadgets.Add(vm);
            }

            _updatingGadgets = false;

            TheEventAggregator.Value.Publish(new GadgetsLoaded(this));
        }
Esempio n. 4
0
        private async void SetProcesses(IGadgetViewModel[] oldGadgetsList = null)
        {
            if (BaseProcessGadgetViewModel.NeedToGetAvailableProcesses)
            {
                PublishedProcesses result;

                try
                {
                    result = await PublishedProcessFactory.GetAvailablePublishedProcessesCached();
                }
                catch (Exception ex)
                {
                    _updatingGadgets = false;
                    Logger.Log(LogSeverity.Error, GetType().FullName, ex);

                    return;
                }

                BaseProcessGadgetViewModel.SetAvailableProcesses(result);
                RecreateGadgetsInternal(oldGadgetsList);
            }
            else
                RecreateGadgetsInternal(oldGadgetsList);
        }
        /// <summary>
        /// Initializes from base.
        /// </summary>
        /// <param name="baseGadget">The base gadget.</param>
        protected override void InitFromBase(IGadgetViewModel baseGadget)
        {
            base.InitFromBase(baseGadget);

            SuppressSetup = true;

            var oldGadget = baseGadget as ProcessKpiListGadgetViewModel;

            if (oldGadget == null)
                return;

            if (SelectedProcess == null)
                SelectedProcess = oldGadget.ProcessInfo.SystemName;

            SelectedKPIs = oldGadget.SelectedKPIs;

            KPIs.Clear();
            foreach (var kpi in oldGadget.KPIs)
                KPIs.Add(kpi);

            SuppressSetup = false;
        }
        /// <summary>
        /// Initializes from base.
        /// </summary>
        /// <param name="baseGadget">The base gadget.</param>
        protected override void InitFromBase(IGadgetViewModel baseGadget)
        {
            base.InitFromBase(baseGadget);

            SuppressSetup = true;

            var oldGadget = baseGadget as ProcessMetricsGadgetViewModel;

            if (oldGadget == null)
                return;

            if (oldGadget.ProcessInfo != null && !string.IsNullOrEmpty(oldGadget.ProcessInfo.SystemName))
                SelectedProcess = oldGadget.ProcessInfo.SystemName;

            ChartType = oldGadget.ChartType;
            SelectedMetric = oldGadget.SelectedMetric;
            SelectedFilter = oldGadget.SelectedFilter;

            SuppressSetup = false;
        }
        /// <summary>
        /// Initializes from base.
        /// </summary>
        /// <param name="baseGadget">The base gadget.</param>
        protected override void InitFromBase(IGadgetViewModel baseGadget)
        {
            try
            {
                RefreshTimer.Stop();

                base.InitFromBase(baseGadget);

                SuppressSetup = true;

                var oldGadget = baseGadget as ProcessSearchGridGadgetViewModel;

                if (oldGadget == null)
                    return;

                if (SelectedProcess == null)
                    SelectedProcess = oldGadget.ProcessInfo.SystemName;

                AdminFilterList = oldGadget.AdminFilterList;
                UserFilterList = oldGadget.UserFilterList;

                SelectedFilterMode = oldGadget.SelectedFilterMode;

                _processedFilter = oldGadget._processedFilter;
                if (ChosenFilter == null)
                    ChosenFilter = oldGadget.ChosenFilter;

                LayoutList = oldGadget.LayoutList;

                if (SelectedLayout == null)
                    SetSelectedLayout(oldGadget.SelectedLayout, true);

                _originalSelectedLayout = oldGadget._originalSelectedLayout;

                UseDefaultLayout = oldGadget.UseDefaultLayout;

                SuppressSetup = false;
            }
            finally
            {
                RefreshTimer.Start();
            }
        }