3
3
using System . ComponentModel ;
4
4
using System . Diagnostics . Contracts ;
5
5
using System . Linq ;
6
+ using System . Runtime . Remoting . Contexts ;
6
7
using System . Windows . Forms ;
7
8
using ReClassNET . Extensions ;
8
9
using ReClassNET . Nodes ;
@@ -207,13 +208,18 @@ public bool EnableClassHierarchyView
207
208
}
208
209
}
209
210
210
- public ContextMenuStrip ProjectTreeNodeContextMenuStrip { get ; set ; }
211
+ public ContextMenuStrip ClassesContextMenuStrip { get ; set ; }
211
212
212
- public ContextMenuStrip ClassTreeNodeContextMenuStrip { get ; set ; }
213
+ public ContextMenuStrip ClassContextMenuStrip { get ; set ; }
214
+
215
+ public ContextMenuStrip EnumsContextMenuStrip { get ; set ; }
216
+
217
+ public ContextMenuStrip EnumContextMenuStrip { get ; set ; }
213
218
214
219
public ProjectView ( )
215
220
{
216
221
Contract . Ensures ( classesRootNode != null ) ;
222
+ Contract . Ensures ( enumsRootNode != null ) ;
217
223
218
224
InitializeComponent ( ) ;
219
225
@@ -249,7 +255,7 @@ public ProjectView()
249
255
250
256
#region Event Handler
251
257
252
- private void classesTreeView_AfterSelect ( object sender , TreeViewEventArgs e )
258
+ private void projectTreeView_AfterSelect ( object sender , TreeViewEventArgs e )
253
259
{
254
260
if ( e . Node . Level == 0 )
255
261
{
@@ -267,7 +273,7 @@ private void classesTreeView_AfterSelect(object sender, TreeViewEventArgs e)
267
273
}
268
274
}
269
275
270
- private void classesTreeView_MouseUp ( object sender , MouseEventArgs e )
276
+ private void projectTreeView_MouseUp ( object sender , MouseEventArgs e )
271
277
{
272
278
if ( e . Button != MouseButtons . Right )
273
279
{
@@ -280,40 +286,46 @@ private void classesTreeView_MouseUp(object sender, MouseEventArgs e)
280
286
return ;
281
287
}
282
288
283
- if ( node is ClassTreeNode )
289
+ ContextMenuStrip cms = null ;
290
+ if ( node == classesRootNode )
284
291
{
285
- projectTreeView . SelectedNode = node ;
292
+ cms = ClassesContextMenuStrip ;
293
+ }
294
+ else if ( node is ClassTreeNode )
295
+ {
296
+ cms = ClassContextMenuStrip ;
286
297
287
- var cms = ClassTreeNodeContextMenuStrip ;
288
- cms ? . Show ( projectTreeView , e . Location ) ;
298
+ projectTreeView . SelectedNode = node ;
289
299
}
290
- else if ( node == classesRootNode )
300
+ else if ( node == enumsRootNode )
291
301
{
292
- var cms = ProjectTreeNodeContextMenuStrip ;
293
- cms ? . Show ( projectTreeView , e . Location ) ;
302
+ cms = EnumsContextMenuStrip ;
294
303
}
304
+ else if ( node is EnumTreeNode )
305
+ {
306
+ cms = EnumContextMenuStrip ;
307
+ }
308
+ cms ? . Show ( projectTreeView , e . Location ) ;
295
309
}
296
310
297
- private void classesTreeView_BeforeLabelEdit ( object sender , NodeLabelEditEventArgs e )
311
+ private void projectTreeView_BeforeLabelEdit ( object sender , NodeLabelEditEventArgs e )
298
312
{
299
313
var isClassTreeNode = e . Node is ClassTreeNode ;
300
- e . CancelEdit = ! isClassTreeNode ;
314
+ var isEnumTreeNode = e . Node is EnumTreeNode ;
315
+ e . CancelEdit = ! isClassTreeNode && ! isEnumTreeNode ;
301
316
}
302
317
303
- private void classesTreeView_AfterLabelEdit ( object sender , NodeLabelEditEventArgs e )
318
+ private void projectTreeView_AfterLabelEdit ( object sender , NodeLabelEditEventArgs e )
304
319
{
305
320
if ( ! string . IsNullOrEmpty ( e . Label ) )
306
321
{
307
- if ( e . Node is ClassTreeNode node )
322
+ if ( e . Node is ClassTreeNode classTreeNode )
308
323
{
309
- node . ClassNode . Name = e . Label ;
310
-
311
- // Cancel the edit if the class refused the name.
312
- // This prevents the tree node from using the wrong name.
313
- if ( node . ClassNode . Name != e . Label )
314
- {
315
- e . CancelEdit = true ;
316
- }
324
+ classTreeNode . ClassNode . Name = e . Label ;
325
+ }
326
+ else if ( e . Node is EnumTreeNode enumTreeNode )
327
+ {
328
+ enumTreeNode . Enum . Name = e . Label ;
317
329
}
318
330
}
319
331
}
0 commit comments