1 // Copyright 2001-2019 Crytek GmbH / Crytek Group. All rights reserved.
4 using System
.Collections
.Generic
;
5 using System
.ComponentModel
;
10 using System
.Windows
.Forms
;
13 namespace LuaRemoteDebugger
15 public partial class FindFileDialog
: Form
19 public string Filename
;
23 List
<FileEntry
> allFiles
= new List
<FileEntry
>();
24 List
<FileEntry
> filteredFiles
= new List
<FileEntry
>();
26 public string SelectedFile
30 if (listViewFiles
.SelectedItems
.Count
> 0)
32 return listViewFiles
.SelectedItems
[0].Tag
as string;
38 public FindFileDialog()
40 InitializeComponent();
43 public void SetFiles(List
<string> filenames
)
46 foreach (string fullpath
in filenames
)
49 entry
.Filename
= Path
.GetFileName(fullpath
);
50 entry
.Path
= fullpath
;
52 filteredFiles
.Add(entry
);
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
);
86 private void listViewFiles_DoubleClick(object sender
, EventArgs e
)
88 if (listViewFiles
.SelectedItems
.Count
> 0)
90 this.DialogResult
= DialogResult
.OK
;
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];
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);