internal void AddItem(ItemType itemType, int lineNumber, string description, Protean.Hub.Files.File sourceFile) { ListViewItem item = new ListViewItem(); item.Tag = sourceFile; item.Text = itemType.ToString(); item.ImageIndex = this.IconFromType(itemType); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, lineNumber.ToString())); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, description.Trim())); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, sourceFile.FileNameOnly)); item.SubItems.Add(new ListViewItem.ListViewSubItem(item, sourceFile.FileNameExpanded)); this.m_ListItems.Add(item); this.lsv_Tasks.Items.Add((ListViewItem)item.Clone()); this.sbp_TotalItems.Text = "Total items: " + this.lsv_Tasks.Items.Count.ToString(); this.sbp_FilterItems.Text = "Filtered items: " + this.lsv_Tasks.Items.Count.ToString(); }
/// <summary> /// Add an item to the docking page control. Horrible. /// </summary> /// <param name="itemType"></param> /// <param name="lineNumber"></param> /// <param name="description"></param> /// <param name="sourceFile"></param> internal static void AddItem(DockingPages.frm_TodoList.ItemType itemType, int lineNumber, string description, Protean.Hub.Files.File sourceFile) { TodoListPlugin.dockingPage.AddItem(itemType, lineNumber, description, sourceFile); }
/// <summary>Parse a single Protean document.</summary> /// <param name="doc"></param> private static void ParseDocument(Protean.Hub.Documents.Document doc) { int lineNumber = 1; foreach(string tLine in doc.Document.Lines) { string description = ""; bool itemFound = false; frm_TodoList.ItemType itemType = frm_TodoList.ItemType.Temp; // Refactor this to get the first keyword, then do a "switch" on it if (tLine != null && tLine.Length > 0 ) { // TODO: if (SourceParser.findKeyword("todo", tLine) != "") { description = SourceParser.findKeyword("todo", tLine); itemType = frm_TodoList.ItemType.Todo; itemFound = true; } // TEMP: else if (SourceParser.findKeyword("temp", tLine) != "") { description = SourceParser.findKeyword("temp", tLine); itemType = frm_TodoList.ItemType.Temp; itemFound = true; } // HACK: else if (SourceParser.findKeyword("hack", tLine) != "") { description = SourceParser.findKeyword("hack", tLine); itemType = frm_TodoList.ItemType.Hack; itemFound = true; } // KLUDGE: else if (SourceParser.findKeyword("kludge", tLine) != "") { description = SourceParser.findKeyword("kludge", tLine); itemType = frm_TodoList.ItemType.Kludge; itemFound = true; } // NOTE: else if (SourceParser.findKeyword("note", tLine) != "") { description = SourceParser.findKeyword("note", tLine); itemType = frm_TodoList.ItemType.Note; itemFound = true; } // If we found something, add it if(itemFound) { TodoListPlugin.AddItem(itemType, lineNumber, description, doc.File); } } lineNumber++; } }
/// <summary>Initialises all of the plugin's data. Called when the plugin is loaded by Protean.</summary> internal void Plugin_Initialize(object sender, Protean.Hub.Plugins.Plugin.InitializeArgs e) { e.Information.Name = "TO-DO list"; e.Information.GUID = "C6CC0646-BDE5-4058-AEE4-28F2BCE9419E"; e.Information.Priority = Protean.Hub.Plugins.PriorityTypes.GeneralTools; }