[]
当服务端命令属性特别多时,默认会在属性面板上显示服务端命令的所有属性。但是如果有一些属性不太常用,会大幅提高用户的学习成本。
通过注解 @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";
}
}
设计器效果:
如果用户修改过高级属性中的值,选择服务端命令后,高级设置会自动展开,如果用户没有设置过任何高级属性中的值。选中服务端命令时,高级属性会默认折叠。
设计时代码:
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;
}
设计器效果:
设计时代码:
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";
}
}
设计器效果: