【问题标题】:Eclipse Scout Neon : code type not workingEclipse Scout Neon:代码类型不起作用
【发布时间】:2016-02-26 21:20:52
【问题描述】:

我有一个List box,我想设置它的代码类型。

我创建了新的AbstractCodeType

public class MyCodeType extends AbstractCodeType<String, String> {

  private static final long serialVersionUID = 6808664924551155395L;

  public static final String ID = null;

  @Override
  public String getId() {

    return ID;
  }

  @Order(10.0)
  public static class UnknownCode extends AbstractCode<String> {

    private static final long serialVersionUID = -1307260056726644943L;

    public static final String ID = "Unknown";

    @Override
    protected String getConfiguredText() {

      return TEXTS.get("Unknown");
    }

    @Override
    public String getId() {

      return ID;
    }
  }
}

我在列表框中设置此代码类型:

 @Override
  protected Class<? extends ICodeType<?, String>> getConfiguredCodeType() {

    return MyCodeType.class;
  }

但不起作用。它返回空框。

在调试时,我注意到在initConfig 中的AbstractListBox.class 方法中,它调用此代码类型并在m_lookupCall 中的setCodeTypeClass 中设置代码类型。然后在execLoadTableData 内部,它得到call,但是当调用call.getDataByAll() 时,这个调用返回空数组。

我怀疑代码类型和 Lookup 调用之间的转换不能正常工作。

编辑


我尝试调试问题出在哪里,如果遵循路径:

initConfig() -> CodeLookupCall.newInstanceByService(m_codeTypeClass); (line 581)

如果你看里面 CodeLookupCall ;

getDataByAll() in line 221 `resolveCodes(v)` -> BEANS.opt(m_codeTypeClass) -> bean.getInstance() -> m_producer.produce(this) -> return (T) getCache().get(createCacheKey(type));

这是在第 97 行的 CodeService.class 类中:

Class&lt;T&gt; 类型是正确的类,createCacheKey(type) 返回的不是空对象,而是getCache().get(...) 返回null。从这一点开始,一切都是空的(什么是合理的 getCodeType 返回空。)

这是我在调试时发现的,如果它可以帮助某人找出问题所在。

【问题讨论】:

    标签: listbox lookup eclipse-scout


    【解决方案1】:

    看起来 bean 管理器找不到您的代码类型类。 CodeService 仅在其类路径中查找 CodeTypes(可在服务器中访问)。

    -> 您可能需要将您的班级移至共享项目。

    您可以在联系人演示应用程序中找到代码类型的示例: https://github.com/BSI-Business-Systems-Integration-AG/org.eclipse.scout.docs/tree/releases/5.2.x/code/contacts

    【讨论】:

    【解决方案2】:

    我用 Eclipse Scout Neon M4 测试了你的代码 sn-p,我可以重现你描述的错误。

    但是,Scout Neon M5 似乎已经修复了这个错误。所以我建议你升级到最新的里程碑版本,无论如何都是推荐的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      • 2016-06-29
      • 2016-07-24
      • 2016-04-24
      • 2016-09-22
      • 2016-07-08
      • 2016-06-29
      相关资源
      最近更新 更多