!B (Sandbox) (CE-21795) Importing models with multisubmaterials via fbx switches...
[CRYENGINE.git] / Code / Tools / LuaRemoteDebugger / LuaRemoteDebugger / FindFileDialog.cs
blob725d16d2b9fe75b6e139c97da0f16f5b2d89d833
1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
3 using System;
4 using System.Collections.Generic;
5 using System.ComponentModel;
6 using System.Data;
7 using System.Drawing;
8 using System.Linq;
9 using System.Text;
10 using System.Windows.Forms;
11 using System.IO;
13 namespace LuaRemoteDebugger
15 public partial class FindFileDialog : Form
17 struct FileEntry
19 public string Filename;
20 public string Path;
23 List<FileEntry> allFiles = new List<FileEntry>();
24 List<FileEntry> filteredFiles = new List<FileEntry>();
26 public string SelectedFile
28 get
30 if (listViewFiles.SelectedItems.Count > 0)
32 return listViewFiles.SelectedItems[0].Tag as string;
34 return string.Empty;
38 public FindFileDialog()
40 InitializeComponent();
43 public void SetFiles(List<string> filenames)
45 allFiles.Clear();
46 foreach (string fullpath in filenames)
48 FileEntry entry;
49 entry.Filename = Path.GetFileName(fullpath);
50 entry.Path = fullpath;
51 allFiles.Add(entry);
52 filteredFiles.Add(entry);
54 PopulateListView();
57 private void PopulateListView()
59 listViewFiles.Items.Clear();
60 foreach (FileEntry entry in filteredFiles)
62 ListViewItem item = listViewFiles.Items.Add(entry.Filename);
63 item.SubItems.Add(entry.Path);
64 item.Tag = entry.Path;
66 if (listViewFiles.Items.Count > 0)
68 listViewFiles.SelectedIndices.Add(0);
72 private void textBoxFilter_TextChanged(object sender, EventArgs e)
74 string lowerCaseText = textBoxFilter.Text.ToLower();
75 filteredFiles.Clear();
76 foreach (FileEntry entry in allFiles)
78 if (entry.Filename.ToLower().Contains(lowerCaseText))
80 filteredFiles.Add(entry);
83 PopulateListView();
86 private void listViewFiles_DoubleClick(object sender, EventArgs e)
88 if (listViewFiles.SelectedItems.Count > 0)
90 this.DialogResult = DialogResult.OK;
91 Close();
95 private void textBoxFilter_KeyDown(object sender, KeyEventArgs e)
97 if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up)
99 if (listViewFiles.SelectedIndices.Count > 0)
101 int selectedIndex = listViewFiles.SelectedIndices[0];
102 int newIndex = -1;
103 if (e.KeyCode == Keys.Down)
105 newIndex = selectedIndex + 1;
107 else if (e.KeyCode == Keys.Up)
109 newIndex = selectedIndex - 1;
111 if (newIndex >= 0 && newIndex < listViewFiles.Items.Count)
113 listViewFiles.SelectedIndices.Clear();
114 listViewFiles.SelectedIndices.Add(newIndex);
117 else if (listViewFiles.Items.Count > 0)
119 listViewFiles.SelectedIndices.Add(0);