我在stackoverflow中看到过很多类似于我的问题,但是没有看到被描述为我的问题。所以,这是一个问题:
我正在使用GXT构建相当庞大的Web应用程序。我需要用可编辑的字段制作几百个窗口。我想要的是生成在运行时根据DataModel生成Editor UI的生成器。但我无法看到如何做到这一点,因为编辑器字段名称必须匹配DataModel字段名称(也可以使用@Path注释)。无论哪种方式都知道这一点,就不可能在运行时基于DataModel字段列表生成字段。 Editor类必须在编译时构建。有没有办法在运行时生成编辑器字段?
答案 0 :(得分:0)
这至少需要识别模型,但是这样的东西会为你建立一个模型的基本UI。
public void BuildUI(TargetFieldMapping model) {
//Generate a factory for this model to cover to BeanModel
BeanModelFactory curFactory = BeanModelLookup.get().getFactory(model.getClass());
//Create a bean from this model
BeanModel bean = curFactory.createModel(model);
//Loop through the properties
for(String s : bean.getPropertyNames()) {
//Get value
Object obj = bean.get(s);
//for each data type generate a different field type
if(obj instanceof Integer) {
NumberField field = new NumberField();
field.setName(s);
field.setFieldLabel(s);
add(field);
}
//Etc etc...
}
}
希望这能让你走上正轨