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;
}

私は何を間違えましたか?

編集:マルコ


MyOutlinewitch extends fromにページを追加します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)

public class MyForm extends 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 に答える