1
0
mirror of synced 2024-12-11 15:25:59 +01:00
Switch-Toolbox/Switch_Toolbox_Library/Forms/Dialogs/RenameDialog.cs

102 lines
3.5 KiB
C#

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
using System.Runtime.Serialization;
using System.Windows.Forms;
namespace Toolbox.Library.Forms
{
public partial class RenameDialog : Form
{
public RenameDialog()
{
InitializeComponent();
StartPosition = FormStartPosition.CenterParent;
button2.Select();
}
public void SetString(string Default)
{
textBox1.Text = Default;
button2.Select();
}
//If used as a treeview filter
public TreeViewCustom treeView;
public TreeViewCustom _fieldsTreeCache;
public void LoadTree(TreeViewCustom t)
{
treeView = t;
_fieldsTreeCache = new TreeViewCustom();
foreach (TreeNode originalNode in treeView.Nodes)
{
TreeNode newNode = new TreeNode(originalNode.Text);
newNode.Tag = originalNode.Tag;
_fieldsTreeCache.Nodes.Add(newNode);
IterateTreeNodes(originalNode, newNode, _fieldsTreeCache);
}
}
private void IterateTreeNodes(TreeNode originalNode, TreeNode rootNode, TreeView treeView2)
{
foreach (TreeNode childNode in originalNode.Nodes)
{
TreeNode newNode = new TreeNode(childNode.Text);
newNode.Tag = childNode.Tag;
treeView2.SelectedNode = rootNode;
treeView2.SelectedNode.Nodes.Add(newNode);
IterateTreeNodes(childNode, newNode, treeView2);
}
}
private void RenameDialog_Load(object sender, EventArgs e)
{
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (treeView != null)
{
if (textBox1.Text == String.Empty)
{
Console.WriteLine("Resetting tree");
treeView.Nodes.Clear();
foreach (TreeNode originalNode in _fieldsTreeCache.Nodes)
{
TreeNode newNode = new TreeNode(originalNode.Text);
newNode.Tag = originalNode.Tag;
treeView.Nodes.Add(newNode);
IterateTreeNodes(originalNode, newNode, treeView);
}
}
//blocks repainting tree till all objects loaded
this.treeView.BeginUpdate();
this.treeView.Nodes.Clear();
if (this.textBox1.Text != string.Empty)
{
foreach (TreeNode _parentNode in _fieldsTreeCache.Nodes)
{
foreach (TreeNode _childNode in _parentNode.Nodes)
{
if (_childNode.Text.StartsWith(this.textBox1.Text))
{
this.treeView.Nodes.Add((TreeNode)_childNode.Clone());
}
}
}
}
else
{
foreach (TreeNode _node in this._fieldsTreeCache.Nodes)
{
treeView.Nodes.Add((TreeNode)_node.Clone());
}
}
//enables redrawing tree after all objects have been added
this.treeView.EndUpdate();
}
}
}
}