public PlanWindowSettings() { DimUntrainable = true; OnlyShowSelectionSummaryOnMultiSelect = true; PrioritiesMsgBox = new CustomMsgBoxSettings(); ObsoleteEntryRemovalBehaviour = ObsoleteEntryRemovalBehaviour.RemoveConfirmed; var displayedColumns = new PlanColumn[] { PlanColumn.Priority, PlanColumn.SkillName, PlanColumn.TrainingTime, PlanColumn.SkillRank, PlanColumn.PrimaryAttribute, PlanColumn.SecondaryAttribute, PlanColumn.SkillGroup, PlanColumn.SPPerHour }; Columns = EnumExtensions.GetValues<PlanColumn>().Where(x => x != PlanColumn.None).Select(x => new PlanColumnSettings { Column = x, Visible = displayedColumns.Contains(x), Width = -1 }).ToArray(); }
public PlanWindowSettings() { DimUntrainable = true; ShowMsgBoxCustom = true; ShowObsEntriesMsgBox = true; var displayedColumns = new PlanColumn[] { PlanColumn.Priority, PlanColumn.SkillName, PlanColumn.TrainingTime, PlanColumn.SkillRank, PlanColumn.PrimaryAttribute, PlanColumn.SecondaryAttribute, PlanColumn.SkillGroup, PlanColumn.SPPerHour }; Columns = EnumExtensions.GetValues <PlanColumn>().Where(x => x != PlanColumn.None).Select(x => new PlanColumnSettings { Column = x, Visible = displayedColumns.Contains(x), Width = -1 }).ToArray(); }
public PlanWindowSettings() { DimUntrainable = true; OnlyShowSelectionSummaryOnMultiSelect = true; PrioritiesMsgBox = new CustomMsgBoxSettings(); ObsoleteEntryRemovalBehaviour = ObsoleteEntryRemovalBehaviour.RemoveConfirmed; var displayedColumns = new PlanColumn[] { PlanColumn.Priority, PlanColumn.SkillName, PlanColumn.TrainingTime, PlanColumn.SkillRank, PlanColumn.PrimaryAttribute, PlanColumn.SecondaryAttribute, PlanColumn.SkillGroup, PlanColumn.SPPerHour }; Columns = EnumExtensions.GetValues <PlanColumn>().Where(x => x != PlanColumn.None).Select(x => new PlanColumnSettings { Column = x, Visible = displayedColumns.Contains(x), Width = -1 }).ToArray(); }
/// <summary> /// Gets the text to display in the given column for the provided entry. /// </summary> /// <param name="entry"></param> /// <param name="column"></param> /// <param name="blockingEntry"></param> /// <exception cref="NotImplementedException"></exception> /// <returns></returns> private static string GetColumnTextForItem(PlanEntry entry, PlanColumn column, string blockingEntry) { const int MaxNotesLength = 60; switch (column) { case PlanColumn.SkillName: return entry.ToString(); case PlanColumn.PlanGroup: return entry.PlanGroupsDescription; case PlanColumn.TrainingTime: return entry.TrainingTime.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas); case PlanColumn.TrainingTimeNatural: return entry.NaturalTrainingTime.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas); case PlanColumn.EarliestStart: return $"{entry.StartTime:ddd} {entry.StartTime:G}"; case PlanColumn.EarliestEnd: return $"{entry.EndTime:ddd} {entry.EndTime:G}"; case PlanColumn.PercentComplete: return $"{Math.Floor(entry.FractionCompleted * 100)}%"; case PlanColumn.SkillRank: return entry.Skill.Rank.ToString(CultureConstants.DefaultCulture); case PlanColumn.PrimaryAttribute: return entry.Skill.PrimaryAttribute.ToString(); case PlanColumn.SecondaryAttribute: return entry.Skill.SecondaryAttribute.ToString(); case PlanColumn.SkillGroup: return entry.Skill.Group.Name; case PlanColumn.PlanType: return entry.Type.ToString(); case PlanColumn.SPTotal: return entry.EstimatedTotalSkillPoints.ToNumericString(0); case PlanColumn.SPPerHour: return entry.SpPerHour.ToString(CultureConstants.DefaultCulture); case PlanColumn.Priority: return entry.Priority.ToString(CultureConstants.DefaultCulture); case PlanColumn.Conflicts: return blockingEntry; case PlanColumn.Notes: { if (String.IsNullOrEmpty(entry.Notes)) return String.Empty; string result = Regex.Replace(entry.Notes, @"(\r|\n)+", " ", RegexOptions.None); if (result.Length <= MaxNotesLength) return result; return result.Substring(0, MaxNotesLength) + "..."; } case PlanColumn.Cost: { if (entry.Level != 1 || entry.CharacterSkill.IsKnown) return String.Empty; return entry.CharacterSkill.IsOwned ? "Owned" : entry.Skill.FormattedCost; } case PlanColumn.SkillPointsRequired: return entry.SkillPointsRequired.ToNumericString(0); default: throw new NotImplementedException(); } }