@@ -113,10 +113,11 @@ public int Compare(object x, object y)
113113
114114 private readonly TreeNode root ;
115115
116- private ReClassNetProject project ;
117-
118116 private ClassNode selectedClass ;
119117
118+ private bool autoExpandClassNodes ;
119+ private bool enableClassHierarchyView ;
120+
120121 public delegate void SelectionChangedEvent ( object sender , ClassNode node ) ;
121122 public event SelectionChangedEvent SelectionChanged ;
122123
@@ -141,10 +142,41 @@ public ClassNode SelectedClass
141142 }
142143
143144 [ DefaultValue ( false ) ]
144- public bool AutoExpandClassNodes { get ; set ; }
145+ public bool AutoExpandClassNodes
146+ {
147+ get => autoExpandClassNodes ;
148+ set
149+ {
150+ if ( autoExpandClassNodes != value )
151+ {
152+ autoExpandClassNodes = value ;
153+
154+ if ( autoExpandClassNodes )
155+ {
156+ ExpandAllClassNodes ( ) ;
157+ }
158+ }
159+ }
160+ }
145161
146162 [ DefaultValue ( false ) ]
147- public bool EnableClassHierarchyView { get ; set ; }
163+ public bool EnableClassHierarchyView
164+ {
165+ get => enableClassHierarchyView ;
166+ set
167+ {
168+ if ( enableClassHierarchyView != value )
169+ {
170+ enableClassHierarchyView = value ;
171+
172+ var classes = root . Nodes . Cast < ClassTreeNode > ( ) . Select ( t => t . ClassNode ) . ToList ( ) ;
173+
174+ root . Nodes . Clear ( ) ;
175+
176+ AddClasses ( classes ) ;
177+ }
178+ }
179+ }
148180
149181 public ContextMenuStrip ProjectTreeNodeContextMenuStrip { get ; set ; }
150182
@@ -220,26 +252,6 @@ private void classesTreeView_MouseUp(object sender, MouseEventArgs e)
220252 }
221253 }
222254
223- private void removeUnusedClassesToolStripMenuItem_Click ( object sender , EventArgs e )
224- {
225- //project.RemoveUnusedClasses();
226- }
227-
228- private void deleteClassToolStripMenuItem_Click ( object sender , EventArgs e )
229- {
230- /*if (classesTreeView.SelectedNode is ClassTreeNode treeNode)
231- {
232- try
233- {
234- project.Remove(treeNode.ClassNode);
235- }
236- catch (ClassReferencedException ex)
237- {
238- Program.Logger.Log(ex);
239- }
240- }*/
241- }
242-
243255 private void renameClassToolStripMenuItem_Click ( object sender , EventArgs e )
244256 {
245257 /*var treeNode = classesTreeView.SelectedNode;
@@ -264,52 +276,21 @@ private void classesTreeView_AfterLabelEdit(object sender, NodeLabelEditEventArg
264276 }
265277 }
266278
267- private void enableHierarchyViewToolStripMenuItem_Click ( object sender , EventArgs e )
268- {
269- /*enableHierarchyViewToolStripMenuItem.Checked = !enableHierarchyViewToolStripMenuItem.Checked;
270-
271- expandAllClassesToolStripMenuItem.Enabled =
272- collapseAllClassesToolStripMenuItem.Enabled = enableHierarchyViewToolStripMenuItem.Checked;
273-
274- EnableClassHierarchyView = enableHierarchyViewToolStripMenuItem.Checked;
275-
276- var classes = root.Nodes.Cast<ClassTreeNode>().Select(t => t.ClassNode).ToList();
277-
278- classesTreeView.BeginUpdate();
279-
280- root.Nodes.Clear();
281-
282- classes.ForEach(AddClassInternal);
283-
284- classesTreeView.Sort();
285-
286- classesTreeView.EndUpdate();*/
287- }
288-
289- private void autoExpandHierarchyViewToolStripMenuItem_Click ( object sender , EventArgs e )
290- {
291- /*autoExpandHierarchyViewToolStripMenuItem.Checked = !autoExpandHierarchyViewToolStripMenuItem.Checked;
292-
293- AutoExpandClassNodes = autoExpandHierarchyViewToolStripMenuItem.Checked;
294-
295- if (AutoExpandClassNodes)
296- {
297- root.ExpandAll();
298- }*/
299- }
279+ #endregion
300280
301- private void expandAllClassesToolStripMenuItem_Click ( object sender , EventArgs e )
281+ public void ExpandAllClassNodes ( )
302282 {
303- // root.ExpandAll();
283+ root . ExpandAll ( ) ;
304284 }
305285
306- private void collapseAllClassesToolStripMenuItem_Click ( object sender , EventArgs e )
286+ public void CollapseAllClassNodes ( )
307287 {
308- //root.Nodes.Cast<TreeNode>().ForEach(n => n.Collapse());
288+ foreach ( var tn in root . Nodes . Cast < TreeNode > ( ) )
289+ {
290+ tn . Collapse ( ) ;
291+ }
309292 }
310293
311- #endregion
312-
313294 public void Clear ( )
314295 {
315296 root . Nodes . Clear ( ) ;
@@ -340,6 +321,19 @@ public void AddClasses(IEnumerable<ClassNode> nodes)
340321 classesTreeView . EndUpdate ( ) ;
341322 }
342323
324+ /// <summary>
325+ /// Adds a new <see cref="ClassTreeNode"/> to the tree.
326+ /// </summary>
327+ /// <param name="node">The class to add.</param>
328+ private void AddClassInternal ( ClassNode node )
329+ {
330+ Contract . Requires ( node != null ) ;
331+
332+ root . Nodes . Add ( new ClassTreeNode ( node , this ) ) ;
333+
334+ root . Expand ( ) ;
335+ }
336+
343337 /// <summary>Removes the class from the view.</summary>
344338 /// <param name="node">The class to remove.</param>
345339 public void RemoveClass ( ClassNode node )
@@ -362,19 +356,6 @@ public void RemoveClass(ClassNode node)
362356 }
363357 }
364358
365- /// <summary>
366- /// Adds a new <see cref="ClassTreeNode"/> to the tree.
367- /// </summary>
368- /// <param name="node">The class to add.</param>
369- private void AddClassInternal ( ClassNode node )
370- {
371- Contract . Requires ( node != null ) ;
372-
373- root . Nodes . Add ( new ClassTreeNode ( node , this ) ) ;
374-
375- root . Expand ( ) ;
376- }
377-
378359 /// <summary>Searches for the <see cref="ClassTreeNode"/> which represents the class.</summary>
379360 /// <param name="node">The class to search.</param>
380361 /// <returns>The found class tree node.</returns>
0 commit comments