【问题标题】:Eclipse Scout modal view errorEclipse Scout 模态视图错误
【发布时间】:2016-01-13 13:30:14
【问题描述】:

我在新的 Scout Neon 工作,我开始遇到错误:

Assertion error: Property 'modal' cannot be changed because Form is already showing

我的表单有属性:

@Override
protected int getConfiguredModalityHint() {

   return MODALITY_HINT_MODELESS;
}

@Override
protected int getConfiguredDisplayHint() {

   return DISPLAY_HINT_VIEW;
}

@Override
protected String getConfiguredDisplayViewId() {

  return VIEW_ID_CENTER;
}

我做错了什么?

编辑:马尔科


我在MyOutline 中添加页面,女巫从AbstractOutline 延伸

public class MyOutline extends AbstractOutline {

  @Override
  protected String getConfiguredTitle() {

    return TEXTS.get("MyOutline");
  }

  @Override
  protected void execCreateChildPages(final List<IPage<?>> pageList) {

    final MyPage myPage = new MyPage();

    pageList.add(myPage);
    super.execCreateChildPages(pageList);
  }
}

MyPage 只是表单的包装页。

public class MyPage extends AbstractPageWithNodes {

  @Override
  protected boolean getConfiguredLeaf() {

    return true;
  }

  @Override
  protected boolean getConfiguredTableVisible() {

    return false;
  }

  @Override
  protected String getConfiguredTitle() {

    return TEXTS.get("MyPage");
  }  

  @Override
  protected Class<? extends IForm> getConfiguredDetailForm() {

    return MyForm.class;
  }
} 

我的表格没什么特别的:

@FormData(value = MyFormData.class, sdkCommand = FormData.SdkCommand.CREATE)

公共类 MyForm 扩展 AbstractForm {

  /**
   * Method start Form for adding new person.
   */
  public void startNew() {

    this.startInternal(new NewHandler());
  }

  @Override
  protected boolean getConfiguredAskIfNeedSave() {

    return false;
  }

  @Override
  protected int getConfiguredModalityHint() {

    return MODALITY_HINT_MODELESS;
  }

  @Override
  protected int getConfiguredDisplayHint() {

    return DISPLAY_HINT_VIEW;
  }

  @Override
  protected String getConfiguredDisplayViewId() {

    return VIEW_ID_CENTER;
  }

  public MainBox getMainBox() {
 ...

但是当我想打开这个页面时(在这个页面上没有打开启动应用程序),(并且我之前没有做任何其他事情)我得到了错误。

 2016-01-22 11:13:56,236 ERROR scout-model-thread-11 'Processing JSON request' o.e.scout.rt.platform.exception.ExceptionHandler -  
 org.eclipse.scout.rt.platform.util.Assertions$AssertionException: Assertion error: Property 'modal' cannot be changed because Form is already showing 
at org.eclipse.scout.rt.platform.util.Assertions.fail(Assertions.java:581) ~[org.eclipse.scout.rt.platform-5.2.0.M4.jar:5.2.0.M4]
at org.eclipse.scout.rt.platform.util.Assertions.assertFalse(Assertions.java:192) ~[org.eclipse.scout.rt.platform-5.2.0.M4.jar:5.2.0.M4]
at org.eclipse.scout.rt.client.ui.form.AbstractForm.setModal(AbstractForm.java:2700) ~[org.eclipse.scout.rt.client-5.2.0.M4.jar:5.2.0.M4]
at org.eclipse.scout.rt.client.ui.desktop.outline.pages.AbstractPage.decorateDetailForm(AbstractPage.java:692) ~[org.eclipse.scout.rt.client-5.2.0.M4.jar:5.2.0.M4]

【问题讨论】:

  • 当您调用setModal(..) 时是否会出现此错误?请确认或添加您收到的错误堆栈跟踪。如果是这种情况,你什么时候打电话给setModal(..)这个电话之前你在做什么?
  • 我不直接调用setModal(...),而是用getConfiguredModality调用..所以之前我不调用ant thing...

标签: eclipse-scout


【解决方案1】:

我找到了解决问题的方法。

在我的构造函数中,我有:

public PersonsExtensionFieldForm() {
    this.startInternal(new NewHandler());
}

witch 没问题,当您通过单击按钮从其他表单打开表单时。

但是当您将表单作为Detail 表单放入页面时,您需要拥有

 public PersonsExtensionFieldForm() {
    this.setHandler(new NewHandler());
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 1970-01-01
    • 2015-04-28
    • 2016-04-24
    • 2016-07-08
    • 2023-01-30
    • 2020-04-28
    相关资源
    最近更新 更多