Changeset 2443 for branches/Mainform refactoring/HeuristicLab.MainForm.WindowsForms/3.2/DockingMainForm.cs
- Timestamp:
- 10/20/09 15:34:02 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/Mainform refactoring/HeuristicLab.MainForm.WindowsForms/3.2/DockingMainForm.cs
r2434 r2443 42 42 } 43 43 44 public override voidShowView(IView view) {45 if (InvokeRequired) Invoke((Action<IView>)ShowView, view);44 public override bool ShowView(IView view) { 45 if (InvokeRequired) return (bool)Invoke((Func<IView, bool>)ShowView, view); 46 46 else { 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.GotFocus += new EventHandler(DockFormActivated); 56 dockForm.FormClosing += new FormClosingEventHandler(view.OnClosing); 57 dockForm.FormClosed += new FormClosedEventHandler(view.OnClosed); 58 dockForm.FormClosed += new FormClosedEventHandler(DockFormClosed); 59 foreach (IUserInterfaceItem item in UserInterfaceItems) 60 view.Changed += new EventHandler(item.ViewChanged); 61 dockForm.Show(dockPanel); 62 } 47 bool ret = base.ShowView(view); 48 if (ret) 49 ((DockForm)GetForm(view)).Show(dockPanel); 50 else 51 ((DockForm)GetForm(view)).Activate(); 52 return ret; 53 } 54 } 55 public override void HideView(IView view) { 56 if (InvokeRequired) Invoke((Action<IView>)HideView, view); 57 else { 58 Form form = base.GetForm(view); 59 if (form != null) 60 ((DockForm)form).Hide(); 63 61 } 64 62 } 65 63 66 public override void CloseView(IView view) { 67 if (InvokeRequired) Invoke((Action<IView>)CloseView, view); 68 else { 69 DockForm dockform = FindForm(view); 70 if (dockform != null) 71 dockform.Close(); 72 } 64 protected override Form CreateForm(IView view) { 65 return new DockForm(view); 73 66 } 74 67 75 private void DockFormClosed(object sender, FormClosedEventArgs e) {76 DockForm dockForm = (DockForm)sender;77 ViewClosed(dockForm.View);78 dockForm.Activated -= new EventHandler(DockFormActivated);79 dockForm.GotFocus -= new EventHandler(DockFormActivated);80 dockForm.FormClosing -= new FormClosingEventHandler(dockForm.View.OnClosing);81 dockForm.FormClosed -= new FormClosedEventHandler(dockForm.View.OnClosed);82 dockForm.FormClosed -= new FormClosedEventHandler(DockFormClosed);83 foreach (IUserInterfaceItem item in UserInterfaceItems)84 dockForm.View.Changed -= new EventHandler(item.ViewChanged);85 }86 87 private void DockFormActivated(object sender, EventArgs e) {88 base.ActiveView = ((DockForm)sender).View;89 }90 91 protected DockForm FindForm(IView view) {92 IEnumerable<DockForm> dockforms;93 94 dockforms = from df in dockPanel.Documents95 where ((DockForm)df).View == view96 select (DockForm)df;97 if (dockforms.Count() == 1)98 return dockforms.Single();99 100 dockforms = from fw in dockPanel.FloatWindows101 from np in fw.NestedPanes102 from dc in np.Contents103 where ((DockForm)dc).View == view104 select (DockForm)dc;105 if (dockforms.Count() == 1)106 return dockforms.Single();107 108 dockforms = from dw in dockPanel.DockWindows109 from np in dw.NestedPanes110 from dc in np.Contents111 where ((DockForm)dc).View == view112 select (DockForm)dc;113 if (dockforms.Count() == 1)114 return dockforms.Single();115 116 return null;117 }118 68 } 119 69 }
Note: See TracChangeset
for help on using the changeset viewer.