Пример #1
0
        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();
        }
Пример #2
0
        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();
        }
Пример #3
0
        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();
        }
Пример #4
0
        /// <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();
            }
        }