Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
12/10/09 10:11:28 (14 years ago)
Author:
mkommend
Message:

added ViewShown, ViewHidden and ViewClosed events in MainForm (ticket #771)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.MainForm.WindowsForms/3.2/MainFormBase.cs

    r2544 r2548  
    130130    }
    131131
     132    public event EventHandler<ViewEventArgs> ViewClosed;
     133    protected virtual void OnViewClosed(IView view) {
     134      if (InvokeRequired) Invoke((Action<IView>)OnViewClosed, view);
     135      else if (this.ViewClosed != null) {
     136        this.ViewClosed(this, new ViewEventArgs(view));
     137      }
     138    }
     139
     140    public event EventHandler<ViewShownEventArgs> ViewShown;
     141    protected virtual void OnViewShown(IView view, bool firstTimeShown) {
     142      if (InvokeRequired) Invoke((Action<IView, bool>)OnViewShown, view, firstTimeShown);
     143      else if (this.ViewShown != null) {
     144        this.ViewShown(this, new ViewShownEventArgs(view, firstTimeShown));
     145      }
     146    }
     147
     148    public event EventHandler<ViewEventArgs> ViewHidden;
     149    protected virtual void OnViewHidden(IView view) {
     150      if (InvokeRequired) Invoke((Action<IView>)OnViewHidden, view);
     151      else if (this.ViewHidden != null) {
     152        this.ViewHidden(this, new ViewEventArgs(view));
     153      }
     154    }
     155
    132156    public event EventHandler Changed;
    133157    public void FireMainFormChanged() {
     
    145169    }
    146170
    147     public virtual bool ShowView(IView view) {
    148       if (InvokeRequired) return (bool)Invoke((Func<IView, bool>)ShowView, view);
     171    public void ShowView(IView view) {
     172      if (InvokeRequired) Invoke((Action<IView>)ShowView, view);
    149173      else {
    150174        if (!views.Keys.Contains(view)) {
     
    159183          foreach (IUserInterfaceItem item in UserInterfaceItems)
    160184            view.Changed += new EventHandler(item.ViewChanged);
    161           return true;
    162         } else
    163           return false;
    164       }
    165     }
    166 
    167     public virtual void HideView(IView view) {
     185          this.Show(view, true);
     186          this.OnViewShown(view, true);
     187        } else {
     188          this.Show(view, false);
     189          this.OnViewShown(view, false);
     190        }
     191      }
     192    }
     193
     194    protected virtual void Show(IView view, bool firstTimeShown) {     
     195    }
     196
     197    public void HideView(IView view) {
    168198      if (InvokeRequired) Invoke((Action<IView>)HideView, view);
    169199      else {
    170         if (views.ContainsKey(view))
    171           views[view].Hide();
    172       }
     200        if (this.views.ContainsKey(view)) {
     201          this.Hide(view);
     202          this.OnViewHidden(view);
     203        }
     204      }
     205    }
     206
     207    protected virtual void Hide(IView view) {
    173208    }
    174209
     
    176211      if (InvokeRequired) Invoke((Action<IView>)CloseView, view);
    177212      else {
    178         if (views.ContainsKey(view))
    179           views[view].Close();
     213        if (this.views.ContainsKey(view)) {
     214          this.views[view].Close();
     215          this.OnViewClosed(view);
     216        }
    180217      }
    181218    }
     
    184221      if (InvokeRequired) Invoke((Action<IView>)CloseView, view);
    185222      else {
    186         if (views.ContainsKey(view)) {
     223        if (this.views.ContainsKey(view)) {
    187224          ((ViewBase)view).closeReason = closeReason;
    188           views[view].Close();
     225          this.CloseView(view);
    189226        }
    190227      }
     
    198235    public virtual void CloseAllViews(CloseReason closeReason) {
    199236      foreach (IView view in views.Keys.ToArray())
    200         CloseView(view,closeReason);
     237        CloseView(view, closeReason);
    201238    }
    202239    #endregion
     
    217254
    218255      views.Remove(view);
     256      this.OnViewClosed(view);
    219257      if (ActiveView == view)
    220258        ActiveView = null;
Note: See TracChangeset for help on using the changeset viewer.