【问题标题】:Eclipse scout neon import form data in abstract box on field changeEclipse Scout neon 在字段更改的抽象框中导入表单数据
【发布时间】:2016-07-09 02:45:05
【问题描述】:

我有抽象组框。在这个组框中我有智能字段,并且在更改时我想填写表单中的其他一些字段。

问题是:

  • 无法在抽象组框上创建新框表单数据。
  • 如果我尝试导入表单数据,因为导入表单数据调用 setValue 循环被检测到。

我的尝试是将抽象组框更改为“普通组框”并设置如下值:

@Override
protected void execChangedValue() {
    AbstractCarSelectionBoxData formData = new AbstractCarSelectionBoxData();
    FormDataUtility.exportFormData(this.getParentField(), formData);
    formData = BEANS.get(IOfferFormService.class).loadCarInformations(formData);
    FormDataUtility.importFormFieldData(this.getParentField(), formData, false, null, null);
}

这种方法确实有效,并且填充了数据,但我得到了

2016-03-22 10:18:57,448 WARN  scout-model-thread-20 o.e.s.rt.client.ui.form.fields.AbstractValueField - Loop detection in com.sixt.leasing.scout.client.template.AbstractCarBox$CarTypeSixtField with value 279096 [m4042 @   ]
java.lang.Exception: null
         at org.eclipse.scout.rt.client.ui.form.fields.AbstractValueField.setValue(AbstractValueField.java:324) [org.eclipse.scout.rt.client-5.2.0.M5.jar:5.2.0.M5]
         at org.eclipse.scout.rt.client.ui.form.fields.AbstractValueField.importFormFieldData(AbstractValueField.java:219) [org.eclipse.scout.rt.client-5.2.0.M5.jar:5.2.0.M5]

处理这种情况的正确方法是什么?

我知道我总是可以只获取 DTO 对象并在客户端设置值,但这不是我想要的......

【问题讨论】:

    标签: form-data eclipse-scout


    【解决方案1】:

    问题 1 的解决方案

    创建一个抽象方法AbstractCarSelectionBoxData createNewBoxData();AbstractCarSelectionBox 中并在返回新表单数据的相应子类中实现它,例如new MyFormDataContainingCarSelectionBox().getCarSelectionBox();.

    问题 2 的解决方案

    在导入表单数据之前,在触发execChangedValue的字段上调用setValueSet(false),例如formData.getMySmartfield().setValueSet(false)。 这将确保它不会被导入到表单中,因此不会发生循环检测。

    【讨论】:

    • 这是一个巨大的帮助。 setValueSet(false) 方法很好知道。
    【解决方案2】:

    我认为this.getParentField() 上的importFormFieldData 会再次触发智能字段上的execChangedValue

    尝试将更新的字段框在自己的组框中,并仅在该组框中导入数据,或者在要更新的每个字段上手动进行反导入。

    【讨论】:

      猜你喜欢
      • 2016-09-13
      • 2016-10-08
      • 2016-10-09
      • 2016-07-17
      • 2016-06-04
      • 2016-07-29
      • 2023-01-30
      • 2016-09-22
      • 2016-04-24
      相关资源
      最近更新 更多