7

現在、 Ikarus widgetsetアドオンのSlidingPanel を扱っています。サーバー側で「特別な」イベントを受け取ったときに、このパネルをビューから削除しようとしてremoveComponent()います (たとえば、ユーザーがボタンをクリックしたり、ウィンドウのサイズが変更されたりしました)。ただし、コンポーネントは引き続きビューに表示されます。UIが受け取るデータをデバッグしようとしていました:

イベント前:

-Response:
-change format=uidl pid=PID0
-com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=590px width=815px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true main=true        layoutRelativeHeight=true layoutRelativeWidth=true
      +variables
       -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
       +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
       +com.vaadin.terminal.gwt.client.ui.VPanel
       +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
       +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility
       +com.velociti.ikarus.widget.client.ui.VIkarusSlidingPanel

イベント後:

-Response:
   -change format=uidl pid=PID0
   -com.vaadin.terminal.gwt.client.ui.VWindow id=PID0 height=995px width=1853px immediate=true caption=ASM 5.0.7 name=1 theme=acs-reindeer resizable=true   main=true layoutRelativeHeight=true layoutRelativeWidth=true
      +variables
             -com.vaadin.terminal.gwt.client.ui.VVerticalLayout id=PID127 height=100.0% width=100.0% margins=0 alignments={} expandRatios={PID133:1,}
             +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
             +com.vaadin.terminal.gwt.client.ui.VPanel
             +com.vaadin.terminal.gwt.client.ui.VHorizontalLayout
             +com.vaadin.terminal.gwt.client.ui.VUriFragmentUtility

応答からはっきりとわかるのは、ウィンドウに VIkarusSlidingPanel が含まれていないことですが、DOM から削除されていないため、実際にはまだ存在しています。

  • 私を助ける唯一のもの - ページをリロードします。
  • 同じイベントでウィンドウからボタンを削除する - 完璧に機能します。
  • setVisible(false)動作しません。この後、ページをリロードしようとすると空白のページが表示されます。(javascript 例外がスローされます)

何が問題ですか?誰かが回避策を手伝ってくれますか?

4

1 に答える 1