Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/15/13 16:11:27 (11 years ago)
Author:
jkarder
Message:

#2116: added prototype of a breadcrumb navigation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/Breadcrumbs/HeuristicLab.MainForm.WindowsForms/3.3/Controls/ViewContextMenuStrip.cs

    r9456 r10042  
    3030    public ViewContextMenuStrip() {
    3131      InitializeComponent();
    32       this.menuItems = new Dictionary<Type, ToolStripMenuItem>();
    33       this.ignoredViewTypes = new List<Type>();
     32      menuItems = new Dictionary<Type, ToolStripMenuItem>();
     33      ignoredViewTypes = new List<Type>();
    3434    }
    3535
    3636    public ViewContextMenuStrip(IContainer container)
    3737      : base(container) {
    38         InitializeComponent();
    39       this.menuItems = new Dictionary<Type, ToolStripMenuItem>();
    40       this.ignoredViewTypes = new List<Type>();
     38      InitializeComponent();
     39      menuItems = new Dictionary<Type, ToolStripMenuItem>();
     40      ignoredViewTypes = new List<Type>();
     41      ShowBreadcrumbsToolStripMenuItem = new ToolStripMenuItem("Show Breadcrumbs");
     42      ShowBreadcrumbsToolStripMenuItem.Click += ShowBreadcrumbsToolStripMenuItem_Click;
     43      ShowBreadcrumbsToolStripMenuItem.CheckedChanged += ShowBreadcrumbsToolStripMenuItem_CheckedChanged;
    4144    }
    4245
    4346    private object item;
    4447    public object Item {
    45       get { return this.item; }
     48      get { return item; }
    4649      set {
    47         if (this.item != value) {
    48           this.item = value;
    49           this.RefreshMenuItems();
     50        if (item != value) {
     51          item = value;
     52          RefreshMenuItems();
    5053        }
    5154      }
     
    5457    private List<Type> ignoredViewTypes;
    5558    public IEnumerable<Type> IgnoredViewTypes {
    56       get { return this.ignoredViewTypes; }
    57       set { this.ignoredViewTypes = new List<Type>(value); RefreshMenuItems(); }
     59      get { return ignoredViewTypes; }
     60      set { ignoredViewTypes = new List<Type>(value); RefreshMenuItems(); }
    5861    }
    5962
    6063    private Dictionary<Type, ToolStripMenuItem> menuItems;
    6164    public IEnumerable<KeyValuePair<Type, ToolStripMenuItem>> MenuItems {
    62       get { return this.menuItems; }
     65      get { return menuItems; }
    6366    }
     67
     68    public ToolStripMenuItem ShowBreadcrumbsToolStripMenuItem { get; private set; }
    6469
    6570    private void RefreshMenuItems() {
     
    6873        foreach (ToolStripMenuItem m in menuItems.Values)
    6974          m.Dispose();
    70         this.Items.Clear();
    71         this.menuItems.Clear();
     75        Items.Clear();
     76        menuItems.Clear();
    7277
    73         if (this.item != null) {
     78        if (item != null) {
    7479          ToolStripMenuItem menuItem;
    7580          IEnumerable<Type> types = MainFormManager.GetViewTypes(item.GetType(), true);
     
    7984            menuItem.Text = ViewAttribute.GetViewName(t);
    8085
    81             this.menuItems.Add(t, menuItem);
    82             this.Items.Add(menuItem);
     86            menuItems.Add(t, menuItem);
     87            Items.Add(menuItem);
    8388          }
     89          if (Items.Count > 0)
     90            Items.Add(new ToolStripSeparator());
     91          Items.Add(ShowBreadcrumbsToolStripMenuItem);
    8492        }
    8593      }
    8694    }
     95
     96    public event EventHandler ShowBreadcrumbsChanged;
     97    private void OnShowBreadcrumbsChanged() {
     98      var handler = ShowBreadcrumbsChanged;
     99      if (handler != null) handler(this, EventArgs.Empty);
     100    }
     101
     102    private void ShowBreadcrumbsToolStripMenuItem_CheckedChanged(object sender, EventArgs e) {
     103      OnShowBreadcrumbsChanged();
     104    }
     105
     106    private void ShowBreadcrumbsToolStripMenuItem_Click(object sender, EventArgs e) {
     107      ShowBreadcrumbsToolStripMenuItem.Checked = !ShowBreadcrumbsToolStripMenuItem.Checked;
     108    }
    87109  }
    88110}
Note: See TracChangeset for help on using the changeset viewer.