/// <inheritdoc /> public void Remove(InfoWidget widget) { this.infos.Remove(WidgetToStringMap[widget], out var removedWidget); if (removedWidget is IDisposable disposable) { disposable.Dispose(); } }
private IInfoViewModel AddWidget(InfoWidget widget, IInfoViewModel viewModel) { var key = WidgetToStringMap[widget]; if (!this.infos.TryAdd(key, viewModel)) { throw new ArgumentException(key + " already exists!"); } return(viewModel); }
/// <inheritdoc /> public void Add(InfoWidget widget) { IInfoViewModel viewModel = widget switch { InfoWidget.RamDisk => new RamInfoViewModel(this.infoFormatService, this.loggerFactory.CreateLogger <RamInfoViewModel>()), InfoWidget.Displays => new DisplaysViewModel(), InfoWidget.Cpu => new CpuInfoViewModel(this.loggerFactory), _ => throw new ArgumentOutOfRangeException(nameof(widget), widget, @"Specified widget not supported.") }; this.AddWidget(widget, viewModel).RaiseChanges(); }
public PreferencesWindow(ILoggingService loggingService) : base(WindowType.Toplevel) { Build(); var rootNotebook = new Notebook(); rootVBox.PackStart(rootNotebook); console = new ConsoleWidget(loggingService); rootNotebook.AppendPage(console, new Label("Console")); preferences = new PreferencesWidget(); rootNotebook.AppendPage(preferences, new Label("Appearance")); info = new InfoWidget(); rootNotebook.AppendPage(info, new Label("Info")); rootNotebook.ShowAll(); }
private void InitializeBehaviour() { Icon = Resources.FormData.ToIcon(); Text = NameConventions.MakeTitle(entity.Title, "Formulário"); var properties = from property in entity.Properties where !property.Name.StartsWith("_") && !(property.Value is PropertyCollection) select property; foreach (Property property in properties) { var header = entity.FindHeader(property.Name, Rel.Data); var headerTitle = header.Properties["title"]?.Value?.ToString(); IWidget widget = new InfoWidget(); widget.Title = headerTitle ?? property.Name.ChangeCase(TextCase.ProperCase); widget.Value = property.Value; widget.Control.Width = 200; pnContent.Controls.Add(widget.Control); } }