Ejemplo n.º 1
0
        /// <summary>
        /// Prints a single entry
        /// </summary>
        /// <param name="g">The graphics canvas.</param>
        /// <param name="index">The index.</param>
        /// <param name="pe">The plan entry.</param>
        private void PrintEntry(Graphics g, int index, PlanEntry pe)
        {
            SizeF size;

            // Print entry index
            if (m_settings.EntryNumber)
            {
                size = Print(g, index.ToString() + ": ", m_point);
                m_point.X += (int)size.Width;
            }

            // Print skill name and level
            size = PrintBold(g, pe.ToString(), m_point);
            m_point.X += (int)size.Width;

            // Print Notes ?
            if (m_settings.EntryNotes)
            {
                // Jump to next line
                m_point.Y += (int)size.Height;
                m_point.X = 20;

                // Note
                size = Print(g, pe.Notes, m_point);
                m_point.X += (int)size.Width;
            }

            // Print additional infos below
            if (m_settings.EntryTrainingTimes || m_settings.EntryStartDate || m_settings.EntryFinishDate)
            {
                // Jump to next line
                m_point.Y += (int)size.Height;
                m_point.X = 20;

                // Open parenthesis
                size = Print(g, " (", m_point);
                m_point.X += (int)size.Width;

                // Training time ?
                bool needComma = false;
                if (m_settings.EntryTrainingTimes)
                {
                    size = Print(g, pe.TrainingTime.ToDescriptiveText(
                        DescriptiveTextOptions.FullText |
                        DescriptiveTextOptions.IncludeCommas |
                        DescriptiveTextOptions.SpaceText), m_point);
                    m_point.X += (int)size.Width;
                    needComma = true;
                }

                // Start date ?
                if (m_settings.EntryStartDate)
                {
                    if (needComma)
                    {
                        size = Print(g, "; ", m_point);
                        m_point.X += (int)size.Width;
                    }

                    size = Print(g, "Start: ", m_point);
                    m_point.X += (int)size.Width;

                    size = Print(g, pe.StartTime.ToString(), m_point);
                    m_point.X += (int)size.Width;

                    needComma = true;
                }

                // End date ?
                if (m_settings.EntryFinishDate)
                {
                    if (needComma)
                    {
                        size = Print(g, "; ", m_point);
                        m_point.X += (int)size.Width;
                    }
                    size = Print(g, "Finish: ", m_point);
                    m_point.X += (int)size.Width;

                    size = Print(g, pe.EndTime.ToString(), m_point);
                    m_point.X += (int)size.Width;

                    needComma = true;
                }

                // Close parenthesis
                size = Print(g, ")", m_point);
                m_point.X += (int)size.Width;
            }

            // Jump to next line
            m_point.X = 5;
            m_point.Y += (int)size.Height;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates a plan entry and a list view item for it, from the given skill.
        /// </summary>
        /// <param name="gs"></param>
        /// <returns></returns>
        private ListViewItem CreatePlanItemForSkill(Skill skill)
        {
            // Gets the planned level of the skill.
            int newLevel = m_plan.GetPlannedLevel(skill) + 1;
            if (skill.Level >= newLevel)
                newLevel = skill.Level + 1;

            // Quits if already on lv5
            if (newLevel > 5)
                return null;

            // Creates the plan entry and list item for this level
            PlanEntry newEntry = new PlanEntry(m_plan, skill, newLevel);
            ListViewItem newItem = new ListViewItem(newEntry.ToString());
            newItem.Tag = newEntry;

            return newItem;
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Applies formatting to a ListViewItem if the entry is queued.
        /// </summary>
        /// <param name="lvi">ListViewItem to be formatted.</param>
        /// <param name="entry">Entry used to identify is queued.</param>
        private void HighlightQueuedSkills(ListViewItem lvi, PlanEntry entry)
        {
            if (!Settings.UI.PlanWindow.HighlightQueuedSkills)
                return;

            var ccpCharacter = m_character as CCPCharacter;

            // Current character isn't a CCP character, so can't have a Queue.
            if (ccpCharacter == null)
                return;

            string entrySkill = entry.ToString();

            foreach (var skill in ccpCharacter.SkillQueue)
            {
                string queuedSkill = skill.ToString();
                if (entrySkill == queuedSkill)
                    lvi.ForeColor = Color.RoyalBlue;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets the text to display in the given column for the provided entry.
        /// </summary>
        /// <param name="pe"></param>
        /// <param name="column"></param>
        /// <param name="blockingEntry"></param>
        /// <param name="format"></param>
        /// <returns></returns>
        private static string GetColumnTextForItem(PlanEntry entry, PlanColumn column, string blockingEntry, NumberFormatInfo format)
        {
            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, false);

                case PlanColumn.TrainingTimeNatural:
                    return entry.NaturalTrainingTime.ToDescriptiveText(DescriptiveTextOptions.IncludeCommas, false);

                case PlanColumn.EarliestStart:
                    return entry.StartTime.ToString("ddd ") + entry.StartTime.ToString();

                case PlanColumn.EarliestEnd:
                    return entry.EndTime.ToString("ddd ") + entry.EndTime.ToString();

                case PlanColumn.PercentComplete:
                    return entry.FractionCompleted.ToString("0%");

                case PlanColumn.SkillRank:
                    return entry.Skill.Rank.ToString();

                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.ToString("N00", format);

                case PlanColumn.SPPerHour:
                    return entry.SpPerHour.ToString();

                case PlanColumn.Priority:
                    return entry.Priority.ToString();

                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;
                    if (entry.CharacterSkill.IsOwned)
                        return "Owned";

                    return entry.Skill.FormattedCost;

                case PlanColumn.SkillPointsRequired:
                    return entry.SkillPointsRequired.ToString("N00", format);

                default:
                    throw new NotImplementedException();
            }
        }