[]
        
(Showing Draft Content)

下拉列表属性

如果属性的类型是字符串,默认属性值是可以接受任意字符串的,如果希望提供字符串值候选列表,可以通过标注@ComboProperty 的并设置valueList 的方式实现。多值个值用“|”分隔。

注意,标注@ComboProperty 的属性类型必须是String。

@Data
@Icon("resources/Icon.png")
public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {

    @ComboProperty(valueList = "Student|Teacher|Worker")
    private String value;

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

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

在设计器中效果如下:

image

如果需要更细致的控制,可以通过@ComboProperty 的其他属性来控制。

1.值与显示值不同

  1. 设置@ComboProperty 的 displayList 属性

  2. 代码

    @Data
    @Icon("resources/Icon.png")
    public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {
    
        @ComboProperty(valueList = "Student|Teacher|Worker",displayList = "学生|教师|工人")
        private String value;
    
        @Override
        public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
            return new ExecuteResult();
        }
    
        @Override
        public String toString() {
            return "我的服务端命令插件";
        }
    }
  3. 效果

    image


  4. 其他说明

    此方法可以使用户在选择时选择中文选项,而单元格实际保存值为英文,方便程序处理。

    valueList和displayList通过数量和顺序匹配。

    如果displayList数量超出valueList数量,多出部分会被忽略;

    如果displayList数量少于valueList数量,不足部分会使用valueList对应的值。

2.允许用户使用列表以外的值

  1. 设置@ComboProperty 的 isSelectOnly属性

  2. 代码

    @Data
    @Icon("resources/Icon.png")
    public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {
    
        @ComboProperty(valueList = "Student|Teacher|Worker",isSelectOnly = false)
        private String value;
    
        @Override
        public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
            return new ExecuteResult();
        }
    
        @Override
        public String toString() {
            return "我的服务端命令插件";
        }
    }
  3. 效果

    image


  4. 其他说明

    isSelectOnly 为 false 时,displayList 设置会被忽略。不填时 isSelectOnly 属性的默认值为 true。

3.支持搜索

  1. 设置@ComboProperty 的 searchable属性。

  2. 代码

    @Data
    @Icon("resources/Icon.png")
    public class MyPluginServerCommand extends Command implements ICommandExecutableInServerSide {
    
        @ComboProperty(valueList = "Student|Teacher|Worker",searchable = true,isSelectOnly = false)
        private String value;
    
        @ComboProperty(valueList = "Student|Teacher|Worker",searchable = true)
        private String value2;
    
        @Override
        public ExecuteResult execute(IServerCommandExecuteContext dataContext) {
            return new ExecuteResult();
        }
    
        @Override
        public String toString() {
            return "我的服务端命令插件";
        }
    }
  3. 效果

    image


  4. 策略

    1. 如果isSelectOnly 为true 则搜索框会在下拉框中。

    2. 如果isSelectOnly 为false 则可以直接输入,下拉框会自动按照输入的字符匹配。此模式下同样可以输入下拉框中不存在的字符串。