Component is not removed from the layout

I am currently working with SlidingPanel from the Ikarus widgetset add-in . I try to remove this panel from the view using removeComponent() when I get some kind of "special" event on the server side (for example, the user clicked a button or the window was changed). But the component is still visible on the screen. I tried to debug the data received by the user interface:

Before the event:

 -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 

After the event:

 -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 

What I clearly see from the answer is that the window no longer contains the VIkarusSlidingPanel, but in fact it still exists because it has not been removed from the DOM.

  • The only thing that helps me is to reload the page.
  • Removing buttons from a window at the same event works great.
  • setVisible(false) does not work. I get a blank page when I try to reload the page after that. (javacript exception thrown)

What is the problem? Can someone help me with a workaround?

+7
source share
1 answer

Check if your component is in an immediate state. In Vaadin, it simply sets setImmediate (true) on the component. And I think the best way to remove a component is to simply hide it with setVisible (false).

In any case, I hope you find a solution.

0
source

All Articles