public static void Edit(this WidgetId id, bool dismiss = false) { var settings = id.GetSettings(); if (settings == null) { return; } var view = id.GetView(); var name = id.GetName(); var previousHorizontalAlignment = settings.HorizontalAlignment; var previousVerticalAlignment = settings.VerticalAlignment; var previousIsDocked = settings.IsDocked; if (dismiss) { view?.Dismiss(); } new WidgetEditor(name, settings).ShowDialog(); if (view != null && !view.IsClosed) { view.UpdateUi(isDocked: previousIsDocked, dockHorizontalAlignment: previousHorizontalAlignment, dockVerticalAlignment: previousVerticalAlignment); } }
private static void LoadView(this WidgetId id, bool systemStartup = false) { WidgetView widgetView = null; try { foreach (var view in App.WidgetViews.Where(view => view.Id == id).ToList()) { view.Close(); } widgetView = new WidgetView(id, id.GetNewViewModel(), id.GetNewControlView(), systemStartup); App.WidgetViews.Add(widgetView); widgetView.Show(); } catch (Exception ex) { widgetView?.Close(); var name = id.GetName(); Popup.ShowAsync($"{name} failed to load.\n\n{ex.Message}", image: MessageBoxImage.Error); } }
public static void CloseView(this WidgetId id, bool reload = false) { try { var view = id.GetView(); if (view == null) { id.LoadView(); return; } if (reload) { view.CloseAction = () => { id.LoadView(); }; } view.CloseAnimation(); } catch (Exception ex) { var name = id.GetName(); Popup.ShowAsync($"{name} failed to close.\n\n{ex.Message}", image: MessageBoxImage.Error); } }