Changeset 2443 for branches/Mainform refactoring/HeuristicLab.MainForm.WindowsForms/3.2/SingleDocumentMainForm.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/SingleDocumentMainForm.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 DocumentForm documentForm = FindForm(view); 49 if (documentForm != null) 50 documentForm.Focus(); 51 } else { 52 base.ShowView(view); 53 DocumentForm form = new DocumentForm(view); 54 form.ShowInTaskbar = true; 55 form.Activated += new EventHandler(DocumentFormActivated); 56 form.GotFocus += new EventHandler(DocumentFormActivated); 57 form.FormClosing += new FormClosingEventHandler(view.OnClosing); 58 form.FormClosed += new FormClosedEventHandler(view.OnClosed); 59 form.FormClosed += new FormClosedEventHandler(DocumentFormClosed); 60 foreach (IUserInterfaceItem item in UserInterfaceItems) 61 view.Changed += new EventHandler(item.ViewChanged); 62 form.Show(this); 47 bool ret = base.ShowView(view); 48 if (ret) 49 GetForm(view).Show(this); 50 else { 51 GetForm(view).Visible = true; 52 GetForm(view).Activate(); 63 53 } 54 return ret; 64 55 } 65 56 } 66 57 67 public override void CloseView(IView view) { 68 if (InvokeRequired) Invoke((Action<IView>)CloseView, view); 69 else { 70 DocumentForm documentForm = FindForm(view); 71 if (documentForm != null) 72 documentForm.Close(); 73 } 74 } 75 76 private void DocumentFormClosed(object sender, FormClosedEventArgs e) { 77 DocumentForm form = (DocumentForm)sender; 78 ViewClosed(form.View); 79 form.Activated -= new EventHandler(DocumentFormActivated); 80 form.GotFocus -= new EventHandler(DocumentFormActivated); 81 form.FormClosing -= new FormClosingEventHandler(form.View.OnClosing); 82 form.FormClosed -= new FormClosedEventHandler(form.View.OnClosed); 83 form.FormClosed -= new FormClosedEventHandler(DocumentFormClosed); 84 foreach (IUserInterfaceItem item in UserInterfaceItems) 85 form.View.Changed -= new EventHandler(item.ViewChanged); 86 } 87 88 private void DocumentFormActivated(object sender, EventArgs e) { 89 base.ActiveView = ((DocumentForm)sender).View; 90 } 91 92 protected DocumentForm FindForm(IView view) { 93 IEnumerable<DocumentForm> forms = 94 from df in OwnedForms 95 where ((DocumentForm)df).View == view 96 select (DocumentForm)df; 97 if (forms.Count() == 1) 98 return forms.Single(); 99 return null; 58 protected override Form CreateForm(IView view) { 59 DocumentForm form = new DocumentForm(view); 60 form.ShowInTaskbar = true; 61 return form; 100 62 } 101 63 }
Note: See TracChangeset
for help on using the changeset viewer.