IFrame question

Hi all

decided to make the case simpler.
so now I use getApplication().getMainWindow().open(new ExternalResource(url));
the url is pointed to another domain’s web page, which contains a login screen. after user is signed in, I want to close the iframe…I don’t know if this is possible or not since there is no event to detect.

Please let me know what you guys think.
Thanks

Now I did not fully understand how you are using IFrames. Window.open(new ExternalResource(url)) opens url to the browser window, not to an iframe.

In addition to what Joonas pointed out, there is an additional problem (as you suspected): you can’t see whats going on in a frame that’s showing another domain (due to security restrictions in the browser), so in order to detect when the user has logged in, you need the remote site to tell you - either by redirecting back to your url, or by communicating with javascript (specifically telling your ‘parent’ frame).

Best Regards,
Marc

Can someone please clarify if window.open works when an vaadin application is embedded inside an iframe.

I am using this code

event.getButton().getWindow().open(stream,"_blank");

and getting an exception

 java.lang.NullPointerException
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.Application.getRelativeLocation(Application.java:765)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.terminal.gwt.server.JsonPaintTarget.addAttribute(JsonPaintTarget.java:388)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.ui.Window$OpenResource.paintContent(Window.java:1028)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.ui.Window$OpenResource.access$000(Window.java:968)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.ui.Window.paintContent(Window.java:614)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.ui.AbstractComponent.paint(AbstractComponent.java:754)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.paintAfterVariableChanges(AbstractCommunicationManager.java:807)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:621)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:265)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:482)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at javax.servlet.http.HttpServlet.service(HttpServlet.java:915)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.bamnetworks.gfi.uploadadmin.MVCInitFilter.doFilter(MVCInitFilter.java:351)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:187)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:586)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:556)
[25/Nov/2011:03:41:27]
 warning (29937): CORE3283: stderr:       at com.sun.webserver.connector.nsapi.NSAPIProcessor.service(NSAPIProcessor.java:160)

Can anyone please help me out?

Application.getMainWindow() is also returning null, due to which I am unable to open download stream.