@Override public Component createComponent(final VisualizerInput vis, VisualizationToggle visToggle) { VaadinSession session = VaadinSession.getCurrent(); if (session.getAttribute(IFrameResourceMap.class) == null) { session.setAttribute(IFrameResourceMap.class, new IFrameResourceMap()); } ByteArrayOutputStream outStream = new ByteArrayOutputStream(); writeOutput(vis, outStream); IFrameResource res = new IFrameResource(); res.setData(outStream.toByteArray()); res.setMimeType(getContentType()); UUID uuid = UUID.randomUUID(); session.getAttribute(IFrameResourceMap.class).put(uuid, res); URI base = UI.getCurrent().getPage().getLocation(); AutoHeightIFrame iframe = new AutoHeightIFrame(base.resolve("vis-iframe-res/" + uuid.toString())); return iframe; }