using ImGuiNET; using System.Numerics; using SzCore; using SzCore.DataObjects; namespace SzGui.Windows; public class SzDatasetViewerWindow : SzGuiWindowBase { private readonly SzDataset _dataset; public SzDatasetViewerWindow(SzDataset dataset) { _dataset = dataset; WindowName = $"Dataset: {dataset.Name} ({dataset.DataObjectTemplateId})"; } protected override void RenderContent() { if (ImGui.Button("Add New Object")) { SzApp.AppInstance.ActivateWindow(new NewObjectModal(_dataset)); } ImGui.Separator(); if (ImGui.BeginTable("ObjectTable", 2, ImGuiTableFlags.Borders | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY)) { ImGui.TableSetupColumn("Object Name", ImGuiTableColumnFlags.WidthStretch); ImGui.TableSetupColumn("Actions", ImGuiTableColumnFlags.WidthFixed, 110); ImGui.TableHeadersRow(); foreach (var dataObj in _dataset.DataObjects.Values.ToList()) { ImGui.TableNextRow(); ImGui.TableNextColumn(); ImGui.TextUnformatted(dataObj.Name); ImGui.TableNextColumn(); if (ImGui.SmallButton($"Edit##{dataObj.Id}")) { SzApp.AppInstance.ActivateWindow(new SzDataObjectEditorWindow(_dataset, dataObj)); } ImGui.SameLine(); if (ImGui.SmallButton($"Delete##{dataObj.Id}")) { _dataset.DataObjects.Remove(dataObj.Id); _ = SZ.DataHandler.SaveDatasetAsync(_dataset); } } ImGui.EndTable(); } } }