如何在自定义操作中正确使用RegistryRoot等类?

时间:2014-04-28 11:50:32

标签: install4j

我必须实现一个自定义操作来在Windows注册表中搜索已安装的dotnet框架版本。因此我想扩展ReadRegistryValueAction以整合我的个人搜索算法。但是在IDE中找不到自定义操作。因此,我从AbstractInstallAction扩展了操作并包含了RegistryRoot类,以便在IDE中配置动作,与提供的install4j框架的注册表操作相同。

public class CheckDotNetInstallationAction extends AbstractInstallAction {

    private RegistryRoot registryRoot;  

    public RegistryRoot getRegistryRoot() {
        return registryRoot;
    }

    public void setRegistryRoot(RegistryRoot registryRoot) {
        this.registryRoot = registryRoot;
    }

    @Override
    public boolean install(InstallerContext paramInstallerContext)
            throws UserCanceledException {
        // do custom search
        return false;
    }
}

但是要获得下拉列表,只有一个空白字段。我还希望下拉列表的方式与目前的注册表操作相同。现在有两个问题:

  1. 是否可以扩展现有的操作/屏幕/表单以及在IDE中使用和配置它,或者是否有必要从AbstractInstallAction扩展?
  2. 如何为我的自定义组件使用RegistryRoot等类,就像在install4j框架提供的操作中使用它们一样?特别是在IDE中配置这些组件的方法。

1 个答案:

答案 0 :(得分:0)

您必须添加添加BeanInfo类并设置枚举映射器。查看源文件

样本/ customCode / SampleActionBeanInfo.java

在install4j install4j安装中

并查找对setEnumerationMappers的调用。