编写 Repository 插件快捷菜单程序

时间:2021-07-12点击次数:126

编写 Repository 插件快捷菜单程序

编写 Repository 插件快捷菜单程序需要执行以下两步操作

编写特定的 Repository Provider“VciRepositoryAddInProvider”程序

编写特定的 Repository 插件程序

要为工作区使用插件,必须在相应工作区中激活此插件,此外,还需要在 TIA Portal 中将其激活。

要求

需要具有 C# 项目来创建类库。

编写特定的“VciRepositoryAddInProvider“Repository Provider”程序

要编写特定的 Repository Provider“VciRepositoryAddInProvider”程序,请按以下步骤操作:

    在项目中创建一个新类,并*一个具体名称,例如“VciRepositoryProvider.cs”。

    在该类中添加以下两个 using 指令:

    - using Siemens.Engineering.AddIn.VersionControl;

    - using <项目名称>;

    将该类声明为“public”,并将其用作“VciRepositoryAddInProvider”的子类:

    public class WorkspaceSpecificRepositoryAddInProvider : VciRepositoryAddInProvider

    在新类中输入“override”作为文本,然后在所显示的下拉菜单中选择条目“GetVciRepositoryAddIns”。

    该方法是一种补充,目的是包括所有相关组件。

    移除方法的内容,然后输入以下代码:

    yield return new <Your_WorkspaceSpecificRepositoryAddIn_ClassName>("<Name of the Repository Add-In>");

编写特定的 Repository 插件程序

要编写新的特定 Repository 插件程序,请按以下步骤操作:

    在项目中创建一个新类,并*一个具体名称,例如“VciRepositoryAddIn.cs”。

    在该类中添加以下 using 指令:

    using Siemens.Engineering.AddIn.VersionControl;

    将该类声明为“public”,并将其用作“VciRepositoryAddIn”的子类:

    public class RepositorySpecificAddIn : VciRepositoryAddIn

    在新类中输入“override”作为文本,然后在所显示的下拉菜单中选择条目“GetVciWorkspaceViewAddInProvider”。

    该方法是一种补充,目的是包括所有相关组件。

    在项目中创建一个新类,并*一个具体名称,例如“VciWorkspaceProvider.cs”。

    在该类中添加以下两个 using 指令:

    - using Siemens.nu;

    - using Siemens.Engineering.AddIn.VersionControl;

    将该类声明为“public”,并将其用作“VciWorkspaceViewAddInProvider”的子类:

    public class VciWorkspaceProvider : VciWorkspaceViewAddInProvider

    在新类中输入“override”作为文本,然后在所显示的下拉菜单中选择条目“GetContextMenuAddIns”。

    该方法是一种补充,目的是包括所有相关组件。

    删除行“return base.GetContextMenuAddIns();”,然后输入以下代码:

    yield return new <Your_Shortcut_Menu_Class_Name>("<Text of shortcut menu>");

    如果在“AddInContextMenu”类中编写快捷菜单程序,且快捷菜单中的条目名为“My AddIn”,则该行将如下所示:

    yield return new AddInContextMenu("My AddIn");

仅当已在工作区中组态插件时,使用 Repository 插件创建的快捷菜单才可用。否则,此类快捷菜单与常规快捷菜单没有区别。

完整的工作区特定快捷菜单编程示例

View Provider "VciRepositoryAddInProvider":

 
using System.Collections.Generic;
using Siemens.Engineering.AddIn.VersionControl;
using VCI.RepoSpecificContextMenu.AddIn;
namespace Vci.Git.AddIn
{
public class WorkspaceSpecificRepositoryAddInProvider : VciRepositoryAddInProvider
{
public override IEnumerable<VciRepositoryAddIn> GetVciRepositoryAddIns()
{
yield return new RepoSpecificAddIn();
}
}
}

特定的 Repository 插件包含两个不同的类。

 

using Siemens.Engineering.AddIn.VersionControl;
namespace VCI.RepoSpecificContextMenu.AddIn
{
public class RepoSpecificAddIn : VciRepositoryAddIn
{
private const string s_DisplayName = "Repo Specific Context Menu AddIn";
public RepoSpecificAddIn() : base(s_DisplayName)
{
}
public override VciWorkspaceViewAddInProvider GetVciWorkspaceViewAddInProvider()
{
return new RepoSpecificWorkspaceViewAddInProvider();
}
}
}


 
using System.Windows.Forms;
using Siemens.nu;
using Siemens.Engineering.AddIn.VersionControl;
namespace VCI.RepoSpecificContextMenu.AddIn
{
public class VCIContextMenuAddIn : ContextMenuAddIn
{
private const string s_DisplayName = "Repo Specific Context Menu AddIn";
public VCIContextMenuAddIn() : base(s_DisplayName)
{
}
protected override void BuildContextMenuItems(ContextMenuAddInRoot addInRootSubmenu)
{
addInRootSubmenu.Items.AddActionItem<WorkspaceFile>("Repo Specific Entry", LogClickDelegate);
}
private void LogClickDelegate(MenuSelectionProvider<WorkspaceFile> menuSelectionProvider)
{
MessageBox.Show("Repo Specific Context Menu Entry", "Repo Specific", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}

http://shtxjd.cn.b2b168.com

下一篇:删除 SQL 实例

产品推荐