WorkflowMenuCommands WorkflowMenuCommands WorkflowMenuCommands WorkflowMenuCommands Class

Definition

Warning

This API is now obsolete.

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
[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
Public NotInheritable Class WorkflowMenuCommands
Inherits StandardCommands
Inheritance
WorkflowMenuCommandsWorkflowMenuCommandsWorkflowMenuCommandsWorkflowMenuCommands
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() WorkflowMenuCommands() WorkflowMenuCommands() WorkflowMenuCommands()

Initializes a new instance of the WorkflowMenuCommands class.

Fields

BreakpointActionMenu BreakpointActionMenu BreakpointActionMenu BreakpointActionMenu

Gets the CommandID for the breakpoint action menu. This field is read-only.

BreakpointConditionMenu BreakpointConditionMenu BreakpointConditionMenu BreakpointConditionMenu

Gets the CommandID for the breakpoint condition menu. This field is read-only.

BreakpointConstraintsMenu BreakpointConstraintsMenu BreakpointConstraintsMenu BreakpointConstraintsMenu

Gets the CommandID for the breakpoint constraints menu. This field is read-only.

BreakpointHitCountMenu BreakpointHitCountMenu BreakpointHitCountMenu BreakpointHitCountMenu

Gets the CommandID for the breakpoint hit count menu. This field is read-only.

BreakpointLocationMenu BreakpointLocationMenu BreakpointLocationMenu BreakpointLocationMenu

Gets the CommandID for the breakpoint location menu. This field is read-only.

ChangeTheme ChangeTheme ChangeTheme ChangeTheme

Gets the CommandID for the change theme menu. This field is read-only.

ClearBreakpointsMenu ClearBreakpointsMenu ClearBreakpointsMenu ClearBreakpointsMenu

A CommandID that can be used to access the clear breakpoints menu. This field is read-only.

Collapse Collapse Collapse Collapse

A CommandID that can be used to access the collapse menu. This field is read-only.

CopyToClipboard CopyToClipboard CopyToClipboard CopyToClipboard

A CommandID that can be used to access the copy menu. This field is read-only.

CreateTheme CreateTheme CreateTheme CreateTheme

A CommandID that can be used to access the create theme menu. This field is read-only.

DebugCommandSetId DebugCommandSetId DebugCommandSetId DebugCommandSetId

Provides a unique identifier for the debug command set. This field is read-only.

DebugStepBranchMenu DebugStepBranchMenu DebugStepBranchMenu DebugStepBranchMenu

A CommandID that can be used to access the debug step branch menu. This field is read-only.

DebugStepInstanceMenu DebugStepInstanceMenu DebugStepInstanceMenu DebugStepInstanceMenu

A CommandID that can be used to access the debug step instance menu. This field is read-only.

DebugWorkflowGroupId DebugWorkflowGroupId DebugWorkflowGroupId DebugWorkflowGroupId

Provides a unique identifier for the debug workflow group of menus. This field is read-only.

DefaultFilter DefaultFilter DefaultFilter DefaultFilter

A CommandID that can be used to access the default filter menu. This field is read-only.

DefaultPage DefaultPage DefaultPage DefaultPage

A CommandID that can be used to access the default page menu. This field is read-only.

DesignerActionsMenu DesignerActionsMenu DesignerActionsMenu DesignerActionsMenu

A CommandID that can be used to access the designer actions menu. This field is read-only.

DesignerProperties DesignerProperties DesignerProperties DesignerProperties

A CommandID that can be used to access the designer properties menu. This field is read-only.

Disable Disable Disable Disable

A CommandID that can be used to access the disable menu. This field is read-only.

Enable Enable Enable Enable

A CommandID that can be used to access the enable menu. This field is read-only.

EnableBreakpointMenu EnableBreakpointMenu EnableBreakpointMenu EnableBreakpointMenu

A CommandID that can be used to access the enable breakpoint menu. This field is read-only.

ExecutionStateMenu ExecutionStateMenu ExecutionStateMenu ExecutionStateMenu

A CommandID that can be used to access the execution state menu. This field is read-only.

Expand Expand Expand Expand

A CommandID that can be used to access the expand menu. This field is read-only.

FirstZoomCommand FirstZoomCommand FirstZoomCommand FirstZoomCommand

A CommandID that can be used to access the zoom first menu. This field is read-only.

GotoDisassemblyMenu GotoDisassemblyMenu GotoDisassemblyMenu GotoDisassemblyMenu

A CommandID that can be used to access the goto disassembly menu. This field is read-only.

InsertBreakpointMenu InsertBreakpointMenu InsertBreakpointMenu InsertBreakpointMenu

A CommandID that can be used to access the insert breakpoint menu. This field is read-only.

InsertTracePointMenu InsertTracePointMenu InsertTracePointMenu InsertTracePointMenu

A CommandID that can be used to access the insert tracepoint menu. This field is read-only.

LastZoomCommand LastZoomCommand LastZoomCommand LastZoomCommand

A CommandID that can be used to access the zoom last menu. This field is read-only.

MenuGuid MenuGuid MenuGuid MenuGuid

Provides a unique identifier for the menu. This field is read-only.

NewDataBreakpointMenu NewDataBreakpointMenu NewDataBreakpointMenu NewDataBreakpointMenu

A CommandID that can be used to access the new data breakpoint menu. This field is read-only.

NewFileTracePointMenu NewFileTracePointMenu NewFileTracePointMenu NewFileTracePointMenu

A CommandID that can be used to access the new file tracepoint menu. This field is read-only.

PageDown PageDown PageDown PageDown

A CommandID that can be used to access the PageDown menu. This field is read-only.

PageLayoutMenu PageLayoutMenu PageLayoutMenu PageLayoutMenu

A CommandID that can be used to access the page layout menu. This field is read-only.

PageSetup PageSetup PageSetup PageSetup

A CommandID that can be used to access the page setup menu. This field is read-only.

PageUp PageUp PageUp PageUp

A CommandID that can be used to access the PageUp menu. This field is read-only.

Pan Pan Pan Pan

A CommandID that can be used to access the pan menu. This field is read-only.

PanMenu PanMenu PanMenu PanMenu

A CommandID that can be used to access the pan menu. This field is read-only.

Print Print Print Print

A CommandID that can be used to access the print menu. This field is read-only.

PrintPreview PrintPreview PrintPreview PrintPreview

A CommandID that can be used to access the print preview menu. This field is read-only.

PrintPreviewPage PrintPreviewPage PrintPreviewPage PrintPreviewPage

A CommandID that can be used to access the print preview page menu. This field is read-only.

RunToCursorMenu RunToCursorMenu RunToCursorMenu RunToCursorMenu

A CommandID that can be used to access the run to cursor menu. This field is read-only.

SaveAsImage SaveAsImage SaveAsImage SaveAsImage

A CommandID that can be used to access the save as image menu. This field is read-only.

SelectionMenu SelectionMenu SelectionMenu SelectionMenu

A CommandID that can be used to access the selection menu. This field is read-only.

SetNextStatementMenu SetNextStatementMenu SetNextStatementMenu SetNextStatementMenu

A CommandID that can be used to access the set next statement menu. This field is read-only.

ShowAll ShowAll ShowAll ShowAll

A CommandID that can be used to access the show all menu. This field is read-only.

ShowNextStatementMenu ShowNextStatementMenu ShowNextStatementMenu ShowNextStatementMenu

A CommandID that can be used to access the show next statement menu. This field is read-only.

ToggleBreakpointMenu ToggleBreakpointMenu ToggleBreakpointMenu ToggleBreakpointMenu

A CommandID that can be used to access the toggle breakpoint menu. This field is read-only.

VerbGroupActions VerbGroupActions VerbGroupActions VerbGroupActions

A CommandID that can be used to access the verb group actions menu. This field is read-only.

VerbGroupDesignerActions VerbGroupDesignerActions VerbGroupDesignerActions VerbGroupDesignerActions

A CommandID that can be used to access the verb group designer actions menu. This field is read-only.

VerbGroupEdit VerbGroupEdit VerbGroupEdit VerbGroupEdit

A CommandID that can be used to access the edit verb group menu. This field is read-only.

VerbGroupGeneral VerbGroupGeneral VerbGroupGeneral VerbGroupGeneral

A CommandID that can be used to access the general verb group menu. This field is read-only.

VerbGroupMisc VerbGroupMisc VerbGroupMisc VerbGroupMisc

A CommandID that can be used to access the miscellaneous verb group menu. This field is read-only.

VerbGroupOptions VerbGroupOptions VerbGroupOptions VerbGroupOptions

A CommandID that can be used to access the options verb group menu. This field is read-only.

VerbGroupView VerbGroupView VerbGroupView VerbGroupView

A CommandID that can be used to access the view verb group menu. This field is read-only.

WorkflowCommandSetId WorkflowCommandSetId WorkflowCommandSetId WorkflowCommandSetId

Provides a unique identifier for the workflow command set. This field is read-only.

WorkflowToolBar WorkflowToolBar WorkflowToolBar WorkflowToolBar

A CommandID that can be used to access the workflow toolbar menu. This field is read-only.

Zoom100Mode Zoom100Mode Zoom100Mode Zoom100Mode

A CommandID that can be used to access the zoom 100% menu. This field is read-only.

Zoom150Mode Zoom150Mode Zoom150Mode Zoom150Mode

A CommandID that can be used to access the zoom 150% menu. This field is read-only.

Zoom200Mode Zoom200Mode Zoom200Mode Zoom200Mode

A CommandID that can be used to access the zoom 200% menu. This field is read-only.

Zoom300Mode Zoom300Mode Zoom300Mode Zoom300Mode

A CommandID that can be used to access the zoom 300% menu. This field is read-only.

Zoom400Mode Zoom400Mode Zoom400Mode Zoom400Mode

A CommandID that can be used to access the zoom 400% menu. This field is read-only.

Zoom50Mode Zoom50Mode Zoom50Mode Zoom50Mode

A CommandID that can be used to access the zoom 50% menu. This field is read-only.

Zoom75Mode Zoom75Mode Zoom75Mode Zoom75Mode

A CommandID that can be used to access the zoom 75% menu. This field is read-only.

ZoomIn ZoomIn ZoomIn ZoomIn

A CommandID that can be used to access the zoom in menu. This field is read-only.

ZoomLevelCombo ZoomLevelCombo ZoomLevelCombo ZoomLevelCombo

A CommandID that can be used to access the zoom level combo menu. This field is read-only.

ZoomLevelListHandler ZoomLevelListHandler ZoomLevelListHandler ZoomLevelListHandler

A CommandID that can be used to access the zoom level list handler menu. This field is read-only.

ZoomMenu ZoomMenu ZoomMenu ZoomMenu

A CommandID that can be used to access the zoom menu. This field is read-only.

ZoomOut ZoomOut ZoomOut ZoomOut

A CommandID that can be used to access the zoom out menu. This field is read-only.

Methods

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Returns a string that represents the current object.

(Inherited from Object)

Applies to