Revision history [back]

click to hide/show revision 1
initial version

answered 2013-09-24 11:04:14 +0800

aznavour gravatar image aznavour

Hi dennis,

thanks for your reply. I cant get that working, as it fails with this error:

java.lang.IllegalStateException: Components can be accessed only in event listeners
at org.zkoss.zk.ui.impl.UiEngineImpl.getCurrentVisualizer(UiEngineImpl.java:259)
at org.zkoss.zk.ui.impl.UiEngineImpl.addResponse(UiEngineImpl.java:293)
at org.zkoss.zk.ui.AbstractComponent.response(AbstractComponent.java:1491)
at org.zkoss.zk.ui.AbstractComponent.response(AbstractComponent.java:1452)
at org.zkoss.zul.Popup.open(Popup.java:142)

Moreover, as we're using MVVM to bind the popup context and listen for then open event, I guess that we'll have to go through the full event system. I tried this:

// desktopId from targetAgent
Map<String, Object> data = EventDataManager.getInstance().build(
  new OpenEvent(Events.ON_OPEN, 
   (Component) tooltipComponentAgent.getDelegatee(),
   true,
   (Component)targetAgent.getDelegatee()));

((ClientCtrl)targetAgent.getClient()).postUpdate(desktopId, tooltipComponentAgent.getUuid(), Events.ON_OPEN, data, false);
((ClientCtrl)targetAgent.getClient()).flush(desktopId);

It's not that nice, but it seem to work ok.

click to hide/show revision 2
added feature request link

Hi dennis,

thanks for your reply. I cant get that working, as it fails with this error:

java.lang.IllegalStateException: Components can be accessed only in event listeners
at org.zkoss.zk.ui.impl.UiEngineImpl.getCurrentVisualizer(UiEngineImpl.java:259)
at org.zkoss.zk.ui.impl.UiEngineImpl.addResponse(UiEngineImpl.java:293)
at org.zkoss.zk.ui.AbstractComponent.response(AbstractComponent.java:1491)
at org.zkoss.zk.ui.AbstractComponent.response(AbstractComponent.java:1452)
at org.zkoss.zul.Popup.open(Popup.java:142)

Moreover, as we're using MVVM to bind the popup context and listen for then open event, I guess that we'll have to go through the full event system. I tried this:

// desktopId from targetAgent
Map<String, Object> data = EventDataManager.getInstance().build(
  new OpenEvent(Events.ON_OPEN, 
   (Component) tooltipComponentAgent.getDelegatee(),
   true,
   (Component)targetAgent.getDelegatee()));

((ClientCtrl)targetAgent.getClient()).postUpdate(desktopId, tooltipComponentAgent.getUuid(), Events.ON_OPEN, data, false);
((ClientCtrl)targetAgent.getClient()).flush(desktopId);

It's not that nice, but it seem to work ok.

Feature request: http://tracker.zkoss.org/browse/ZATS-26

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More