ArcGIS Pro 3.4 API Reference Guide
ArcGIS.Desktop.Framework Namespace / IPlugInWrapper Interface
Members Example

In This Topic
    IPlugInWrapper Interface
    In This Topic
    The public interface for DAML defined controls.
    Syntax
    public interface IPlugInWrapper 
    Public Interface IPlugInWrapper 
    Remarks
    Controls defined in DAML and added to the ribbon control are not directly accessible by other clients. Instead, 3rd parties can use FrameworkApplication.GetCommandWrapper to access a limited set of functionality such as updating a command's caption at run-time.
    Example
    Programmatically start Edit Annotation
    var plugin = FrameworkApplication.GetPlugInWrapper("esri_editing_EditVerticesText");
    if (plugin.Enabled)
      ((ICommand)plugin).Execute(null);
    Execute a command
    IPlugInWrapper wrapper = FrameworkApplication.GetPlugInWrapper("esri_editing_ShowAttributes");
    var command = wrapper as ICommand; // tool and command(Button) supports this
    
    if ((command != null) && command.CanExecute(null))
      command.Execute(null);
    
    Set the current tool
    // use SetCurrentToolAsync
    FrameworkApplication.SetCurrentToolAsync("esri_mapping_selectByRectangleTool");
    
    // or use ICommand.Execute
    ICommand cmd = FrameworkApplication.GetPlugInWrapper("esri_mapping_selectByRectangleTool") as ICommand;
    if ((cmd != null) && cmd.CanExecute(null))
      cmd.Execute(null);
    How to get the job Id associated with a running OpenProProjectItems step
    // Get the job Id associated with a running OpenProItems step for a Pro Add-In module
    
    // In the Add-In Module class, override the ExecuteCommandArgs(string id) method and return a Func<Object[], Task> object like the sample below
    // Refer to the Workflow Manager ProConcepts Sample Code link for an example
    
    //protected override Func<Object[], Task> ExecuteCommandArgs(string id)
    //{
    //    return func1;
    //}
    
    Func<Object[], Task> func1 = (object[] args) => QueuedTask.Run(() =>
    {
        try
        {
            // Get the jobId property from the OpenProProjectItemsStep arguments and store it.
            OpenProProjectItemsStepCommandArgs stepArgs = (OpenProProjectItemsStepCommandArgs)args[0];
            var jobId = stepArgs.JobId;
            ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show($"Got job id from ProMappingStep args: {jobId}", "Project Info");
    
            // Run the command specified by the id passed into ExecuteCommandArgs
            IPlugInWrapper wrapper = FrameworkApplication.GetPlugInWrapper(id);
            var command = wrapper as ICommand;
            if (command != null && command.CanExecute(null))
                command.Execute(null);
        }
        catch (System.Exception e)
        {
            ArcGIS.Desktop.Framework.Dialogs.MessageBox.Show($"ERROR: {e}", "Error running command");
        }
    });
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also