/// <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; }
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); }); }); }
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)); }
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(); } }