Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/19/10 11:45:51 (14 years ago)
Author:
mkommend
Message:

added ViewAttribute and adapted ViewContextMenuStrip (ticket #857)

File:
1 edited

Legend:

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

    r2696 r2837  
    88
    99namespace HeuristicLab.MainForm.WindowsForms {
    10   public partial class ViewContextMenuStrip : ContextMenuStrip {
    11     private object item;
     10  public sealed partial class ViewContextMenuStrip : ContextMenuStrip {
    1211    public ViewContextMenuStrip() {
    1312      InitializeComponent();
     13      this.menuItems = new Dictionary<Type, ToolStripMenuItem>();
    1414    }
    1515
    16     public ViewContextMenuStrip(object item) :this() {
    17       if (item != null) {
    18         this.item = item;
    19         IEnumerable<Type> types = MainFormManager.GetViewTypes(item.GetType());
    20         if (types != null) {
    21           foreach (Type t in types) {
    22             ToolStripMenuItem menuItem = new ToolStripMenuItem() {
    23               Text = t.Name,
    24               Tag = t
    25             };
    26             this.Items.Add(menuItem);
    27           }
     16    public ViewContextMenuStrip(object item)
     17      : this() {
     18      this.Item = item;
     19    }
     20
     21    private object item;
     22    public object Item {
     23      get { return this.item; }
     24      set {
     25        if (this.item != value) {
     26          this.item = value;
     27          this.RefreshMenuItems();
    2828        }
    2929      }
    3030    }
    3131
    32     private void ViewContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e) {
    33       if (item != null) {
    34         Type viewType = e.ClickedItem.Tag as Type;
    35         IView view = MainFormManager.CreateView(viewType, this.item);
    36         view.Show();
     32    private Dictionary<Type, ToolStripMenuItem> menuItems;
     33    public IEnumerable<KeyValuePair<Type, ToolStripMenuItem>> MenuItems {
     34      get { return this.menuItems; }
     35    }
     36
     37    private void RefreshMenuItems() {
     38      this.Items.Clear();
     39      this.menuItems.Clear();
     40
     41      if (this.item != null) {
     42        ToolStripMenuItem menuItem;
     43        IEnumerable<Type> types = MainFormManager.GetViewTypes(item.GetType());
     44        foreach (Type t in types) {
     45          menuItem = new ToolStripMenuItem();
     46          menuItem.Tag = t;
     47          menuItem.Text = ViewAttribute.GetViewName(t);
     48
     49          this.menuItems.Add(t, menuItem);
     50          this.Items.Add(menuItem);
     51        }
    3752      }
    3853    }
    39 
    4054  }
    4155}
Note: See TracChangeset for help on using the changeset viewer.