using System; using InABox.Configuration; using InABox.Core; namespace Comal.Classes { public enum KanbanView { Status, User, Planner, List } public abstract class KanbanSettingsSection { } public abstract class KanbanCardSettings : KanbanSettingsSection { public KanbanCardSettings() { CompactView = false; IncludeCompleted = false; IncludeObserved = true; } public bool CompactView { get; set; } public bool IncludeCompleted { get; set; } public bool IncludeObserved { get; set; } } public class KanbanStatusSettings : KanbanCardSettings { public KanbanStatusSettings() { SelectedEmployee = Guid.Empty; SelectedType = CoreUtils.FullGuid; IncludeLocked = true; } public Guid SelectedEmployee { get; set; } public Guid SelectedType { get; set; } public bool IncludeLocked { get; set; } } public class KanbanUserSettings : KanbanCardSettings { public KanbanUserSettings() { TeamsHeight = 200.0F; AnchorWidth = 300.0F; SelectedTeams = new Guid[] { }; SelectedEmployees = new Guid[] { }; IncludeManaged = false; } public double AnchorWidth { get; set; } public double TeamsHeight { get; set; } public Guid[] SelectedTeams { get; set; } public Guid[] SelectedEmployees { get; set; } public bool IncludeManaged { get; set; } } public class KanbanPlannerSettings : KanbanSettingsSection { public KanbanPlannerSettings() { SelectedType = CoreUtils.FullGuid; IncludeCompleted = false; } public Guid SelectedType { get; set; } public bool IncludeCompleted { get; set; } } public class KanbanListSettings : KanbanSettingsSection { } public class KanbanSettings : IUserConfigurationSettings { public KanbanSettings() { ViewType = KanbanView.Status; StatusSettings = new KanbanStatusSettings(); UserSettings = new KanbanUserSettings(); PlannerSettings = new KanbanPlannerSettings(); ListSettings = new KanbanListSettings(); } public KanbanView ViewType { get; set; } public KanbanStatusSettings StatusSettings { get; set; } public KanbanUserSettings UserSettings { get; set; } public KanbanPlannerSettings PlannerSettings { get; set; } public KanbanListSettings ListSettings { get; set; } } }