public void showModalView(String code,boolean cleanMode,final int x,final int y)
{
ItsNatComponentManager compMgr = itsNatDoc.getItsNatComponentManager();
final ItsNatModalLayer modalLayer = compMgr.createItsNatModalLayer(null,cleanMode,0.7f,"green",null);
EventListener unexpEvtListener = new EventListenerSerial()
{
public void handleEvent(Event evt)
{
StringBuilder code = new StringBuilder();
code.append("if (confirm('Received an unexpected event by a hidden element. Reload?')) ");
code.append(" window.location.reload(true);");
itsNatDoc.addCodeToSend(code.toString());
}
};
modalLayer.addUnexpectedEventListener(unexpEvtListener);
final Element panel = modalLayer.getElement();
panel.setAttribute("left",Integer.toString(x));
panel.setAttribute("top",Integer.toString(y));
DocumentFragment frag = itsNatDoc.toDOM(code);
final Element elem = (Element)frag.getFirstChild(); // vbox
panel.appendChild(elem);
NodeList buttons = elem.getElementsByTagName("button");
final Element buttonExit = (Element)buttons.item(0);
final Element buttonCheckServ = (Element)buttons.item(1);
// Link simplemente para actualizar el cliente con cambios en el servidor
final EventListener listenerNothing = new EventListenerSerial()
{
public void handleEvent(Event evt)
{
}
};
((EventTarget)buttonCheckServ).addEventListener("command",listenerNothing,false);
final EventListener listenerExit = new EventListenerSerial()
{
public void handleEvent(Event evt)
{
((EventTarget)buttonCheckServ).removeEventListener("command",listenerNothing,false);
((EventTarget)buttonExit).removeEventListener("command",this,false);
modalLayer.dispose(); // Removes the <panel>
}
};
((EventTarget)buttonExit).addEventListener("command",listenerExit,false);
EventListener listenerExit2 = new EventListenerSerial()
{
public void handleEvent(Event evt)
{
((EventTarget)buttonCheckServ).removeEventListener("command",listenerNothing,false);
((EventTarget)buttonExit).removeEventListener("command",listenerExit,false);
}
};
modalLayer.addEventListener("popuphidden",listenerExit2,true); // before
EventListener listenerExit3 = new EventListenerSerial()
{
public void handleEvent(Event evt)
{
if (!modalLayer.isDisposed()) throw new RuntimeException("TEST ERROR");
}