繁体   English   中英

自定义 UI 布局的技巧

[英]Techniques for customising UI layout

下面描述的问题与库存跟踪 Java 程序有关。 库存项目有多种类别,无法预先确定正在跟踪意向 class 的哪些属性。 以两个类为例:

InventoryClassOne {
  String name;
  Double price
}
InventoryClassTwo {
  StockStatus status;
  Long Quantity
}.

存储数据没问题,我可以定义一个

class InventoryProperty<T> {
  T value;
} 

和一个

class InventoryClass {
  Map<String, InventoryProperty<?>> inventoryPropertyMap;
}

UI 将使用 Wicket 框架开发。 我想为应用程序的管理员提供一种方法来添加新的 InventoryClass 并定义每个 InventoryClass 基础上的数据布局方式(表格、列表等)。 以前有没有人解决过这类问题? 有哪些设计模式可用于实现这一目标。 我什至不知道在谷歌中输入什么词才能获得解决这个问题的想法。

尽管我很喜欢 Wicket,但我真的不认为它是这种元网站的最佳选择。

但如果我绝对必须在 Wicket 中这样做,我会这样做:

  1. 为每个基本 UI 小部件创建一个Fragment
  2. 在管理页面上,您创建从库存 class 的每个字段到预制片段的映射。 (您必须使用反射来查询可用的字段。)
  3. 在构建 UI 页面时,您会创建一个转发器(例如ListView ,但即使是简单的转发器也可以),它会为 Field->Fragment 映射中的每个条目添加带有指向该字段的 model 的片段。

您可能需要对其进行一些调整,尤其是对于表格,但这是基本思想。

但是,我必须重复这一点,您实际上失去了 Wicket 的大部分优势,更糟糕的是,您必须付出额外的努力才能绕过(或对抗)Wicket。 这似乎不值得。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM