当前位置: 首页 > ai >正文

OneCode 3.0 @TreeAnnotation及@ChildTreeAnnotation子树注解速查手册

TreeAnnotation 速查手册

注解概述

本手册涵盖了 OneCode 框架中两种主要的树形组件注解:@TreeAnnotation@ChildTreeAnnotation

  • @TreeAnnotation:用于配置主树形组件的核心注解,关联 CustomTreeViewBean 类,可应用于类或构造方法。
  • @ChildTreeAnnotation:用于配置子树形组件的注解,关联 ChildTreeViewBean 类,可应用于类、构造方法或方法。通常,子树配置在构造函数上,一个树可以有多个构造函数,每个构造函数上可以配置一个子树。

这两种注解密切相关,@ChildTreeAnnotation@TreeAnnotation 的扩展,用于处理更复杂的树形结构,特别是当树形组件中包含子树形组件时。

完整定义

@TreeAnnotation

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.TYPE})
@BeanClass(clazz = CustomTreeViewBean.class)
public @interface TreeAnnotation {@NotNullboolean formField() default true;@NotNullboolean iniFold() default false;boolean animCollapse() default false;boolean dynDestory() default false;@NotNullboolean lazyLoad() default false;@NotNullboolean heplBar() default false;@NotNullboolean autoReload() default true;boolean togglePlaceholder() default true;boolean noCtrlKey() default true;@NotNullint size() default 280;boolean group() default false;@NotNullboolean singleOpen() default false;String valueSeparator() default ";";@NotNullClass bindService() default Void.class;String caption() default "";String optBtn() default "xui-uicmd-opt";Class[] customService() default {};Class<? extends Enum> enumClass() default TreeEnums.class;TreeMenu[] contextMenu() default {};TreeMenu[] rowMenu() default {};TreeMenu[] customMenu() default {};TreeMenu[] bottombarMenu() default {};boolean autoIconColor() default true;boolean autoItemColor() default false;boolean autoFontColor() default false;String[] iconColors() default {};String[] itemColors() default {};String[] fontColors() default {};CustomTreeEvent[] event() default {};ComponentType[] bindTypes() default {ComponentType.TreeBar, ComponentType.TreeView, ComponentType.MTreeView};@NotNullSelModeType selMode() default SelModeType.single;
}

@ChildTreeAnnotation

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.CONSTRUCTOR, ElementType.TYPE, ElementType.METHOD})
@BeanClass(clazz = ChildTreeViewBean.class)
public @interface ChildTreeAnnotation {@NotNullboolean formField() default true;@NotNullboolean iniFold() default false;boolean animCollapse() default false;boolean dynDestory() default false;@NotNullboolean lazyLoad() default false;int index() default 1;boolean dynLoad() default true;boolean deepSearch() default false;boolean autoHidden() default true;boolean canEditor() default true;String imageClass() default "spafont spa-icon-c-treeview";String groupName() default "";String image() default "";boolean popBtn() default false;BorderType borderType() default BorderType.none;boolean activeLast() default true;ComboInputType type() default ComboInputType.none;String bindClassName() default "";boolean closeBtn() default false;boolean group() default false;@NotNullboolean singleOpen() default false;String valueSeparator() default ";";Class[] bindClass() default {};Class<? extends Enum> customItems() default TreeItem.class;String caption() default "";TreeMenu[] contextMenu() default {};TreeMenu[] bottombarMenu() default {};boolean autoIconColor() default true;boolean autoItemColor() default false;boolean autoFontColor() default false;IconColorEnum iconColor() default IconColorEnum.NONE;ItemColorEnum itemColor() default ItemColorEnum.NONE;FontColorEnum fontColor() default FontColorEnum.NONE;CustomTreeEvent[] event() default {};ComponentType[] bindTypes() default {ComponentType.TreeBar, ComponentType.TreeView};@NotNullSelModeType selMode() default SelModeType.single;
}

核心属性说明

1. 基本配置

  • formField:是否作为表单字段,默认为 true
  • iniFold:是否默认折叠,默认为 false
  • animCollapse:是否使用动画折叠,默认为 false
  • dynDestory:是否动态销毁,默认为 false
  • caption:标题文本,默认为空字符串
  • size:树组件尺寸,默认为 280(仅 @TreeAnnotation 支持)
  • group:是否分组,默认为 false
  • index:索引,默认为 1(仅 @ChildTreeAnnotation 支持)
  • dynLoad:是否动态加载,默认为 true(仅 @ChildTreeAnnotation 支持)
  • deepSearch:是否深度搜索,默认为 false(仅 @ChildTreeAnnotation 支持)
  • autoHidden:是否自动隐藏,默认为 true(仅 @ChildTreeAnnotation 支持)
  • canEditor:是否可编辑,默认为 true(仅 @ChildTreeAnnotation 支持)
  • imageClass:图标样式类,默认为 “spafont spa-icon-c-treeview”(仅 @ChildTreeAnnotation 支持)
  • groupName:分组名称,默认为空字符串(仅 @ChildTreeAnnotation 支持)
  • image:图片路径,默认为空字符串(仅 @ChildTreeAnnotation 支持)
  • popBtn:是否显示弹出按钮,默认为 false(仅 @ChildTreeAnnotation 支持)
  • borderType:边框类型,默认为 BorderType.none(仅 @ChildTreeAnnotation 支持)
  • activeLast:是否激活最后一个节点,默认为 true(仅 @ChildTreeAnnotation 支持)
  • type:输入类型,默认为 ComboInputType.none(仅 @ChildTreeAnnotation 支持)
  • bindClassName:绑定类名称,默认为空字符串(仅 @ChildTreeAnnotation 支持)
  • closeBtn:是否显示关闭按钮,默认为 false(仅 @ChildTreeAnnotation 支持)

2. 数据加载

  • lazyLoad:是否启用懒加载,默认为 false
  • autoReload:是否自动重新加载,默认为 true(仅 @TreeAnnotation 支持)
  • bindService:绑定的服务类,默认为 Void.class(仅 @TreeAnnotation 支持)
  • customService:自定义服务类数组,默认为空数组(仅 @TreeAnnotation 支持)
  • bindClass:绑定的类数组,默认为空数组(仅 @ChildTreeAnnotation 支持)
  • customItems:自定义项,默认为 TreeItem.class(仅 @ChildTreeAnnotation 支持)

3. 选择模式

  • selMode:选择模式,默认为 SelModeType.single
  • singleOpen:是否只打开一个节点,默认为 false
  • noCtrlKey:是否无需Ctrl键,默认为 true(仅 @TreeAnnotation 支持)

4. 菜单配置

  • contextMenu:上下文菜单,默认为空数组
  • rowMenu:行菜单,默认为空数组(仅 @TreeAnnotation 支持)
  • customMenu:自定义菜单,默认为空数组(仅 @TreeAnnotation 支持)
  • bottombarMenu:底部工具栏菜单,默认为空数组
  • optBtn:操作按钮,默认为 “xui-uicmd-opt”(仅 @TreeAnnotation 支持)

5. 颜色配置

  • autoIconColor:是否自动设置图标颜色,默认为 true
  • autoItemColor:是否自动设置项目颜色,默认为 false
  • autoFontColor:是否自动设置字体颜色,默认为 false
  • iconColors:图标颜色数组,默认为空数组(仅 @TreeAnnotation 支持)
  • itemColors:项目颜色数组,默认为空数组(仅 @TreeAnnotation 支持)
  • fontColors:字体颜色数组,默认为空数组(仅 @TreeAnnotation 支持)
  • iconColor:图标颜色,默认为 IconColorEnum.NONE(仅 @ChildTreeAnnotation 支持)
  • itemColor:项目颜色,默认为 ItemColorEnum.NONE(仅 @ChildTreeAnnotation 支持)
  • fontColor:字体颜色,默认为 FontColorEnum.NONE(仅 @ChildTreeAnnotation 支持)

6. 其他属性

  • togglePlaceholder:是否显示切换占位符,默认为 true
  • heplBar:是否显示帮助栏,默认为 false(仅 @TreeAnnotation 支持)
  • valueSeparator:值分隔符,默认为 “;”
  • enumClass:枚举类,默认为 TreeEnums.class(仅 @TreeAnnotation 支持)
  • event:事件数组,默认为空数组
  • bindTypes:绑定的组件类型,默认为 {ComponentType.TreeBar, ComponentType.TreeView, ComponentType.MTreeView}(@TreeAnnotation)或 {ComponentType.TreeBar, ComponentType.TreeView}(@ChildTreeAnnotation

枚举类型解释

1. SelModeType

选择模式枚举,实现了 Enumstype 接口,可能的值包括:

  • single:单选
  • multi:多选
  • multibycheckbox:多选CheckBox
  • singlecheckbox:单选CheckBox
  • none:不可选

2. TreeMenu

树形菜单枚举,实现了 CustomMenuIconEnumstype 接口,定义了树形组件支持的操作菜单,包含系统预设的菜单选项及其对应的图标、颜色和动作配置。可能的值包括:

  • SAVEROW:保存
  • SORTDOWN:向下
  • SORTUP:向上
  • RESET:重置
  • SAVE:确定
  • DELETE:删除
  • ADD:添加
  • LOADCHILD:刷新
  • CLOSE:关闭
  • RELOAD:刷新

3. CustomTreeEvent

树形事件枚举,实现了 CustomEventEnumstype 接口,定义了树形组件支持的事件类型,关联菜单动作和事件处理逻辑。可能的值包括:

  • CLICKDELETE:点击删除按钮触发
  • CLICKSAVEROW:点击保存行按钮触发
  • CLICKRESET:点击重置按钮触发
  • CLICKSORTDOWN:点击向下按钮触发
  • CLICKSORTUP:点击向上按钮触发
  • CLICKLOADCHILD:点击刷新子节点按钮触发
  • TREESAVE:树销毁时触发保存
  • RELOADCHILD:重新加载子节点
  • LOADMENU:右键菜单
  • TREERELOAD:装载数据
  • TREENODEEDITOR:节点编辑事件

4. ComponentType

组件类型枚举,实现了 IconEnumstype 接口,与树形相关的值包括:

  • TreeBar:树形导航
  • TreeView:树形视图
  • MTreeView:多树形视图

5. 其他枚举(仅 @ChildTreeAnnotation 支持)

  • IconColorEnum:图标颜色枚举,实现了 Enumstype 接口,包含9种颜色:NONE(默认)、YELLOW(黄色)、GREEN(绿色)、DARKBLUE(深蓝)、LIGHTPURPLE(紫色)、CYAN(青色)、BABYBLUE(浅蓝)、PINK(桃红)、GREY(亮灰)
  • ItemColorEnum:项目颜色枚举,实现了 CaptionEnumstype 接口,包含8种颜色:NONE(默认)、YELLOW(黄色)、GREEN(绿色)、DARKBLUE(深蓝)、LIGHTPURPLE(紫色)、CYAN(青色)、BABYBLUE(浅蓝)、PINK(桃红)
  • FontColorEnum:字体颜色枚举,实现了 Enumstype 接口,包含8种颜色:NONE(默认)、YELLOW(黄色)、GREEN(绿色)、DARKBLUE(深蓝)、LIGHTPURPLE(紫色)、CYAN(青色)、BABYBLUE(浅蓝)、PINK(桃红)
  • BorderType:边框类型枚举,已在其他文档中定义
  • ComboInputType:组合输入类型枚举,实现了 IconEnumstype 接口,包含29种输入类型,其中与树形相关的有:none(默认)等
  • TreeEnums:树形节点类型枚举,实现了 TreeItemIconEnumstype 接口,包含2种节点类型:node1、node2
  • TreeItem:是一个接口,不是枚举,定义了树形节点的基本方法

使用示例

示例 1:基本树形配置 (@TreeAnnotation)

@TreeAnnotation(formField = true,iniFold = true,lazyLoad = true,size = 300
)
public class BasicTreeConfig {// 类内容...
}

示例 2:高级树形配置 (@TreeAnnotation)

@TreeAnnotation(formField = true,iniFold = true,animCollapse = true,lazyLoad = true,autoReload = true,size = 350,group = false,singleOpen = false,bindService = TreeDataService.class,caption = "部门树形结构",customService = {CustomTreeService.class},enumClass = TreeEnums.class,contextMenu = {TreeMenu.ADD, TreeMenu.DELETE},rowMenu = {TreeMenu.EDIT, TreeMenu.VIEW},autoIconColor = true,event = {@CustomTreeEvent(eventEnum = TreeEventEnum.ON_CLICK, actions = {"handleClick"})},bindTypes = {ComponentType.TreeBar, ComponentType.TreeView},selMode = SelModeType.multi
)
public class AdvancedTreeConfig {// 类内容...
}

示例 3:基本子树形配置 (@ChildTreeAnnotation)

@ChildTreeAnnotation(formField = true,iniFold = true,lazyLoad = true,index = 1,caption = "子部门树形结构"
)
public class BasicChildTreeConfig {// 类内容...
}

示例 4:高级子树形配置 (@ChildTreeAnnotation)

@ChildTreeAnnotation(formField = true,iniFold = true,animCollapse = true,lazyLoad = true,dynLoad = true,deepSearch = false,autoHidden = true,canEditor = true,index = 1,group = false,singleOpen = false,bindClass = {Department.class},caption = "高级子部门树形结构",customItems = CustomTreeItem.class,contextMenu = {TreeMenu.ADD, TreeMenu.DELETE},autoIconColor = true,iconColor = IconColorEnum.BLUE,event = {@CustomTreeEvent(eventEnum = TreeEventEnum.ON_CLICK, actions = {"handleChildClick"})},bindTypes = {ComponentType.TreeBar, ComponentType.TreeView},selMode = SelModeType.multi
)
public class AdvancedChildTreeConfig {// 类内容...
}

示例 5:多构造函数配置子树 (@ChildTreeAnnotation)

public class MultiConstructorTree {// 构造函数1:配置部门子树@ChildTreeAnnotation(formField = true,iniFold = true,lazyLoad = true,index = 1,bindClass = {Department.class},caption = "部门结构")public MultiConstructorTree() {// 构造函数实现}// 构造函数2:配置人员子树@ChildTreeAnnotation(formField = true,iniFold = true,lazyLoad = true,index = 2,bindClass = {Person.class},caption = "人员结构")public MultiConstructorTree(String param) {// 构造函数实现}
}

最佳实践和注意事项

通用最佳实践

  1. 性能优化

    • 对于大数据量的树形结构,建议启用懒加载 (lazyLoad = true)
    • 对于不需要动画的场景,关闭动画折叠 (animCollapse = false)
    • 对于频繁变化的数据,启用自动重新加载 (autoReload = true,仅 @TreeAnnotation 支持)
  2. 用户体验

    • 对于层级较深的树形结构,考虑启用 singleOpen = true 以避免节点过多
    • 合理设置树组件的大小 (size,仅 @TreeAnnotation 支持) 以适应不同的布局需求
    • 对于重要的操作,添加相应的上下文菜单 (contextMenu) 以提高用户效率
  3. 配置建议

    • 明确指定 enumClass (仅 @TreeAnnotation 支持) 或 customItems (仅 @ChildTreeAnnotation 支持) 以确保树形数据的一致性
    • 合理设置 selMode 以适应不同的选择需求
    • 对于不需要作为表单字段的树形组件,设置 formField = false

特定注意事项

  1. @TreeAnnotation 注意事项

    • 确保 bindTypes 与实际使用的组件类型匹配
    • 对于自定义服务类,确保它们实现了必要的接口
    • autoReload = true 时,确保数据加载性能良好
  2. @ChildTreeAnnotation 注意事项

    • 合理设置 index 以确定子树形组件的显示顺序
    • 对于需要深度搜索的场景,启用 deepSearch = true
    • autoHidden = true 时,确保隐藏逻辑不会影响用户体验
    • 合理设置 borderType 以适应不同的UI风格需求

适用场景

1. 树形导航菜单

适用于应用程序的主导航,支持多级菜单和折叠功能。

2. 组织架构展示

用于展示公司或机构的层级结构,支持展开/折叠和节点信息查看。

3. 文件夹结构浏览

模拟文件系统的文件夹结构,支持导航和文件操作。

4. 分类数据展示

用于展示具有层级关系的分类数据,如产品分类、知识分类等。

5. 层级关系可视化

将复杂的层级关系以树形结构可视化展示,便于用户理解和导航。

6. 子树形组件应用场景

  • 嵌套树形结构:当需要在树形节点中展示另一个树形结构时
  • 详细信息展示:当点击主树节点需要展示相关子分类或详细信息时
  • 多维度数据浏览:当需要从不同维度展示相关数据时
http://www.xdnf.cn/news/15945.html

相关文章:

  • 生存分析机器学习问题
  • 数据交换---JSON格式
  • IDEA-通过IDEA导入第三方的依赖包
  • Android常用的adb和logcat命令
  • Qt/C++源码/监控设备模拟器/支持onvif和gb28181/多路批量模拟/虚拟监控摄像头
  • RedisJSON 指令精讲JSON.TOGGLE 键翻转布尔值
  • Python趣味算法:实现任意进制转换算法原理+源码
  • 【无标题】buuctf-re3
  • 企业级IIS配置手册:安全加固/负载均衡/性能优化最佳实践
  • PyQt5—QLabel 学习笔记
  • 常用 Flutter 命令大全:从开发到发布全流程总结
  • ELF 文件操作手册
  • Java 动态导出 Word 登记表:多人员、分页、动态表格的最佳实践
  • C++11--锁分析
  • ospf技术
  • 【SpringAI实战】实现仿DeepSeek页面对话机器人
  • Jiasou TideFlow AIGC SEO Agent:全自动外链构建技术重构智能营销新标准
  • 技术与情感交织的一生 (十)
  • Spring处理器和Bean的生命周期
  • LinkedList与链表(单向)(Java实现)
  • 【2025/07/21】GitHub 今日热门项目
  • WinForm-免费,可商用的WinForm UI框架推荐
  • Linux 命令大全
  • Three.js实现银河流光粒子星空特效原理与实践
  • 【Android】交叉编译faiss库 | 问题解决
  • 【HarmonyOS】ArkTS语法详细解析
  • C++ <继承> 详解
  • Java IO流体系详解:字节流、字符流与NIO/BIO对比及文件拷贝实践
  • kafka 生产和消费 性能测试工具 kafka-producer-perf-test.sh kafka-consumer-perf-test.sh
  • 安装docker可视化工具 Portainer中文版(ubuntu上演示,所有docker通用) 支持控制各种容器,容器操作简单化 降低容器门槛