1
0
mirror of https://github.com/chylex/Code-Statistics.git synced 2025-05-22 09:34:08 +02:00

Change TreeNode usage to Node in debug form to remove WinForms dependencies

This commit is contained in:
chylex 2016-10-05 21:36:23 +02:00
parent c53f0a7eda
commit bcc8dba7a0
2 changed files with 16 additions and 4 deletions
CodeStatistics/Forms/Project
CodeStatisticsCore/Handling/Files

View File

@ -6,6 +6,7 @@ using System.Runtime.InteropServices;
using System.Windows.Forms;
using CodeStatistics.Data;
using CodeStatistics.Handling;
using CodeStatisticsCore.Collections;
using CodeStatisticsCore.Handling;
using CodeStatisticsCore.Handling.Files;
using CodeStatisticsCore.Input;
@ -64,11 +65,13 @@ namespace CodeStatistics.Forms.Project{
if (item == null)return;
AbstractLanguageFileHandler handler = GetLanguageHandler(item.File);
SetTextBoxContents(handler.PrepareFileContents(item.File.Contents));
treeViewData.Nodes.Clear();
foreach(TreeNode node in handler.GenerateTreeViewData(GenerateVariables(item.File), item.File))treeViewData.Nodes.Add(node);
foreach(Node node in handler.GenerateTreeViewData(GenerateVariables(item.File), item.File)){
treeViewData.Nodes.Add(ConvertNode(node));
}
}
private void btnLoadOriginal_Click(object sender, EventArgs e){
@ -99,6 +102,16 @@ namespace CodeStatistics.Forms.Project{
textBoxCode.Text = text.Replace("\r", "").Replace("\n", Environment.NewLine);
}
private static TreeNode ConvertNode(Node node){
TreeNode treeNode = new TreeNode(node.Text);
foreach(Node childNode in node.Children){
treeNode.Nodes.Add(ConvertNode(childNode));
}
return treeNode;
}
private static AbstractLanguageFileHandler GetLanguageHandler(File file){
return (AbstractLanguageFileHandler)HandlerList.GetFileHandler(file);
}

View File

@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using CodeStatisticsCore.Collections;
using CodeStatisticsCore.Handling.Utils;
using CodeStatisticsCore.Input;
@ -90,7 +89,7 @@ namespace CodeStatisticsCore.Handling.Files{
protected abstract object GetFileObject(FileIntValue fi, Variables.Root variables);
public abstract string PrepareFileContents(string contents);
public abstract IEnumerable<TreeNode> GenerateTreeViewData(Variables.Root variables, File file);
public abstract IEnumerable<Node> GenerateTreeViewData(Variables.Root variables, File file);
private class State{
public readonly TopElementList<FileIntValue> MaxLines = new TopElementList<FileIntValue>(8, FileIntValue.SortMax);