[]
在设计器中,如果一个属性的值希望在另一个属性值变化时自动随之变化,可以通过在对应的服务端命令中重写 refreshPropertyValues 方法。
下面例子中假设命令上有两字段,分别是 myProperty1 和 myProperty2 ,实现的联动效果为 myProperty1 的值为 true 时, 修改 myProperty2 值为真, 否则,修改 myProperty2 值为假。
在 MyPlugin.java 修改代码如下:
@Data
@Icon("resources/Icon.png")
public class MyPlugin extends Command implements ICommandExecutableInServerSide {
private boolean myProperty1;
private String myProperty2;
@Override
public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
return new ExecuteResult();
}
@Override
public String toString() {
return "我的插件";
}
@Override
public void refreshPropertyValues(String propertyName, Object propertyValue) {
if ("myProperty1".equals(propertyName)) {
if (myProperty1) {
myProperty2 = "真";
} else {
myProperty2 = "假";
}
}
super.refreshPropertyValues(propertyName, propertyValue);
}
}
设计器中的效果: