- Timestamp:
- 08/21/09 17:24:31 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.MainForm/3.2/DockingMainForm.cs
r2305 r2306 45 45 if (InvokeRequired) Invoke((Action<IView>)ShowView, view); 46 46 else { 47 base.ShowView(view); 48 DockContent dockForm = new DockForm(view); 49 dockForm.Activated += new EventHandler(DockFormActivated); 50 dockForm.FormClosing += new FormClosingEventHandler(view.FormClosing); 51 dockForm.FormClosed += new FormClosedEventHandler(DockFormClosed); 52 foreach (IToolStripItem item in ToolStripItems) 53 view.StateChanged += new EventHandler(item.ViewChanged); 54 dockForm.Show(dockPanel); 47 if (views.Contains(view)) { 48 DockForm dockform = FindForm(view); 49 if (dockform != null) 50 dockform.Activate(); 51 } else { 52 base.ShowView(view); 53 DockContent dockForm = new DockForm(view); 54 dockForm.Activated += new EventHandler(DockFormActivated); 55 dockForm.FormClosing += new FormClosingEventHandler(view.FormClosing); 56 dockForm.FormClosed += new FormClosedEventHandler(DockFormClosed); 57 foreach (IToolStripItem item in ToolStripItems) 58 view.StateChanged += new EventHandler(item.ViewChanged); 59 dockForm.Show(dockPanel); 60 } 55 61 } 56 62 } 57 63 58 64 public override void CloseView(IView view) { 59 DockForm dockform = null; 60 IEnumerable<DockForm> dockforms; 61 62 if (dockPanel.Documents.Count() != 0) { 63 dockforms = dockPanel.Documents.Cast<DockForm>().Where(df => df.View == view); 64 if (dockforms.Count() == 1) 65 dockform = dockforms.Single(); 66 } 67 if (dockPanel.FloatWindows.Count() != 0) { 68 foreach (FloatWindow fw in dockPanel.FloatWindows) { 69 foreach (DockContentCollection dc in fw.NestedPanes.Select(np => np.Contents)) { 70 dockforms = dc.Cast<DockForm>().Where(df => df.View == view); 71 if (dockforms.Count() == 1) { 72 dockform = dockforms.Single(); 73 break; 74 } 75 } 76 } 77 } 78 if (dockPanel.DockWindows.Count != 0) { 79 foreach (DockWindow dw in dockPanel.DockWindows) { 80 foreach (DockContentCollection dc in dw.NestedPanes.Select(np => np.Contents)) { 81 dockforms = dc.Cast<DockForm>().Where(df => df.View == view); 82 if (dockforms.Count() == 1) { 83 dockform = dockforms.Single(); 84 break; 85 } 86 } 87 } 88 } 65 DockForm dockform = FindForm(view); 89 66 if (dockform != null) 90 67 dockform.Close(); … … 108 85 base.ActiveView = ((DockForm)sender).View; 109 86 } 87 88 protected DockForm FindForm(IView view) { 89 IEnumerable<DockForm> dockforms; 90 91 if (dockPanel.Documents.Count() != 0) { 92 dockforms = dockPanel.Documents.Cast<DockForm>().Where(df => df.View == view); 93 if (dockforms.Count() == 1) 94 return dockforms.Single(); 95 } 96 if (dockPanel.FloatWindows.Count() != 0) { 97 foreach (FloatWindow fw in dockPanel.FloatWindows) { 98 foreach (DockContentCollection dc in fw.NestedPanes.Select(np => np.Contents)) { 99 dockforms = dc.Cast<DockForm>().Where(df => df.View == view); 100 if (dockforms.Count() == 1) 101 return dockforms.Single(); 102 } 103 } 104 } 105 if (dockPanel.DockWindows.Count != 0) { 106 foreach (DockWindow dw in dockPanel.DockWindows) { 107 foreach (DockContentCollection dc in dw.NestedPanes.Select(np => np.Contents)) { 108 dockforms = dc.Cast<DockForm>().Where(df => df.View == view); 109 if (dockforms.Count() == 1) 110 return dockforms.Single(); 111 } 112 } 113 } 114 return null; 115 } 110 116 } 111 117 }
Note: See TracChangeset
for help on using the changeset viewer.