Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/20/09 15:34:02 (15 years ago)
Author:
mkommend
Message:

refactored mainform (ticket #771)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/Mainform refactoring/HeuristicLab.MainForm.WindowsForms/3.2/SingleDocumentMainForm.cs

    r2434 r2443  
    4242    }
    4343
    44     public override void ShowView(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);
    4646      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();
    6353        }
     54        return ret;
    6455      }
    6556    }
    6657
    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;
    10062    }
    10163  }
Note: See TracChangeset for help on using the changeset viewer.