0

我在新的 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;
}

我做错了什么?

编辑:马尔科


我在女巫中添加页面MyOutlineAbstractOutline

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]
4

1 回答 1

0

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

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

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

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

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

 public PersonsExtensionFieldForm() {
    this.setHandler(new NewHandler());
 }
于 2016-01-29T10:03:20.287 回答