GWT SimpleBeanEditorDriver - 生成编辑器类

时间:2012-01-18 10:31:34

标签: gwt gxt

我在stackoverflow中看到过很多类似于我的问题,但是没有看到被描述为我的问题。所以,这是一个问题:

我正在使用GXT构建相当庞大的Web应用程序。我需要用可编辑的字段制作几百个窗口。我想要的是生成在运行时根据DataModel生成Editor UI的生成器。但我无法看到如何做到这一点,因为编辑器字段名称必须匹配DataModel字段名称(也可以使用@Path注释)。无论哪种方式都知道这一点,就不可能在运行时基于DataModel字段列表生成字段。 Editor类必须在编译时构建。有没有办法在运行时生成编辑器字段?

1 个答案:

答案 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...
      }
}

希望这能让你走上正轨