[]
        
(Showing Draft Content)

折叠高级属性

当服务端命令属性特别多时,默认会在属性面板上显示服务端命令的所有属性。但是如果有一些属性不太常用,会大幅提高用户的学习成本。

通过注解 @AdvancedProperty 可以轻松解决这个问题。

设计时代码:

public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {

    private String text;
    private String text1;

    @AdvancedProperty
    private String advancedText;
    @AdvancedProperty
    private String advancedText1;

    @Override
    public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
        return new ExecuteResult();
    }

    @Override
    public String toString() {
        return "我的服务端命令插件1";
    }
}

设计器效果:

1

如果用户修改过高级属性中的值,选择服务端命令后,高级设置会自动展开,如果用户没有设置过任何高级属性中的值。选中服务端命令时,高级属性会默认折叠。

折叠对象属性

设计时代码:

public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {

    @ObjectProperty(objType = MyObj.class)
    private MyObj myobj;

    @Override
    public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
        return new ExecuteResult();
    }

    @Override
    public String toString() {
        return "我的服务端命令插件1";
    }
}
public class MyObj extends ObjectPropertyBase implements INamedObject {

    private String name;
    private String description;

    @AdvancedProperty
    @FormulaProperty
    private Object formulaProperty;

    @AdvancedProperty
    @ComboProperty(valueList = "选项1|选项2|选项3")
    public String type;
}

设计器效果:

2

 

折叠对象列表属性

设计时代码:

public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {

    @ObjectListProperty(itemType = MyObj.class)
    private List<MyObj> myObjList;

    @Override
    public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
        return new ExecuteResult();
    }

    @Override
    public String toString() {
        return "我的服务端命令插件1";
    }
}

设计器效果:

3