Drop down menu 搜索Eclipse链接字段

Drop down menu 搜索Eclipse链接字段,drop-down-menu,hierarchy,eclipse-scout,Drop Down Menu,Hierarchy,Eclipse Scout,我在童子军中有4个智能场,按层级连接在一起 假设我有智能场A,B,C,D,A是B的母函数,B是C的母函数,C是D的母函数(从逻辑上讲,这是不必要的) 如果我在C字段中输入例如值,则A和B字段必须自动填充。但如果我在字段中输入值,则所有其他字段都需要重置 我的问题是,如果我有: @Override protected void execChangedValue() { B.resetValue(); C.resetValue(); D.resetValue(); } 如果我在B中有

我在童子军中有4个智能场,按层级连接在一起

假设我有智能场A,B,C,D,A是B的母函数,B是C的母函数,C是D的母函数(从逻辑上讲,这是不必要的)

如果我在C字段中输入例如值,则A和B字段必须自动填充。但如果我在字段中输入值,则所有其他字段都需要重置

我的问题是,如果我有:

@Override
protected void execChangedValue() {

  B.resetValue();
  C.resetValue();
  D.resetValue();
}
如果我在B中有:

@Override
protected void execChangedValue() {

  // get changed value
  final Long A_value = A.getValue();

  // reset call child fields
  C.resetValue();
  D.resetValue();

  if (A_value == null) {

    A.setValue(NewValueForA);
  }
}
这将创建循环。B将在A中设置值,A将重置B,。。。。这不是我想要的


Scout中是否有解决此问题的通用方法?

对于那些复杂的情况,使用我在中介绍和解释的
setValueWithoutChangedValueTrigger(…)
。你可以做:

getBField().setValueWithoutChangedValueTrigger(getBField().getInitValue());
getCField().setValueWithoutChangedValueTrigger(getCField().getInitValue());
getDField().setValueWithoutChangedValueTrigger(getDField().getInitValue());
等等


另请参阅此相关讨论:。

是的,我知道此解决方案的有效性,但我想知道是否有一种“正确”的侦查方法。。。谢谢你的回答。