/** * Every externalized ressource has an id. A frame is a <code>ReloadResource</code>. * * @return The id of this <code>ReloadResource</code> */ public String getTargetResource() { if (targetResource == null) { targetResource = getDynamicResource(ReloadResource.class).getId(); } return targetResource; }
/** * Searches the current session for the root HTML frame and returns the Resource * representing this root HTML frame (i.e. for you to retrieve the externalizer id * via <code>getId()</code>-method). * @return Resource of the root HTML frame */ private Resource retrieveCurrentRootFrameResource() throws ServletException { log.debug("delivering default frame"); if (session.getFrames().size() == 0) throw new ServletException("no frame visible"); // get the first frame from the set and walk up the hierarchy. // this should work in most cases. if there are more than one // toplevel frames, the developer has to care about the resource // ids anyway .. SFrame defaultFrame = (SFrame) session.getFrames().iterator().next(); while (defaultFrame.getParent() != null) defaultFrame = (SFrame) defaultFrame.getParent(); return defaultFrame.getDynamicResource(ReloadResource.class); }
/** * Searches the current session for the root HTML frame and returns the Resource * representing this root HTML frame (i.e. for you to retrieve the externalizer id * via <code>getId()</code>-method). * @return Resource of the root HTML frame */ private Resource retrieveCurrentRootFrameResource() throws ServletException { log.debug("delivering default frame"); if (session.getFrames().size() == 0) throw new ServletException("no frame visible"); // get the first frame from the set and walk up the hierarchy. // this should work in most cases. if there are more than one // toplevel frames, the developer has to care about the resource // ids anyway .. SFrame defaultFrame = (SFrame) session.getFrames().iterator().next(); while (defaultFrame.getParent() != null) defaultFrame = (SFrame) defaultFrame.getParent(); return defaultFrame.getDynamicResource(ReloadResource.class); }
private static void writeGlobalInitScript(Device out, SFrame frame) throws IOException { Map<String, Object> initConfig = new HashMap<>(); initConfig.put("eventEpoch", frame.getEventEpoch()); initConfig.put("reloadResource", frame.getDynamicResource(ReloadResource.class).getURL().toString()); initConfig.put("updateResource", frame.getDynamicResource(UpdateResource.class).getURL().toString()); initConfig.put("updateEnabled", frame.isUpdateEnabled()); initConfig.put("updateCursor", Utils.mapToJsObject(frame.getUpdateCursor())); initConfig.put("autoAdjustLayout", Utils.mapToJsObject(frame.getAutoAdjustLayout())); initConfig.put("cometEnabled", frame.getSession().getComet() != null && frame.getSession().getComet().isCometEnabled()); final String logLevel = SFrame.getLogLevel(); if (logLevel != null && !logLevel.isEmpty()) { initConfig.put("loglevel", logLevel); } out.print("wingS.global.init("); Utils.mapToJsObject(initConfig).write(out); out.print(");"); }
@Override public void installCG(final SComponent comp) { final SFrame component = (SFrame) comp; // Add dynamic resources to the frame ReloadResource reloadResource = new ReloadResource(component); component.addDynamicResource(reloadResource); UpdateResource updateResource = new UpdateResource(component); component.addDynamicResource(updateResource); // Externalize update resource component.getDynamicResource(UpdateResource.class).getId(); final JavaScriptDOMListener handleClicks = new JavaScriptDOMListener( JavaScriptEvent.ON_CLICK, "wingS.util.handleBodyClick", comp); final JavaScriptDOMListener storeFocusFF = new JavaScriptDOMListener( JavaScriptEvent.ON_FOCUS, "wingS.util.storeFocus", comp); final JavaScriptDOMListener storeFocusIE = new JavaScriptDOMListener( JavaScriptEvent.ON_ACTIVATE, "wingS.util.storeFocus", comp); // Add script listeners to the frame component.addScriptListener(handleClicks); component.addScriptListener(Utils.isMSIE(component) ? storeFocusIE : storeFocusFF); SessionHeaders.getInstance().registerHeaders(0, headers); SessionHeaders.getInstance().registerHeaders(1, defaultHeaders); SessionHeaders.getInstance().registerHeaders(getBrowserStylesheets()); new InputMapRequestListener(component); }