private void OnContextMenuStripOpening(object sender, CancelEventArgs e) { if (_tileController == null || _tileController.ContextMenuProvider == null) { e.Cancel = true; return; } if (_tileController.ContextMenuEnabled) { ActionModelNode menuModel = _tileController.ContextMenuProvider.GetContextMenuModel(_tileController); if (menuModel != null && menuModel.ChildNodes.Count > 0) { ToolStripBuilder.Clear(_contextMenuStrip.Items); ToolStripBuilder.BuildMenu(_contextMenuStrip.Items, menuModel.ChildNodes); // filter unavailable items out of list since they wreck the display of the overflow and scroll portions of the menu dropdown // (ClearCanvas Ticket #4775, Microsoft Connect Issue #136061) FilterUnavailableItems(_contextMenuStrip.Items); // cancel list if, after filtering, no items are left to display. e.Cancel = (_contextMenuStrip.Items.Count == 0); } else { e.Cancel = true; } } else { e.Cancel = true; } }
/// <summary> /// Clean up any resources being used. /// </summary> /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> protected override void Dispose(bool disposing) { if (disposing) { ToolStripBuilder.Clear(_contextMenuStrip.Items); _tilesToRepaint.Remove(this); DisposeSurface(); if (components != null) { components.Dispose(); } if (_tile != null) { _tile.Drawing -= new EventHandler(OnTileDrawing); _tile.RendererChanged -= new EventHandler(OnRendererChanged); _tile.EditBoxChanged -= new EventHandler(OnEditBoxChanged); _tile.InformationBoxChanged -= new EventHandler <InformationBoxChangedEventArgs>(OnInformationBoxChanged); _tile.SelectionChanged -= new EventHandler <ItemEventArgs <ITile> >(OnTileSelectionChanged); _tileController.CursorTokenChanged -= new EventHandler(OnCursorTokenChanged); _tileController.ContextMenuRequested -= new EventHandler <ItemEventArgs <Point> >(OnContextMenuRequested); _tileController.CaptureChanging -= new EventHandler <ItemEventArgs <IMouseButtonHandler> >(OnCaptureChanging); _tileController.Dispose(); _tile = null; } _tileController = null; } base.Dispose(disposing); }
private void InitializeToolStrip() { ToolStripBuilder.Clear(_toolStrip.Items); if (_component.ToolbarModel != null) { ToolStripBuilder.BuildToolbar(_toolStrip.Items, _component.ToolbarModel.ChildNodes); } }
private void InitializeMenu() { ToolStripBuilder.Clear(_contextMenu.Items); if (_menuModel != null) { ToolStripBuilder.BuildMenu(_contextMenu.Items, _menuModel.ChildNodes); } }
public ActivityMonitorComponentControl(ActivityMonitorComponent component) : base(component) { _component = component; InitializeComponent(); ToolStripBuilder.BuildToolStrip(ToolStripBuilder.ToolStripKind.Toolbar, _workItemToolStrip.Items, _component.WorkItemActions.ChildNodes); this.DataBindings.Add("IsConnected", _component, "IsConnected"); _aeTitle.DataBindings.Add("Text", _component, "AeTitle"); this.DataBindings.Add("HostName", _component, "HostName"); _totalStudies.DataBindings.Add("Text", _component, "TotalStudies"); _failures.DataBindings.Add("Text", _component, "Failures"); _diskSpace.DataBindings.Add("Text", _component, "DiskspaceUsed"); _diskSpaceMeter.DataBindings.Add("Value", _component, "DiskspaceUsedPercent"); Binding diskSpaceMeterFillStateBinding = new Binding("FillState", _component, "IsMaximumDiskspaceUsageExceeded", true, DataSourceUpdateMode.OnPropertyChanged); diskSpaceMeterFillStateBinding.Parse += ParseMeterFillState; diskSpaceMeterFillStateBinding.Format += FormatMeterFillState; _diskSpaceMeter.DataBindings.Add(diskSpaceMeterFillStateBinding); _diskSpaceWarningIcon.DataBindings.Add("Visible", _component, "IsMaximumDiskspaceUsageExceeded", true, DataSourceUpdateMode.OnPropertyChanged); _diskSpaceWarningMessage.DataBindings.Add("Visible", _component, "IsMaximumDiskspaceUsageExceeded", true, DataSourceUpdateMode.OnPropertyChanged); _diskSpaceWarningMessage.DataBindings.Add("Text", _component, "DiskSpaceWarningMessage", true, DataSourceUpdateMode.OnPropertyChanged); // need to work with these manually, because data-binding doesn't work well with toolstrip comboboxes _activityFilter.Items.AddRange(_component.ActivityTypeFilterChoices.Cast <object>().Select(i => new FilterItem(i, _component.FormatActivityTypeFilter)).ToArray()); _activityFilter.SelectedIndex = 0; _activityFilter.SelectedIndexChanged += _activityFilter_SelectedIndexChanged; // need to work with these manually, because data-binding doesn't work well with toolstrip comboboxes _statusFilter.Items.AddRange(_component.StatusFilterChoices.Cast <object>().Select(i => new FilterItem(i, _component.FormatStatusFilter)).ToArray()); _statusFilter.SelectedIndex = 0; _statusFilter.SelectedIndexChanged += _statusFilter_SelectedIndexChanged; // need to work with these manually, because data-binding doesn't work well with toolstrip comboboxes _textFilter.TextChanged += _textFilter_TextChanged; _component.PropertyChanged += _component_PropertyChanged; _workItemsTableView.Table = _component.WorkItemTable; _workItemsTableView.MenuModel = _component.WorkItemActions; _workItemsTableView.DataBindings.Add("Selection", _component, "WorkItemSelection", true, DataSourceUpdateMode.OnPropertyChanged); // suppress keeping the selection in view, otherwise it can be totally unusable when there's lot's of activity _workItemsTableView.SuppressForceSelectionDisplay = true; UpdateTooltips(); // only show study rules link if this feature is actually available _studyRulesLink.DataBindings.Add("Visible", _component, "StudyManagementRulesLinkVisible"); }
private static void ShowContextMenu(ContextMenuStrip contextMenuStrip, ActionModelNode actionModel, Point screenPoint, int minWidth, bool alignRight) { ToolStripBuilder.Clear(contextMenuStrip.Items); if (actionModel != null) { ToolStripBuilder.BuildMenu(contextMenuStrip.Items, actionModel.ChildNodes); if (alignRight) { screenPoint.Offset(-contextMenuStrip.Width, 0); } contextMenuStrip.Show(screenPoint); } }
public StudyFilterComponentPanel(StudyFilterComponent component) : this() { _component = component; _component.FilterPredicatesChanged += new EventHandler(_component_FilterPredicatesChanged); ActionModelRoot toolbarActions = ActionModelRoot.CreateModel("ClearCanvas.ImageViewer.Utilities.StudyFilters.View.WinForms", StudyFilterTool.DefaultToolbarActionSite, _component.ExportedActions); ToolStripBuilder.ToolStripBuilderStyle defaultStyle = new ToolStripBuilder.ToolStripBuilderStyle(); ToolStripBuilder.ToolStripBuilderStyle myStyle = new ToolStripBuilder.ToolStripBuilderStyle(ToolStripItemDisplayStyle.ImageAndText, defaultStyle.ToolStripAlignment, defaultStyle.TextImageRelation); ToolStripBuilder.BuildToolbar(_toolbar.Items, toolbarActions.ChildNodes, myStyle); _tableView.Table = component.Table; _tableView.MultiSelect = true; _tableView.ColumnFilterMenuStripClosed += new EventHandler(_tableView_ColumnFilterMenuStripClosed); _tableView.ContextActionModelDelegate = this.GetContextMenuModel; _tableView.ColumnFilterActionModelDelegate = this.GetColumnFilterMenuModel; _tableView.ReadOnly = true; }
/// <summary> /// Constructor. /// </summary> public BiographyOrderReportsComponentControl(BiographyOrderReportsComponent component) : base(component) { _component = component; InitializeComponent(); Control reportPreview = (Control)_component.ReportPreviewComponentHost.ComponentView.GuiElement; reportPreview.Dock = DockStyle.Fill; _reportPreviewPanel.Controls.Add(reportPreview); _reports.DataSource = _component.Reports; _reports.DataBindings.Add("Value", _component, "SelectedReport", true, DataSourceUpdateMode.OnPropertyChanged); _reports.Format += delegate(object sender, ListControlConvertEventArgs e) { e.Value = _component.FormatReportListItem(e.ListItem); }; _toolbarActionModel = _component.ActionModel; ToolStripBuilder.BuildToolbar(_toolstrip.Items, _toolbarActionModel.ChildNodes); _component.AllPropertiesChanged += AllPropertiesChangedEventHandler; }
/// <summary> /// Constructor /// </summary> public FoldersComponentControl(FoldersComponent component) { InitializeComponent(); _component = component; ToolStripBuilder.BuildToolbar(_toolbar.Items, _component.ToolbarModel.ChildNodes, ToolStripItemDisplayStyle.ImageAndText); foreach (IFolder folder in _component.Folders) { TreeNode node = new TreeNode(folder.DisplayName); node.Tag = folder; _folderTree.Nodes.Add(node); } _component.SelectedFolderChanged += new EventHandler(_component_SelectedFolderChanged); // TODO add .NET databindings to _component }
public LocalImageExplorerControl(LocalImageExplorerComponent component) { _component = component; _folderViewSelectionUpdatePublisher = new DelayedEventPublisher(OnFolderViewSelectionUpdatePublished); InitializeComponent(); InitializeHistoryMenu(); InitializeIcons(); InitializeFocusList(); SetViewMode(Settings.Default.FolderViewMode, false); SetHomeLocation(Settings.Default.HomeLocation); _folderView.ExceptionRaised += OnFolderControlExceptionRaised; _folderTree.ExceptionRaised += OnFolderControlExceptionRaised; ResetFocus(); // reset focus must happen after explorer controls are initially populated // Initialize menus here ToolStripBuilder.BuildMenu(_folderViewContextMenu.Items, _component.ContextMenuModel.ChildNodes); ToolStripBuilder.BuildMenu(_folderTreeContextMenu.Items, _component.ContextMenuModel.ChildNodes); }
public void DoIt() { //create window menus var _windowDefs = GetWindowDefs(); var windowMaps = new List <WindowMapping>(); var menuDefs = new List <MenuDef>(); var toolStripDefs = new List <ToolStripDef>(); var menuDefMapping = new Dictionary <Type, MenuDef>(); var tstDefMapping = new Dictionary <Type, ToolStripDef>(); //create window manager WindowManager wm = new WindowManager(_form, _form.dockPanel); //register window manager var autofacBuilder = new ContainerBuilder(); autofacBuilder.RegisterInstance(wm).As <IWindowManager>(); autofacBuilder.RegisterInstance <MainForm>(_form); autofacBuilder.Update(_container); foreach (var def in _windowDefs) { var window = CreateWindow(def, _resourceManager, _container); //menudef var m = new MenuDef() { ParentID = 0, MenuType = MenuType.Command, Image = def.ButtonImage, Name = "menu" + def.ButtonName, Text = def.MenuText, SizeH = 200, SizeV = 22, //Command = new DelegateCommand(()=>_wm.ShowWindow(def.Type)) }; menuDefs.Add(m); menuDefMapping.Add(def.ViewType, m); //ToolstripDef var tsd = new ToolStripDef() { Image = def.ButtonImage, Name = "tst" + def.ButtonName, SizeH = 23, SizeV = 22, ToolTip = def.ButtonTooltip, Text = def.ButtonText, //Command = new DelegateCommand(() => _wm.ShowWindow(def.Type)) }; toolStripDefs.Add(tsd); tstDefMapping.Add(def.ViewType, tsd); windowMaps.Add(window); } //documents var docTypeList = new List <Type>(); var _docDefs = GetDocumentDefs(); foreach (var def in _docDefs) { if (def.ViewType == null) { def.ViewType = Type.GetType(string.Format("{0}, {1}", def.ClassName, def.AssemblyName)); } docTypeList.Add(def.ViewType); } //register the windows wm.Init(new AutofacResolver(_container), windowMaps, docTypeList); _form.SetWindowmanager(wm); //Menus & toolstrip foreach (var m in menuDefMapping) { var type = m.Key; m.Value.Command = new DelegateCommand(() => wm.ShowWindow(type)); } foreach (var m in tstDefMapping) { var type = m.Key; m.Value.Command = new DelegateCommand(() => wm.ShowWindow(type)); } //Insert the menus into the main form MenuBuilder.InsertSubItems(_form.menuItemView, _resourceManager, menuDefs, 0); ToolStripBuilder.AppendItems(_form.toolBar, toolStripDefs, _resourceManager); RenderMenus(); }