WorkflowMenuCommands Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*
Defines a set of CommandID fields that each corresponds to a command function provided by the workflow designers. This class cannot be inherited.
public ref class WorkflowMenuCommands sealed : System::ComponentModel::Design::StandardCommands
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
[System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
public sealed class WorkflowMenuCommands : System.ComponentModel.Design.StandardCommands
type WorkflowMenuCommands = class
inherit StandardCommands
[<System.Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")>]
type WorkflowMenuCommands = class
inherit StandardCommands
Public NotInheritable Class WorkflowMenuCommands
Inherits StandardCommands
- Inheritance
- Attributes
Examples
The following example demonstrates how to create a custom MenuCommandService. In this example, a context menu is created when the ShowContextMenu
is called. In the GetSelectionMenuItems
method, the WorkflowMenuCommands class is utilized to associate the proper menu commands provided by the workflow designer with their corresponding text. When this is finished, an event handler is associated with each command so that when the command is selected, the appropriate MenuCommand
is invoked.
internal sealed class WorkflowMenuCommandService : MenuCommandService
{
public WorkflowMenuCommandService(IServiceProvider serviceProvider)
: base(serviceProvider)
{
}
public override void ShowContextMenu(CommandID menuID, int x, int y)
{
if (menuID == WorkflowMenuCommands.SelectionMenu)
{
ContextMenu contextMenu = new ContextMenu();
foreach (DesignerVerb verb in Verbs)
{
MenuItem menuItem = new MenuItem(verb.Text, new EventHandler(OnMenuClicked));
menuItem.Tag = verb;
contextMenu.MenuItems.Add(menuItem);
}
MenuItem[] items = GetSelectionMenuItems();
if (items.Length > 0)
{
contextMenu.MenuItems.Add(new MenuItem("-"));
foreach (MenuItem item in items)
contextMenu.MenuItems.Add(item);
}
WorkflowView workflowView = GetService(typeof(WorkflowView)) as WorkflowView;
if (workflowView != null)
contextMenu.Show(workflowView, workflowView.PointToClient(new Point(x, y)));
}
}
private MenuItem[] GetSelectionMenuItems()
{
List<MenuItem> menuItems = new List<MenuItem>();
bool addMenuItems = true;
ISelectionService selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
if (selectionService != null)
{
foreach (object obj in selectionService.GetSelectedComponents())
{
if (!(obj is Activity))
{
addMenuItems = false;
break;
}
}
}
if (addMenuItems)
{
Dictionary<CommandID, string> selectionCommands = new Dictionary<CommandID, string>();
selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut");
selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy");
selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste");
selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete");
selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse");
selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand");
selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable");
selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable");
foreach (CommandID id in selectionCommands.Keys)
{
MenuCommand command = FindCommand(id);
if (command != null)
{
MenuItem menuItem = new MenuItem(selectionCommands[id], new EventHandler(OnMenuClicked));
menuItem.Tag = command;
menuItems.Add(menuItem);
}
}
}
return menuItems.ToArray();
}
private void OnMenuClicked(object sender, EventArgs e)
{
MenuItem menuItem = sender as MenuItem;
if (menuItem != null && menuItem.Tag is MenuCommand)
{
MenuCommand command = menuItem.Tag as MenuCommand;
command.Invoke();
}
}
}
Friend NotInheritable Class WorkflowMenuCommandService
Inherits MenuCommandService
Public Sub New(ByVal serviceProvider As IServiceProvider)
MyBase.new(serviceProvider)
End Sub
Public Overrides Sub ShowContextMenu(ByVal menuID As CommandID, ByVal x As Integer, ByVal y As Integer)
If menuID.ID = WorkflowMenuCommands.SelectionMenu.ID Then
Dim contextMenu As New ContextMenu()
For Each verb As DesignerVerb In Verbs
Dim MenuItem As New MenuItem(verb.Text, AddressOf OnMenuClicked)
MenuItem.Tag = verb
contextMenu.MenuItems.Add(MenuItem)
Next
Dim items As MenuItem() = GetSelectionMenuItems()
If (items.Length > 0) Then
contextMenu.MenuItems.Add(New MenuItem("-"))
For Each item As MenuItem In items
contextMenu.MenuItems.Add(item)
Next
Dim workflowView As WorkflowView = CType(GetService(GetType(WorkflowView)), WorkflowView)
If workflowView Is Nothing Then
contextMenu.Show(workflowView, workflowView.PointToClient(New Point(x, y)))
End If
End If
End If
End Sub
Private Function GetSelectionMenuItems() As MenuItem()
Dim menuItems As New List(Of MenuItem)()
Dim addMenuItems As Boolean = True
Dim selectionService As ISelectionService = CType(GetService(GetType(ISelectionService)), ISelectionService)
If selectionService IsNot Nothing Then
For Each obj As Object In selectionService.GetSelectedComponents()
If Not TypeOf obj Is Activity Then
addMenuItems = False
Exit For
End If
Next
End If
If (addMenuItems) Then
Dim selectionCommands As New Dictionary(Of CommandID, String)()
selectionCommands.Add(WorkflowMenuCommands.Cut, "Cut")
selectionCommands.Add(WorkflowMenuCommands.Copy, "Copy")
selectionCommands.Add(WorkflowMenuCommands.Paste, "Paste")
selectionCommands.Add(WorkflowMenuCommands.Delete, "Delete")
selectionCommands.Add(WorkflowMenuCommands.Collapse, "Collapse")
selectionCommands.Add(WorkflowMenuCommands.Expand, "Expand")
selectionCommands.Add(WorkflowMenuCommands.Disable, "Disable")
selectionCommands.Add(WorkflowMenuCommands.Enable, "Enable")
For Each id As CommandID In selectionCommands.Keys
Dim command As MenuCommand = FindCommand(id)
If command IsNot Nothing Then
Dim menuItem As New MenuItem(selectionCommands(id), AddressOf OnMenuClicked)
menuItem.Tag = command
menuItems.Add(menuItem)
End If
Next
End If
Return menuItems.ToArray()
End Function
Private Sub OnMenuClicked(ByVal sender As Object, ByVal e As EventArgs)
Dim menuItem As MenuItem = CType(sender, MenuItem)
If menuItem IsNot Nothing And TypeOf menuItem.Tag Is MenuCommand Then
Dim command As MenuCommand = CType(menuItem.Tag, MenuCommand)
command.Invoke()
End If
End Sub
End Class
To enable this service, call the AddService
method of the LoaderHost property in a WorkflowDesignerLoader class as shown in the following example.
protected override void Initialize()
{
base.Initialize();
IDesignerLoaderHost host = this.LoaderHost;
if (host != null)
{
host.RemoveService(typeof(IIdentifierCreationService));
host.AddService(typeof(IIdentifierCreationService), new IdentifierCreationService(host));
host.AddService(typeof(IMenuCommandService), new WorkflowMenuCommandService(host));
host.AddService(typeof(IToolboxService), new Toolbox(host));
TypeProvider typeProvider = new TypeProvider(host);
typeProvider.AddAssemblyReference(typeof(string).Assembly.Location);
host.AddService(typeof(ITypeProvider), typeProvider, true);
host.AddService(typeof(IEventBindingService), new EventBindingService());
}
}
Protected Overrides Sub Initialize()
MyBase.Initialize()
Dim host As IDesignerLoaderHost = Me.LoaderHost
If host IsNot Nothing Then
host.RemoveService(GetType(IIdentifierCreationService))
host.AddService(GetType(IIdentifierCreationService), New IdentifierCreationService(host))
host.AddService(GetType(IMenuCommandService), New WorkflowMenuCommandService(host))
host.AddService(GetType(IToolboxService), New Toolbox(host))
Dim typeProvider As New TypeProvider(host)
typeProvider.AddAssemblyReference(GetType(String).Assembly.Location)
host.AddService(GetType(ITypeProvider), typeProvider, True)
host.AddService(GetType(IEventBindingService), New EventBindingService())
End If
End Sub
Remarks
Note
This material discusses types and namespaces that are obsolete. For more information, see Deprecated Types in Windows Workflow Foundation 4.5.
WorkflowMenuCommands contains a set of CommandID fields that can be used to specify a command to link when adding a command using the AddCommand method of the IMenuCommandService.
Constructors
WorkflowMenuCommands() |
Initializes a new instance of the WorkflowMenuCommands class. |
Fields
BreakpointActionMenu |
Gets the CommandID for the breakpoint action menu. This field is read-only. |
BreakpointConditionMenu |
Gets the CommandID for the breakpoint condition menu. This field is read-only. |
BreakpointConstraintsMenu |
Gets the CommandID for the breakpoint constraints menu. This field is read-only. |
BreakpointHitCountMenu |
Gets the CommandID for the breakpoint hit count menu. This field is read-only. |
BreakpointLocationMenu |
Gets the CommandID for the breakpoint location menu. This field is read-only. |
ChangeTheme |
Gets the CommandID for the change theme menu. This field is read-only. |
ClearBreakpointsMenu |
A CommandID that can be used to access the clear breakpoints menu. This field is read-only. |
Collapse |
A CommandID that can be used to access the collapse menu. This field is read-only. |
CopyToClipboard |
A CommandID that can be used to access the copy menu. This field is read-only. |
CreateTheme |
A CommandID that can be used to access the create theme menu. This field is read-only. |
DebugCommandSetId |
Provides a unique identifier for the debug command set. This field is read-only. |
DebugStepBranchMenu |
A CommandID that can be used to access the debug step branch menu. This field is read-only. |
DebugStepInstanceMenu |
A CommandID that can be used to access the debug step instance menu. This field is read-only. |
DebugWorkflowGroupId |
Provides a unique identifier for the debug workflow group of menus. This field is read-only. |
DefaultFilter |
A CommandID that can be used to access the default filter menu. This field is read-only. |
DefaultPage |
A CommandID that can be used to access the default page menu. This field is read-only. |
DesignerActionsMenu |
A CommandID that can be used to access the designer actions menu. This field is read-only. |
DesignerProperties |
A CommandID that can be used to access the designer properties menu. This field is read-only. |
Disable |
A CommandID that can be used to access the disable menu. This field is read-only. |
Enable |
A CommandID that can be used to access the enable menu. This field is read-only. |
EnableBreakpointMenu |
A CommandID that can be used to access the enable breakpoint menu. This field is read-only. |
ExecutionStateMenu |
A CommandID that can be used to access the execution state menu. This field is read-only. |
Expand |
A CommandID that can be used to access the expand menu. This field is read-only. |
FirstZoomCommand |
A CommandID that can be used to access the zoom first menu. This field is read-only. |
GotoDisassemblyMenu |
A CommandID that can be used to access the goto disassembly menu. This field is read-only. |
InsertBreakpointMenu |
A CommandID that can be used to access the insert breakpoint menu. This field is read-only. |
InsertTracePointMenu |
A CommandID that can be used to access the insert tracepoint menu. This field is read-only. |
LastZoomCommand |
A CommandID that can be used to access the zoom last menu. This field is read-only. |
MenuGuid |
Provides a unique identifier for the menu. This field is read-only. |
NewDataBreakpointMenu |
A CommandID that can be used to access the new data breakpoint menu. This field is read-only. |
NewFileTracePointMenu |
A CommandID that can be used to access the new file tracepoint menu. This field is read-only. |
PageDown |
A CommandID that can be used to access the PageDown menu. This field is read-only. |
PageLayoutMenu |
A CommandID that can be used to access the page layout menu. This field is read-only. |
PageSetup |
A CommandID that can be used to access the page setup menu. This field is read-only. |
PageUp |
A CommandID that can be used to access the PageUp menu. This field is read-only. |
Pan |
A CommandID that can be used to access the pan menu. This field is read-only. |
PanMenu |
A CommandID that can be used to access the pan menu. This field is read-only. |
A CommandID that can be used to access the print menu. This field is read-only. |
|
PrintPreview |
A CommandID that can be used to access the print preview menu. This field is read-only. |
PrintPreviewPage |
A CommandID that can be used to access the print preview page menu. This field is read-only. |
RunToCursorMenu |
A CommandID that can be used to access the run to cursor menu. This field is read-only. |
SaveAsImage |
A CommandID that can be used to access the save as image menu. This field is read-only. |
SelectionMenu |
A CommandID that can be used to access the selection menu. This field is read-only. |
SetNextStatementMenu |
A CommandID that can be used to access the set next statement menu. This field is read-only. |
ShowAll |
A CommandID that can be used to access the show all menu. This field is read-only. |
ShowNextStatementMenu |
A CommandID that can be used to access the show next statement menu. This field is read-only. |
ToggleBreakpointMenu |
A CommandID that can be used to access the toggle breakpoint menu. This field is read-only. |
VerbGroupActions |
A CommandID that can be used to access the verb group actions menu. This field is read-only. |
VerbGroupDesignerActions |
A CommandID that can be used to access the verb group designer actions menu. This field is read-only. |
VerbGroupEdit |
A CommandID that can be used to access the edit verb group menu. This field is read-only. |
VerbGroupGeneral |
A CommandID that can be used to access the general verb group menu. This field is read-only. |
VerbGroupMisc |
A CommandID that can be used to access the miscellaneous verb group menu. This field is read-only. |
VerbGroupOptions |
A CommandID that can be used to access the options verb group menu. This field is read-only. |
VerbGroupView |
A CommandID that can be used to access the view verb group menu. This field is read-only. |
WorkflowCommandSetId |
Provides a unique identifier for the workflow command set. This field is read-only. |
WorkflowToolBar |
A CommandID that can be used to access the workflow toolbar menu. This field is read-only. |
Zoom100Mode |
A CommandID that can be used to access the zoom 100% menu. This field is read-only. |
Zoom150Mode |
A CommandID that can be used to access the zoom 150% menu. This field is read-only. |
Zoom200Mode |
A CommandID that can be used to access the zoom 200% menu. This field is read-only. |
Zoom300Mode |
A CommandID that can be used to access the zoom 300% menu. This field is read-only. |
Zoom400Mode |
A CommandID that can be used to access the zoom 400% menu. This field is read-only. |
Zoom50Mode |
A CommandID that can be used to access the zoom 50% menu. This field is read-only. |
Zoom75Mode |
A CommandID that can be used to access the zoom 75% menu. This field is read-only. |
ZoomIn |
A CommandID that can be used to access the zoom in menu. This field is read-only. |
ZoomLevelCombo |
A CommandID that can be used to access the zoom level combo menu. This field is read-only. |
ZoomLevelListHandler |
A CommandID that can be used to access the zoom level list handler menu. This field is read-only. |
ZoomMenu |
A CommandID that can be used to access the zoom menu. This field is read-only. |
ZoomOut |
A CommandID that can be used to access the zoom out menu. This field is read-only. |
Methods
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |