/// <summary> /// Called to build menus and toolbars. Override this method to customize menu and toolbar building. /// </summary> /// <remarks> /// The default implementation simply clears and re-creates the toolstrip using methods on the /// utility class <see cref="ToolStripBuilder"/>. /// </remarks> /// <param name="kind"></param> /// <param name="toolStrip"></param> /// <param name="actionModel"></param> protected virtual void BuildToolStrip(ToolStripBuilder.ToolStripKind kind, ToolStrip toolStrip, ActionModelNode actionModel) { // avoid flicker toolStrip.SuspendLayout(); // very important to clean up the existing ones first ToolStripBuilder.Clear(toolStrip.Items); if (actionModel != null) { if (actionModel.ChildNodes.Count > 0) { // Toolstrip should only be visible if there are items on it if (kind == ToolStripBuilder.ToolStripKind.Toolbar) { ToolStripBuilder.BuildToolStrip(kind, toolStrip.Items, actionModel.ChildNodes, ToolStripBuilder.ToolStripBuilderStyle.GetDefault(), ToolStripSettings.Default.IconSize); } else { ToolStripBuilder.BuildToolStrip(kind, toolStrip.Items, actionModel.ChildNodes); } } } toolStrip.ResumeLayout(); }
/// <summary> /// Constructor /// </summary> public AlertViewerComponentControl(AlertViewerComponent component) : base(component) { InitializeComponent(); _component = component; ToolStripBuilder.BuildToolStrip(ToolStripBuilder.ToolStripKind.Toolbar, _toolbar.Items, _component.AlertActions.ChildNodes); _alertTableView.Table = _component.Alerts; _alertTableView.MenuModel = _component.AlertActions; // need to work with these manually, because data-binding doesn't work well with toolstrip comboboxes _filter.Items.AddRange(_component.FilterChoices.Cast <object>().Select(i => new FilterItem(i, _component.FormatFilter)).ToArray()); _filter.SelectedIndex = 0; _filter.SelectedIndexChanged += _activityFilter_SelectedIndexChanged; }