11using System ;
2- using System . Collections . Generic ;
32using System . Diagnostics . Contracts ;
43using System . Linq ;
54using System . Windows . Forms ;
@@ -10,19 +9,19 @@ namespace ReClassNET.Forms
109{
1110 public partial class EnumSelectionForm : IconForm
1211 {
13- private readonly IReadOnlyList < EnumMetaData > allEnums ;
12+ private readonly ReClassNetProject project ;
1413
1514 public EnumMetaData SelectedItem => itemListBox . SelectedItem as EnumMetaData ;
1615
17- public EnumSelectionForm ( IEnumerable < EnumMetaData > classes )
16+ public EnumSelectionForm ( ReClassNetProject project )
1817 {
19- Contract . Requires ( classes != null ) ;
18+ Contract . Requires ( project != null ) ;
2019
21- allEnums = classes . ToList ( ) ;
20+ this . project = project ;
2221
2322 InitializeComponent ( ) ;
2423
25- ShowFilteredClasses ( ) ;
24+ ShowFilteredEnums ( ) ;
2625 }
2726
2827 protected override void OnLoad ( EventArgs e )
@@ -41,24 +40,69 @@ protected override void OnFormClosed(FormClosedEventArgs e)
4140
4241 private void filterNameTextBox_TextChanged ( object sender , EventArgs e )
4342 {
44- ShowFilteredClasses ( ) ;
43+ ShowFilteredEnums ( ) ;
4544 }
4645
4746 private void itemListBox_SelectedIndexChanged ( object sender , EventArgs e )
4847 {
4948 selectButton . Enabled = SelectedItem != null ;
5049 }
5150
52- private void ShowFilteredClasses ( )
51+ private void editEnumIconButton_Click ( object sender , EventArgs e )
5352 {
54- IEnumerable < EnumMetaData > classes = allEnums ;
53+ var @enum = SelectedItem ;
54+ if ( @enum == null )
55+ {
56+ return ;
57+ }
58+
59+ using ( var eef = new EnumEditorForm ( @enum ) )
60+ {
61+ eef . ShowDialog ( ) ;
62+ }
63+ }
64+
65+ private void addEnumIconButton_Click ( object sender , EventArgs e )
66+ {
67+ var @enum = new EnumMetaData
68+ {
69+ Name = "Enum"
70+ } ;
71+
72+ using ( var eef = new EnumEditorForm ( @enum ) )
73+ {
74+ if ( eef . ShowDialog ( ) == DialogResult . OK )
75+ {
76+ project . AddEnum ( @enum ) ;
77+
78+ ShowFilteredEnums ( ) ;
79+ }
80+ }
81+ }
82+
83+ private void removeEnumIconButton_Click ( object sender , EventArgs e )
84+ {
85+ var @enum = SelectedItem ;
86+ if ( @enum == null )
87+ {
88+ return ;
89+ }
90+
91+ project . RemoveEnum ( @enum ) ;
92+
93+ ShowFilteredEnums ( ) ;
94+ }
95+
96+ private void ShowFilteredEnums ( )
97+ {
98+ var enums = project . Enums ;
5599
56100 if ( ! string . IsNullOrEmpty ( filterNameTextBox . Text ) )
57101 {
58- classes = classes . Where ( c => c . Name . IndexOf ( filterNameTextBox . Text , StringComparison . OrdinalIgnoreCase ) >= 0 ) ;
102+ enums = enums . Where ( c => c . Name . IndexOf ( filterNameTextBox . Text , StringComparison . OrdinalIgnoreCase ) >= 0 ) ;
59103 }
60104
61- itemListBox . DataSource = classes . ToList ( ) ;
105+ itemListBox . DataSource = enums . ToList ( ) ;
62106 }
63107 }
64108}
0 commit comments