void AddLine(string line) { string[] items = line.Split(';'); if (items.Length == 0) { return; } int range = items.Count(item => String.IsNullOrEmpty(item)); bool isComment = range == 0 && !char.IsDigit(items[0][0]); bool isSubMasterNode = range == 0 && !isComment; if (isSubMasterNode) // Start of a message { string timeStamp = items[0]; string message = items.Length > 1 ? items[1] : "???"; string masterName = null; int imageId = -1; bool endFlag; int masterRange = GetMasterRange(message, out imageId, out masterName, out endFlag); ListMessages.Add(currentMessageItem = new TreeMessageItem(timeStamp, message, GetImage(items.Length > 2 ? items[3] : "???", isComment), isComment)); MessageCount++; if (masterRange >= 0) // It's a group start or end { if (endFlag) { currentMasterMessageItem.Add(currentMessageItem); } Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, timeStamp, masterName, masterRange, imageId)); } if (!endFlag) { currentMasterMessageItem.Add(currentMessageItem); } } else if (isComment) // Just a comment { currentMessageItem = new TreeMessageItem(null, line, GetImage(line, isComment), isComment); ListMessages.Add(currentMessageItem); if (currentMasterMessageItem == null) { Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, "", "Start", 0, GetImage(line, isComment))); } currentMasterMessageItem.Add(currentMessageItem); } else // A line within a message if (currentMessageItem != null) { currentMessageItem.Add(new TreeItemLine(range, items[range], (items.Length == range + 2) ? items[range + 1] : null)); } }
private void buttonCopyClibboard_Click(object sender, EventArgs e) { TreeMessageItem message = GetSelectedMessage(); if (message == null) { labelCopy.Text = "No message selected"; return; } string messageStr = string.Format("[MessageHandler(typeof({0}))]\npublic static void On{0}(Bot bot, {0} message)\n\t{{\n\t\t//if (bot.Character != null) bot.Character.Process{0}(bot, message);\n\t}}\n\n", message.MessageName); System.Windows.Forms.Clipboard.SetText(messageStr); labelCopy.Text = string.Format("Code to handle the message {0} is in Clipboard", message.MessageName); }
private TreeMessageItem GetSelectedMessage() { object Tag = treeView1.SelectedNode.Tag; if (Tag is int) { UpdateNode(treeView1.SelectedNode, null); Tag = treeView1.SelectedNode.Tag; } TreeMasterMessageItem tmmi = Tag as TreeMasterMessageItem; TreeMessageItem tmi = Tag as TreeMessageItem; TreeItemLine til = Tag as TreeItemLine; if (tmmi != null) { tmi = tmmi.MessageItems[0]; } if (til != null) { tmi = til.Parent; } return(tmi); }
public void SetPosition(TreeMessageItem context) { tmmi = context.Parent; tmi = context; }
} // 0 = root, 1... public void Add(TreeMessageItem newItem) { MessageItems.Add(newItem); newItem.Parent = this; }
public int MasterLevel { get; private set; } // 0 = root, 1... public void Add(TreeMessageItem newItem) { MessageItems.Add(newItem); newItem.Parent = this; }
void AddLine(string line) { string[] items = line.Split(';'); if (items.Length == 0) return; int range = items.Count(item => String.IsNullOrEmpty(item)); bool isComment = range == 0 && !char.IsDigit(items[0][0]); bool isSubMasterNode = range == 0 && !isComment; if (isSubMasterNode) // Start of a message { string timeStamp = items[0]; string message = items.Length > 1 ? items[1] : "???"; string masterName = null; int imageId = -1; bool endFlag; int masterRange = GetMasterRange(message, out imageId, out masterName, out endFlag); ListMessages.Add(currentMessageItem = new TreeMessageItem(timeStamp, message, GetImage(items.Length > 2 ? items[3] : "???", isComment), isComment)); MessageCount++; if (masterRange >= 0) // It's a group start or end { if (endFlag) currentMasterMessageItem.Add(currentMessageItem); Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, timeStamp, masterName, masterRange, imageId)); } if (!endFlag) currentMasterMessageItem.Add(currentMessageItem); } else if (isComment) // Just a comment { currentMessageItem = new TreeMessageItem(null, line, GetImage(line, isComment), isComment); ListMessages.Add(currentMessageItem); if (currentMasterMessageItem == null) Main.Add(currentMasterMessageItem = new TreeMasterMessageItem(treeView1, "", "Start", 0, GetImage(line, isComment))); currentMasterMessageItem.Add(currentMessageItem); } else // A line within a message if (currentMessageItem != null) currentMessageItem.Add(new TreeItemLine(range, items[range], (items.Length == range + 2) ? items[range + 1] : null)); }