Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 自定义UI布局的技术_Java_User Interface_Wicket - Fatal编程技术网

Java 自定义UI布局的技术

Java 自定义UI布局的技术,java,user-interface,wicket,Java,User Interface,Wicket,下面描述的问题与库存跟踪Java程序有关。存货项目有多个类别,不可能预先确定要跟踪的意向类别的哪些属性。以两个班级为例: InventoryClassOne { String name; Double price } InventoryClassTwo { StockStatus status; Long Quantity }. 存储数据没有问题,我可以定义一个 class InventoryProperty<T> { T value; } 类Invento

下面描述的问题与库存跟踪Java程序有关。存货项目有多个类别,不可能预先确定要跟踪的意向类别的哪些属性。以两个班级为例:

InventoryClassOne {
  String name;
  Double price
}
InventoryClassTwo {
  StockStatus status;
  Long Quantity
}.
存储数据没有问题,我可以定义一个

class InventoryProperty<T> {
  T value;
} 
类InventoryProperty{
T值;
} 

class InventoryClass{

Map虽然我很喜欢Wicket,但我真的不认为它是这种元网站的最佳选择

但如果我一定要在Wicket做这件事,我会这么做:

  • 为每个基本UI小部件创建一个
    片段
  • 在“管理”页面上,您可以创建一个从库存类的每个字段到预加工片段的映射。(您必须使用反射来查询哪些字段可用。)
  • 当您构建UI页面时,您创建了一个转发器(例如,
    ListView
    ,但即使是一个简单的转发器也可以),该转发器为字段中的每个条目->片段映射添加带有指向字段的模型的片段
  • 您可能需要对其进行一些调整,尤其是对于表,但这是基本的想法


    然而,我必须重复这一点,你实际上正在失去Wicket的大部分优势,更糟糕的是,你将不得不付出额外的努力来解决(或对抗)Wicket。这似乎不值得。尽管我非常喜欢Wicket,但我真的不认为这是这种元网站的最佳选择

    但如果我一定要在Wicket做这件事,我会这么做:

  • 为每个基本UI小部件创建一个
    片段
  • 在“管理”页面上,您可以创建一个从库存类的每个字段到预加工片段的映射。(您必须使用反射来查询哪些字段可用。)
  • 当您构建UI页面时,您创建了一个转发器(例如,
    ListView
    ,但即使是一个简单的转发器也可以),该转发器为字段中的每个条目->片段映射添加带有指向字段的模型的片段
  • 您可能需要对其进行一些调整,尤其是对于表,但这是基本的想法


    然而,我必须重复这一点,你实际上正在失去Wicket的大部分优势,更糟糕的是,你将不得不付出额外的努力来改变(或反对)Wicket。这似乎不值得。谢谢你的回答。我不一定要用Wicket。如果你能选择一个框架,你会选择哪一个?老实说,除了Wicket,我对现代框架知之甚少。但是为什么你不把它作为一个新问题发布呢?肯定有人知道你的选择是什么。谢谢你的回答。我不一定要用Wicket。如果你能选择一个框架,你会选择哪一个?老实说,除了Wicket,我对现代框架知之甚少。但是为什么你不把它作为一个新问题发布呢?肯定有人知道你的选择。
    class InventoryClass {
      Map<String, InventoryProperty<?>> inventoryPropertyMap;
    }