33using System . ComponentModel ;
44using System . Diagnostics . Contracts ;
55using System . Linq ;
6+ using System . Runtime . Remoting . Contexts ;
67using System . Windows . Forms ;
78using ReClassNET . Extensions ;
89using ReClassNET . Nodes ;
@@ -207,13 +208,18 @@ public bool EnableClassHierarchyView
207208 }
208209 }
209210
210- public ContextMenuStrip ProjectTreeNodeContextMenuStrip { get ; set ; }
211+ public ContextMenuStrip ClassesContextMenuStrip { get ; set ; }
211212
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 ; }
213218
214219 public ProjectView ( )
215220 {
216221 Contract . Ensures ( classesRootNode != null ) ;
222+ Contract . Ensures ( enumsRootNode != null ) ;
217223
218224 InitializeComponent ( ) ;
219225
@@ -249,7 +255,7 @@ public ProjectView()
249255
250256 #region Event Handler
251257
252- private void classesTreeView_AfterSelect ( object sender , TreeViewEventArgs e )
258+ private void projectTreeView_AfterSelect ( object sender , TreeViewEventArgs e )
253259 {
254260 if ( e . Node . Level == 0 )
255261 {
@@ -267,7 +273,7 @@ private void classesTreeView_AfterSelect(object sender, TreeViewEventArgs e)
267273 }
268274 }
269275
270- private void classesTreeView_MouseUp ( object sender , MouseEventArgs e )
276+ private void projectTreeView_MouseUp ( object sender , MouseEventArgs e )
271277 {
272278 if ( e . Button != MouseButtons . Right )
273279 {
@@ -280,40 +286,46 @@ private void classesTreeView_MouseUp(object sender, MouseEventArgs e)
280286 return ;
281287 }
282288
283- if ( node is ClassTreeNode )
289+ ContextMenuStrip cms = null ;
290+ if ( node == classesRootNode )
284291 {
285- projectTreeView . SelectedNode = node ;
292+ cms = ClassesContextMenuStrip ;
293+ }
294+ else if ( node is ClassTreeNode )
295+ {
296+ cms = ClassContextMenuStrip ;
286297
287- var cms = ClassTreeNodeContextMenuStrip ;
288- cms ? . Show ( projectTreeView , e . Location ) ;
298+ projectTreeView . SelectedNode = node ;
289299 }
290- else if ( node == classesRootNode )
300+ else if ( node == enumsRootNode )
291301 {
292- var cms = ProjectTreeNodeContextMenuStrip ;
293- cms ? . Show ( projectTreeView , e . Location ) ;
302+ cms = EnumsContextMenuStrip ;
294303 }
304+ else if ( node is EnumTreeNode )
305+ {
306+ cms = EnumContextMenuStrip ;
307+ }
308+ cms ? . Show ( projectTreeView , e . Location ) ;
295309 }
296310
297- private void classesTreeView_BeforeLabelEdit ( object sender , NodeLabelEditEventArgs e )
311+ private void projectTreeView_BeforeLabelEdit ( object sender , NodeLabelEditEventArgs e )
298312 {
299313 var isClassTreeNode = e . Node is ClassTreeNode ;
300- e . CancelEdit = ! isClassTreeNode ;
314+ var isEnumTreeNode = e . Node is EnumTreeNode ;
315+ e . CancelEdit = ! isClassTreeNode && ! isEnumTreeNode ;
301316 }
302317
303- private void classesTreeView_AfterLabelEdit ( object sender , NodeLabelEditEventArgs e )
318+ private void projectTreeView_AfterLabelEdit ( object sender , NodeLabelEditEventArgs e )
304319 {
305320 if ( ! string . IsNullOrEmpty ( e . Label ) )
306321 {
307- if ( e . Node is ClassTreeNode node )
322+ if ( e . Node is ClassTreeNode classTreeNode )
308323 {
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 ;
317329 }
318330 }
319331 }
0 commit comments