类别

版本

添加操作符参数

端口处理流经操作符的数据。但是,也可以定义影响操作符行为的参数。

参数在参数面板,用户可以在其中更改参数值。有几种类型的参数可用于在组合框中定义实数或整数、字符串和字符串集合(可编辑或不可编辑)。还有用于选择一列或几列的特殊类型。对于最复杂的参数类型,您甚至可以将GUI组件定义为配置向导。

回到操作符类添加参数。实际上,你只需要重写一个方法:

@Override public List getParameterTypes(){返回super.getParameterTypes();}

注意,您必须返回一个列表ParameterType调用超方法来检索在扩展操作符或提供基本功能的抽象类中定义的参数是一种很好的做法。否则,超类提供的功能可能会失败,因为您没有定义所需的参数。

现在,添加一个参数,定义在执行操作符时应该将哪些文本记录到控制台中。它是这样的:

@Override public List getParameterTypes(){List types = super.getParameterTypes();类型。add(new ParameterTypeString(PARAMETER_TEXT, "此参数定义在执行此操作符时将哪个文本记录到控制台","这是默认文本",false));返回类型;}

的列表ParameterTypeS的父类,然后添加自己的参数。在本例中,参数类型为string,并使用公共常量PARAMETER_TEXT命名。后面的字符串应该描述参数类型的功能;在参数的信息工具提示中显示。下一个字符串是参数的默认值,后面是最后一个参数,它决定参数是否是专家。在本例中,该参数不是专家参数。

在查看结果之前,必须将常量添加到类中。只需定义一个公共常量:

public static final String PARAMETER_TEXT = "日志文本";

参数面板现在看起来像这样:

你可以上这门课ParameterTypeInt对于整数值或ParameterTypeDouble对于双精度值,但也有ParameterTypeS用于文件、日期、类别选择等等。看看哪个ParameterType构造函数可用!

专家参数

参数可以是正常的,也可以是专家的。直到用户切换到专家模式才显示专家参数。因此,如果参数的效果只有那些对底层算法有更深入了解的人才能理解,那么将其定义为专家是一个很好的做法。所有的专家参数必须有默认值,这样用户就不需要定义一个他不能理解的参数。要启用此功能,只需在构造函数调用中定义ParameterTypeS参数是否为专家参数。

使用参数

定义参数后,使用它来个性化操作符写入的消息日志面板。首先,检索用户输入的值并将其存储在一个局部变量中:

字符串文本= getParameterAsString(PARAMETER_TEXT);

然后,使用局部变量更改操作符的输出。有几个getParameterAsXXX ()方法,您可以调用这些方法以获取正确类型的值。

参数的依赖关系

定义参数依赖关系为用户提供了进一步的指导。例如,某些参数只有在设置了其他参数后才能使用。使用这些依赖项向用户指示哪个参数将有效地防止将时间花在不相关的参数上。例如,如果您熟悉SVM等基于核的方法提供的大量参数,那么您可能会理解为什么这很重要。

您可以添加一个布尔参数来确定操作符是否应该记录自定义文本。在本例中,如果选中,用户将看到文本的参数字段。引入另一个带常量的参数:

PARAMETER_USE_CUSTOM_TEXT = "使用自定义文本"

现在,像下面的代码那样构建一个参数条件:

@Override public List getParameterTypes(){List types = super.getParameterTypes();类型。add(new ParameterTypeBoolean(PARAMETER_USE_CUSTOM_TEXT, "如果选中,自定义文本将打印到日志视图",false, false));ParameterType type = new ParameterTypeString(PARAMETER_TEXT, "此参数定义在执行此操作符时将哪个文本记录到控制台","这是默认文本",false);类型。registerDependencyCondition(new BooleanParameterCondition(this, PARAMETER_USE_CUSTOM_TEXT, true, true));types.add(类型);返回类型;}

为了注册条件,您必须记住局部变量中的类型,然后将其单独添加到列表中。这里你添加了BooleanParameterCondition,它需要引用aParameterHandler.对于运算符,这是运算符本身。第二个参数是references形参的名称。这两个布尔值表示1)如果满足条件,参数是否变为强制性,以及2)为了满足条件所引用的参数必须具有的值。

结果参数面板现在看起来像这样,取决于参数设置:

下一步是记录操作员的行为提供帮助。