[]
        
(Showing Draft Content)

属性值联动

在设计器中,如果一个属性的值希望在另一个属性值变化时自动随之变化,可以通过在对应的服务端命令中重写 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);
    }
}

设计器中的效果:

6ca6d8cc-9041-42a2-9e64-5be33500f4a8